转载《码农网》http://www.codeceo.com/
文章平均质量分 75
一杯苦茶
123
展开
-
写好Java代码的30条经验总结
成为一个优秀的Java程序员,有着良好的代码编写习惯是必不可少的。下面就让我们来看看代码编写的30条建议吧。(1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如:ThisIsAClassNamethisIsMethodOrFieldName若在定义中出现了常数初始化字符,则大写s翻译 2015-01-15 22:38:59 · 916 阅读 · 0 评论 -
Java内存模型深度解析:锁
码农网:http://www.codeceo.com/article/java-memory-5.html锁的释放-获取建立的happens before 关系锁是java并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。下面是锁释放-获取的示例代码:class MonitorExample { in翻译 2015-01-18 22:03:48 · 497 阅读 · 0 评论 -
Java内存模型深度解析:重排序
码农网:http://www.codeceo.com/article/java-memeory-2.html数据依赖性如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型:名称代码示例说明写后读a = 1;b = a;写一个变量之后,再读这个位翻译 2015-01-18 22:06:28 · 620 阅读 · 0 评论 -
Java内存模型深度解析:final
与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问。对于final域,编译器和处理器要遵守两个重排序规则:在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序。下面,我们通过一些示例性的代码来分别说翻译 2015-01-18 22:02:56 · 517 阅读 · 0 评论 -
Java内存管理(一)--内存分区
出处:http://blog.sina.com.cn/s/blog_7d0e75ab01016vio.html Java提供的内存管理机制是一把双刃剑。好处是java虚拟机帮你完成了几乎所有内存管理的工作,你可以不用再去为每个new对象操作来施放内存。弊端是你将几乎不再拥有对象内存管理的权限(因为你不用做这些工作),长此以往我们就淡漠了java虚拟机管理内存的机制,而 导致我们遇到一些内存泄露转载 2015-01-18 22:18:05 · 769 阅读 · 0 评论 -
Java内存模型深度解析:基础部分
码农网:http://www.codeceo.com/article/java-memory-1.html并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间翻译 2015-01-18 22:07:46 · 561 阅读 · 0 评论 -
Java内存模型深度解析:顺序一致性
码农网:http://www.codeceo.com/article/java-memory-3.html数据竞争与顺序一致性保证当程序未正确同步时,就会存在数据竞争。java内存模型规范对数据竞争的定义如下:在一个线程中写一个变量,在另一个线程读同一个变量,而且写和读没有通过同步来排序。当代码中包含数据竞争时,程序的执行往往产生违反直觉的结果(前一章的示例翻译 2015-01-18 22:05:59 · 637 阅读 · 0 评论 -
Java内存模型深度解析:volatile
码农网:http://www.codeceo.com/article/java-memory-4.htmlvolatile的特性当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这些单个读/写操作做了同步。下面我们通过具体的示例来说明,请看下面的示例代翻译 2015-01-18 22:05:07 · 576 阅读 · 0 评论 -
Java内存模型深度解析:总结
处理器内存模型顺序一致性内存模型是一个理论参考模型,JMM和处理器内存模型在设计时通常会把顺序一致性内存模型作为参照。JMM和处理器内存模型在设计时会对顺序一致性模型做一些放松,因为如果完全按照顺序一致性模型来实现处理器和JMM,那么很多的处理器和编译器优化都要被禁止,这对执行性能将会有很大的影响。根据对不同类型读/写操作组合的执行顺序的放松,可以把常见处理器的内存模型划分为下面几翻译 2015-01-18 22:01:22 · 445 阅读 · 0 评论