jvm
文章平均质量分 80
向上的狼
目前大四, 自学编程,非计算机专业,在这里分享我的学习路程.
展开
-
关于volatile为什么不能保证原子性详解
关于volatile为什么不能保证原子性详解转载 2022-09-07 20:30:49 · 558 阅读 · 4 评论 -
类的加载详解
到目前为止, 我们已经写了无数个类了, 但是具体它在Java虚拟机中到底是怎么实现的,我们还从未探索过, 今天就带着大家一起初探一下jvm对类加载的过程(目前博主技术水平有限, 以后随着技术的更加成熟, 会更新博客内容的, 也欢迎更多小伙伴持续关注, 和提出意见)类加载在Java代码中,类型的加载、连接与初始化过程都是在程序运行期间完成的, 提供了更大的灵活性,增加了更多的可能性....原创 2022-09-04 15:09:29 · 203 阅读 · 0 评论 -
Java中new一个对象到底经历了什么?我们从内存的方面来分析它们.String定义的两种方式内存怎么安排的
在Java中创建一个对象包括对象的声明和实例化两步以Student student = new Student("小明", 18);为例一: 对象的声明1: 声明一个对象student时,将在栈内存为对象的引用变量student分配内存空间, 但student值为空, 称student是一个空对象. 空对象不能够使用, 因为它还没有引用任何实体.二: 对象的实例化对象实例化时的内存模型但执行new Student("小明", 18);2.1: 在堆内存中为类的成员变量width,原创 2021-07-25 20:06:05 · 1394 阅读 · 0 评论 -
Java内存模型JMM概述
Java内存模型JMM概述原创 2022-04-28 13:13:52 · 247 阅读 · 0 评论 -
Java中几种常量池(字符串常量池, Class常量池, 运行时常量池)的区别与联系
字符串常量池, Class常量池, 运行时常量池原创 2022-04-09 10:33:55 · 3518 阅读 · 5 评论 -
java中的局部变量和成员变量在内存中的位置
首先在这里先问大家一个问题: "java中的基本数据类型一定存储在栈中的吗?".其实答案是不然的, 并不是;基本数据类型是放在栈中还是放在堆中,这取决于基本类型在何处声明,下面对数据类型在内存中的存储问题来解释一下:一:局部变量在方法中声明的变量,即该变量是局部变量,每当程序调用方法时,系统都会为该方法建立一个栈帧,其所在方法中声明的变量就放在栈帧中,当方法结束系统会释放该栈帧,其对应在该方法中声明的变量随着栈帧的销毁而结束,这就局部变量只能在方法中有效的原因.1.1 在方法中声明的变.转载 2021-12-04 09:55:23 · 2541 阅读 · 0 评论 -
Java类加载器(类加载的流程、三大类加载器BootstrapClassLoader、ExtClassLoader、AppClassLoader)
一: 三大类加载介绍1.1. BootstrapClassLoaderBootstrapClassLoader是顶级加载器,默认加载的是%JAVA_HOME%中lib下的jar包和class类文件,他也是ExtClassLoader的父类,但是不是继承(extends)关系,是ExtClassLoder中有一个parent变量是BootstrapClassLoader1.2. ExtClassLoaderExtClassLoader扩展类加载器,负责加载%JAVA_HOME%中lib/ext转载 2021-11-09 13:42:30 · 6275 阅读 · 4 评论 -
用代码来了解jvm中内存的执行情况
/*** 测试类**/class ClassTest { public static void main(String[] args) { int i = 0; Student student = new Student(1, "张三"); SClass sClass = new SClass(student, "一班"); sClass.show(); }}/*** 学生类**/class Studen.原创 2021-08-23 18:33:48 · 205 阅读 · 0 评论 -
字符串常量池, class常量池, 运行时常量池的区别与联系
简介:这几天在看Java虚拟机方面的知识时,看到了有几种不同常量池的说法,然后我就去CSDN、博客园等上找资料,里面说的内容真是百花齐放,各自争艳,因此,我好好整理了一下,将我自认为对的理解写下来与大家共同探讨:在Java的内存分配中,总共3种常量池:1.字符串常量池(String Constant Pool):1.1:字符串常量池在Java内存区域的哪个位置?在JDK6.0及之前版本,字符串常量池是放在Perm Gen区(也就是方法区)中; 在JDK7.0版本,字符串常量池被移到转载 2021-08-23 11:57:25 · 414 阅读 · 0 评论 -
JVM的5种垃圾回收算法、垃圾回收机制与总结
垃圾回收算法(1)引用计数算法比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。(2)复制算法从根集合节点进行扫描,标记出所有的存活对象,并将这些存活的对象复制到一块儿新的内存(图中下边的那一块儿内存)上去,之后将原来的那一块儿内存(图中上边的那一块儿内存)全部回收掉现在的商业虚拟机都采用这种收集算法来回收新生代。适用场合:1: 存活对象较少的情况下比较高效.原创 2021-08-22 13:00:11 · 4989 阅读 · 0 评论 -
聊聊jvm的内存结构, 以及各种结构的作用
前言在JVM的管控下,Java程序员不再需要管理内存的分配与释放,这和在C和C++的世界是完全不一样的。所以,在JVM的帮助下,Java程序员很少会关注内存泄露和内存溢出的问题。但是,一旦JVM发生这些情况的时候,如果你不清楚JVM内存的内存管理机制是很难定位与解决问题的。JVM原理(1)jvm是java的核心和基础,在java编译器和os平台之间的虚拟处理器,可在上面执行字节码程序。(2)java编译器只要面向jvm,生成jvm能理解的字节码文件。java源文件经编译成字节码程序,通过jvm原创 2021-08-22 12:09:14 · 6128 阅读 · 2 评论