![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 96
不二人生
刀光剑影江湖情,摧枯拉朽浪滔滔。功名利禄拂衣去,山高水远路迢迢。一个上得了厅堂下得了厨房、左手写诗右手写词的男人
展开
-
胡说八道JVM—垃圾回收算法和垃圾回收器
垃圾回收算法引用计数器法(Reference Counting)可达性分析标记清除算法(Mark-Sweep)这个算法的原理很简单,但是它却是其他算法的基础,后续的其他算法否是在这个算法的基础上,针对它的不足,进行改造。标记阶段每一个可以从根对象访问到的对象都会被添加一个标识,于是这个对象就被标识为可到达对象——存活对象,将来垃圾回收的时候不会被回收。在深入了解JVM最佳实践第二版中,是写的标记需要回收的对象,但是这里我认为标记的是可达的对象,因为可达性分析无法找到不可达的对象,所以没原创 2022-01-19 12:11:56 · 53891 阅读 · 0 评论 -
胡说八道JVM—垃圾回收概论
内存溢出和内存泄漏其实学习jvm 的垃圾回收,基本上就是在解决这两类问题——内存泄漏和溢出,泄露了就得存代码角度去解决这个问题;如果不是因为泄漏导致的溢出,那就得去调整参数或者升级配置了。gc 可以回收的话就不会内存溢出,但是频繁GC 可能导致性能问题对象的内存分配在java虚拟机的自动内存分配机制下,一般不容易出现内存泄漏问题。但是写代码难免会遇到一些特殊情况,比如OOM神马的。。尽管虚拟机内存的动态分配与内存回收技术很成熟,可万一出现了这样那样的内存溢出问题,那么将难以定位错误的原因所在。内原创 2022-01-19 11:57:41 · 53226 阅读 · 0 评论 -
Java数据类型—包装类
1. 为什么需要包装类:JAVA是面向对象的语言,很多类和方法中的参数都需使用对象(例如集合),但基本数据类型却不是面向对象的,这就造成了很多不便2. 拆装箱的概念:将基本数据类型转为包装类的过程叫装箱,将包装类转为基本数据类型的过程叫拆箱3. 自动拆装箱:Java为了简便拆箱与装箱的操作,提供了自动拆装箱的功能4. 建议使用valueOf() 方法创建一个包装类实例而不是直接使用构造方法,因为该方法可以走缓存提高性能原创 2020-12-16 16:16:27 · 47693 阅读 · 6 评论 -
胡说八道JVM—java虚拟机概论
虚拟机是一个相对于 “物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上的,而虚拟机的执行引擎则是由自己实现的,因此可以自行制定指令集与执行引擎的结构体系,并且能够执行哪些不被硬件直接支持的指令集格式。原创 2020-12-14 22:28:34 · 41382 阅读 · 1 评论 -
胡说八道JVM—运行时数据区(栈)
虚拟机栈是Java执行方法的内存模型。每个方法被执行的时候,都会创建一个栈帧,把栈帧压人栈,当方法正常返回或者抛出未捕获的异常时,栈帧就会出栈。然后又将栈内存分为pc寄存器、本地方法栈、Java方法栈需要注意的是,在jvm规范中运行时数据区包括,栈和本地方法栈,但是对于本地方法栈的实现没有严格的约束,所以hotspot 虚拟机将本地方法栈和虚拟机栈合二为一原创 2020-12-14 22:22:27 · 41300 阅读 · 0 评论