08 2014 档案
摘要:String的源码中有很多Arrays的方法使用,建议先参阅Arrays的类库基本介绍: String是一个比较特殊的类,有很多种建立的方法。 如果使用传统的构造方法比如 String s = new String("字符串");这时的对象会在堆上分配,这时候比较两个字符串地址就不相等,而用""...
阅读全文
摘要:CharSequence是一个接口,比较常见的String、StringBuilder、StringBuffer都实现了这个接口。当我们看到一个API里面有CharSequence的时候,它也是可以被其子类代替的,一般用String代替即可。
阅读全文
摘要:类加载过程 一个类从编写完成后,编译为字节码之后,它要装载进内存有七个阶段: 加载 => (验证-> 准备-> 解析)=> 初始化=> 使用=> 卸载 括号中的三个步骤可以整合成为 “连接”步骤。其中的步骤并不是一个阶段结束,一个阶段才开始的。只是说他们的开始阶段基本遵循此顺序(解析阶段更是可能在使
阅读全文
摘要:垃圾回收 垃圾回收的三个问题: 哪些内存需要回收? 什么时候回收? 如何回收? 1.哪些对象需要回收? 判断对象是否存活的办法: 引用计数算法:给对象中添加一个引用计数器,有一个地方引用就+1,引用失效就-1.只要计数器为0则对象已死。 优点:简单易实现; 缺点:无法解决对象之间相互引用的问题。(J
阅读全文
摘要:主要参考资料:《深入理解Java虚拟机》,未经本人及原书作者同意禁止转载。 JVM中的数据区域 JVM中给数据分了这么几个区域: 其中: 1.程序计数器: 程序计数器是一块较小的内存空间,为当前线程所执行的字节码的行号指示器。也就是说,程序再翻译成为字节码了之后,分支、循环、跳转、异常处理、线程恢复
阅读全文