java小知识
niexianglin_csdn
这个作者很懒,什么都没留下…
展开
-
关于synchronized具备原子性的问题
1 关于synchronized具备原子性的问题1 原子性的定义: 原子操作(atomic operation)是不需要synchronized,这是Java多线程编程的老生常谈了。所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。2 深入理解Java虚拟机对synchronized的描述: ja原创 2015-08-08 18:34:57 · 3905 阅读 · 7 评论 -
为什么String要设计成不可变的?
这是一个老生常谈的话题(This is an old yet still popular question). 在Java中将String设计成不可变的是综合考虑到各种因素的结果,想要理解这个问题,需要综合内存,同步,数据结构以及安全等方面的考虑. 在下文中,将为各种原因做一个小结。1. 字符串常量池的需要字符串常量池(String pool, String intern pool, String保转载 2015-08-09 14:06:32 · 403 阅读 · 0 评论 -
String string = new String("hello world")?
我是一个水平很低的人,博客里原创的文章都是我学习时的思考,没有任何指导意义,我会不断学习,不断修改错误。1 导言Java虚拟机在内存中有一个专门来存储String实例的常量池,即全局共享的字符串常量池,记为A。在类加载的resolve(解析)阶段,虚拟机在解析对应类的class文件时,发现class文件常量池表项中存在CONSTANT_String_info类型的常量“hello world”,那么原创 2015-08-09 14:21:07 · 750 阅读 · 0 评论 -
匿名内部类为什么是 Final 的呢?
现在前面 匿名内部类来自外部闭包环境的自由变量必须是final的,除非自由变量来自类的成员变量。 什么是自由变量? 一个函数的“自由变量”就是既不是函数参数也不是函数内部局部变量的变量。 什么是外部环境 外部环境如果持有内部函数所使用的自由变量,就会对内部函数形成“闭包”。 - 一个简单的列子public class AnonymousDemo1 { public st原创 2017-10-30 14:08:28 · 4204 阅读 · 1 评论