自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小宝的博客

知识改变命运

  • 博客(8)
  • 收藏
  • 关注

原创 Java虚拟机08——Java内存模型与线程

硬件的效率与一致性 绝大多数的运算任务都不可能只靠处理器“计算”就能完成,处理器至少要与内存交互,如读取运算数据、存储运算结果等。由于计算机的存储设备与处理器的运算速度有接数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的缓冲:将运算需要使用到的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步回内存中,这样处...

2019-04-22 12:47:38 157

原创 Java虚拟机09——线程安全与锁优化

线程安全 线程安全:当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的。 java语言中的线程安全 Java语言中各种操作共享的数据分为以下5类:不可变、绝对线程安全、相对线程安全、线程兼容和线程对立 不可变(Immutable) 不可变对象一定是线...

2019-04-22 12:45:39 188

原创 Java虚拟机07——类加载器与双亲委派模型

类加载器 类加载器实现了通过一个类的全限定名来获取此类的二进制字节流,这个动作是放到Java虚拟机外部实现的,以便让应用程序自己决定如何去获取所需要的实现类。 关于类 的唯一性:只有加载它的类加载器和类本身一同确立其在Java虚拟机中的唯一性,即使这两个类来源于同一个Class文件,被同一个虚拟机加载,只要它们的类加载器不同,那这两个类就必定不同 public class ClassLoadTes...

2019-04-12 17:07:14 181

原创 Java虚拟机06——类加载机制

虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制 在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提供高度的灵活性,Java里天生可以动态扩展的语言特性,就是以来运行期动态加载和动态连接这个特点实现的。 类加...

2019-04-11 22:15:07 116

原创 Java虚拟机05——对象分配与回收策略

对象的内存分配基本规律有以下几条: 大多数情况下就是在堆上分配(但也可能经过JIT编译后被拆散为标量类型并间接地栈上分配)。 对象主要分配在新生代的Eden区上。 如果启动了本地线程分配缓冲,将按线程优先在TLAB上分配。 少数情况下也可能会直接分配在老年代中。 对象的分配规则不是百分百固定的,其细节取决于当前使用的是哪一种垃圾收集组合,还有虚拟机中与内存相关的参数设置 对象优先在Eden分配...

2019-04-09 13:05:06 208

原创 Java虚拟机04——垃圾收集器

主要介绍HotSpot虚拟机的垃圾收集器,这个虚拟机包含的所有收集器如图所示: 可以看到,收集器之间是可以搭配使用的。下面介绍这些收集器的特性、基本原理和使用场景。在介绍之前先明确一个观点:直到现在为止还没有最好的收集器出现,更加没有万能的收集器,选择的是对具体应用最合适的收集器。 串行收集器 串行收集器是最基本、发展历史最悠久的收集器。它们的特点就是单线程运行及独占式运行,因此会带来很不好的用...

2019-04-07 22:40:16 84

原创 Java虚拟机03——垃圾收集算法

这里简要介绍几种垃圾收集算法的思想 标记 - 清除算法 该算法如同它的名字一样,分为“标记”和“清除”两个阶段: 首先标记出所有需要回收的对象 在标记完后统一回收所有被标记的对象 这个算法其实已经过时了,但是后续的算法都是基于这种思路来的。它主要的不足点有两个: 效率问题。标记和清理两个过程的效率都不高 空间问题。标记清除后会产生大量不连续的内存碎片,空间碎片太对会导致程序运行过程中需要分...

2019-04-03 13:01:20 131

原创 只有掌握了这三种代理模式,才能进军Spring AOP哦!

代理模式定义 首先我们来看看代理模式: 所谓代理模式,是指客户端(Client)并不直接调用实际的对象(下图右下角的RealSubject),而是通过调用代理(ProxySubject),来间接的调用实际的对象。 代理模式的使用场合,一般是由于客户端不想直接访问实际对象,或者访问实际的对象存在技术上的障碍,因而通过代理对象作为桥梁,来完成间接访问。 业务场景 首先有个UserService接口,...

2019-04-02 17:36:58 102

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除