08 2017 档案
摘要:1. String、StringBuffer、StringBuilder三者区别? (1)三者在执行速率上的比较: String<StringBuffer<StringBuilder 原因:String是字符串常量,StringBuffer,StringBuilder是字符串变量; 每当用Strin
阅读全文
摘要:一、引子 如果java内存模型中所有的有序性都仅仅依靠volatile和synchronized来完成,那么有一些操作会变得很繁琐,但我们在编写java并发代码时并未感觉到这一点,这是因为java语言中有个先行发生原则(happens-before),通过这个原则,我们可以通过几条规则一揽子解决并发
阅读全文
摘要:一、简述: 关键字Volatile是JAVA虚拟机提供的最轻量级的同步机制,但是它并不容易完全被正确、完整的理解,以致于许多程序员在遇到需要处理多线程数据竞争的时候一律使用synchronized来进行同步,了解volatile变量的语义对后面了解多线程操作的其他特性很有意义。 二、应用: 当一个变
阅读全文
摘要:一、基本垃圾回收算法 1. 判断对象是否需要回收的方法(如何判断垃圾): 1) 引用计数(Reference Counting) 对象增加一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。 2) 可达性分析算法(Reac
阅读全文
摘要:一、 运行数据区域划分 各个数据区域功能如下: 1. 程序计数器: 较小的一块内存空间,可以看做是当前线程所执行的字节码的行号指示器,每条线程都有一个独立的程序计数器,各条线程之间计数器互不影响,独立存储,这类内存区域称为“线程私有”的内存。 如果线程正在执行的是一个Java方法,这个计数器记录的是
阅读全文

浙公网安备 33010602011771号