java base-06-String StringBuilder StringBuffer
String
为什么不可变
jdk 中,String 是被设计为不可变的对象。
不可变设计模式
不可变的优点
线程安全
缺点
创建大量的对象。
为了弥补,这个问题,引入了 StringBuffer。
StringBuffer
优点
避免创建大量对象
缺点
每一个方法都是使用 synchronized 修饰,确保线程安全。
synchronized
StringB...
2019-02-27 01:48:47 |
Java
java base-05-Box UnBox 自动装拆箱
java 语言的设计
java 为什么有基本类型
作为一门 OO 语言,java 为什么要保留基本类型呢。
个人的理解是,出于工程学上的考虑。
基本类型的内存占用,比对象要小得多。
参考:Java 对象占用内存大小与 java 对象格式
基本对象
基本数据类型不是对象,也就是使用int、double、boolean等定义的变量、常量。
基本数据类型没有可调用的方法。
int...
2019-02-27 01:48:47 |
Java
java base-04 Error and Exception
Error 与 Exception
二者的不同之处:
Exception:
1.可以是可被控制(checked) 或不可控制的(unchecked)。
2.表示一个由程序员导致的错误。
3.应该在应用程序级被处理。
RuntimeException
RuntimeException是那些可能在Java虚拟机正常运行期间抛出的异常的超类。
编译器不会检查RuntimeExcep...
2019-02-27 01:48:47 |
Java
java base-03-finalize 方法详解
JVM 的一些知识
在说明finalize()的用法之前要树立有关于java垃圾回收器几个观点:
对象可以不被垃圾回收
java的垃圾回收遵循一个特点, 就是能不回收就不会回收.只要程序的内存没有达到即将用完的地步, 对象占用的空间就不会被释放。
因为如果程序正常结束了,而且垃圾回收器没有释放申请的内存, 那么随着程序的正常退出, 申请的内存会自动交还给操作系统;
而且垃圾...
2019-02-27 01:48:47 |
Java
Java try catch finally 详解
预备知识
return 底层知识
首先是关于return返回的底层知识
java方法是在栈幀中执行,栈幀是线程私有栈的单位,执行方法的线程会为每一个方法分配一小块栈空间来作为该方法执行时的内存空间,栈幀分为三个区域:
操作数栈,用来保存正在执行的表达式中的操作数,数据结构中学习过基于栈的多项式求值算法,操作数栈的作用和这个一样
局部变量区,用来保存...
2019-02-27 01:48:47 |
Java
java base-00-基础知识
目标
java 基础知识整理汇总。
便于梳理汇总知识。
索引
01 java 平台
01-java 平台的理解
02 异常
02-java exception and error
03 final
final
try-catch-finally
finalize
04 引用
java 引用关系
05 String
Stri...
2019-02-27 01:48:47 |
Java
Oracle 物化视图
物化视图
物化视图是包括一个查询结果的数据库对象,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照(类似于MSSQL Server中的snapshot,静态快照)。对于复制,物化视图允许你在本地维护远程数据的副本,这些副本是只读的。如果你想修改本地副本,必须用高级复制的功能。当你想从一个表或视图中抽取数据时,你可以用从物化视图中抽取...
2019-02-26 01:48:47 |
SQL
Java 时间之 currentTimeMillis 与 nanoTime - 时间精确测量
currentTimeMills
/**
* Returns the current time in milliseconds. Note that
* while the unit of time of the return value is a millisecond,
* the granularity of the value depends on the underlyi...
2019-02-26 01:48:47 |
Java