首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
llldddbbb
掘友等级
Java开发工程师
|
www.dblearn.cn
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
赞
11
文章 11
沸点 0
赞
11
返回
|
搜索文章
文章
热门
最新
Java虚拟机09——线程安全与锁优化
线程安全:当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的。 不可变对象一定是线程安全的,无论是对象的方法实现还是方法的调用者…
Java虚拟机08——Java内存模型与线程
绝大多数的运算任务都不可能只靠处理器“计算”就能完成,处理器至少要与内存交互,如读取运算数据、存储运算结果等。由于计算机的存储设备与处理器的运算速度有接数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间…
Java虚拟机07——类加载器与双亲委派模型
类加载器实现了通过一个类的全限定名来获取此类的二进制字节流,这个动作是放到Java虚拟机外部实现的,以便让应用程序自己决定如何去获取所需要的实现类。 从第一行看出,这个对象确实是类chap07.ClassLoaderTest实例化出来的对象,但是从第二句可以发现,这个对象与类c…
Java虚拟机06——类加载机制
在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提供高度的灵活性,Java里天生可以动态扩展的语言特性,就是以来运行期动态加载和动态连接这个特点实现的。 类从被加载到虚拟机内存中开始,到卸载…
Java虚拟机05——对象分配与回收策略
大多数情况下就是在堆上分配(但也可能经过JIT编译后被拆散为标量类型并间接地栈上分配)。 对象主要分配在新生代的Eden区上。 如果启动了本地线程分配缓冲,将按线程优先在TLAB上分配。 少数情况下也可能会直接分配在老年代中。 大多数情况下,对象在新生代Eden区中分配。当Ed…
Java虚拟机04——垃圾收集器
可以看到,收集器之间是可以搭配使用的。下面介绍这些收集器的特性、基本原理和使用场景。在介绍之前先明确一个观点:直到现在为止还没有最好的收集器出现,更加没有万能的收集器,选择的是对具体应用最合适的收集器。 串行收集器是最基本、发展历史最悠久的收集器。它们的特点就是单线程运行及独占…
Java虚拟机03——垃圾收集算法
这个算法其实已经过时了,但是后续的算法都是基于这种思路来的。它主要的不足点有两个: 效率问题。标记和清理两个过程的效率都不高 空间问题。标记清除后会产生大量不连续的内存碎片,空间碎片太对会导致程序运行过程中需要分配大对象时,无法找到连续的内存而不得不提前触发另一次垃圾收集动作 …
只有掌握了这三种代理模式,才能进军Spring AOP哦!
所谓代理模式,是指客户端(Client)并不直接调用实际的对象(下图右下角的RealSubject),而是通过调用代理(ProxySubject),来间接的调用实际的对象。 代理模式的使用场合,一般是由于客户端不想直接访问实际对象,或者访问实际的对象存在技术上的障碍,因而通过代…
Java虚拟机02——对象存活判断和4种引用
给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时候计数器为0的对象是不可能再被使用的。 上面例子objA与objB互相依赖,从结果来看,内存大小从7014k -> 832k,虚拟机进行了回收,证明虚拟机不是通过引用计数法来…
你还在看《深入理解Java虚拟机》的运行时数据模型吗?
在这里我们只针对HotSpot VM来说,它是OracleJDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机。在JDK7之前,这样的模型是正确的。但是到了JDK8,如图标红的部分,做了一些优化。 “方法区”(Method Area),是线程共享的区域,用…
下一页
个人成就
文章被点赞
171
文章被阅读
26,827
掘力值
917
关注了
6
关注者
69
收藏集
0
关注标签
6
加入于
2017-03-26