- 博客(6)
- 收藏
- 关注
原创 Java中为什么要使用泛型?
泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。 &...
2017-08-23 14:56:36 1581
转载 JVM线程安全与锁优化
线程安全与锁优化 Java中线程安全 对共享数据的操作 1. 不可变: 不可变的对象一定是线程安全的。如String类。 2. 绝对线程安全 3. 相对线程安全 4. 线程兼容 5. 线程对立 线程安全的实现方法 1. 互斥同步(阻塞式同步) 1) 同步指的是:多个线程并发访问共享数据时,保证共享数据在
2017-08-23 11:40:40 261
转载 Java内存模型与线程的实现
硬件的效率与一致性 基于高速缓存的存储交互很好的解决了处理器和内存的速度矛盾,但是也为计算机系统带来了更高的复杂度,因为引入了一个新问题:缓存一致性。在多处理器系统中,每个处理器都有自己的高速缓存,而他们又共享同一主内存(Main Memory),如上图所示。当多个处理器的运算任务都涉及到主内存中的同一块区域,那么将高速缓存中的数据同步回主内存时,到底以谁的缓存数据为准呢?为了保证数据的一致性,需要
2017-08-23 11:38:07 156
原创 JVM类文件结构
本文是基于周志明的《深入理解Java虚拟机》 Class类文件结构 Class文件 1).是一组以8字节为基础单位的二进制流, 2).各个数据项目严格按照顺序紧凑排列在class文件中, 3).中间没有任何分隔符,这使得class文件中存储的内容几乎是全部程序运行...
2017-08-23 11:35:18 170
转载 JVM垃圾回收算法与内存管理策略
3.2对象已死吗?3.2.1 引用计数法给对象添加一个引用计数器,每当有一个地方引用它的地方,计数器值+1;当引用失效,计数器值就减1;任何时候计数器为0,对象就不可能再被引用了。 它很难解决对象之间相互循环引用的问题。 3.2.2 可达性分析算法这个算法的基本思路就是通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference C
2017-08-23 11:31:16 197
转载 [深入理解JVM] Java对象的创建、内存布局、访问定位
对象的创建 一个简单的创建对象语句Clazz instance = new Clazz();包含的主要过程包括了类加载检查、对象分配内存、并发处理、内存空间初始化、对象设置、执行ini方法等。 主要流程如下: 1. 类加载检查 JVM遇到一条new指令时,首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那
2017-08-18 16:37:07 190
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人