![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
zx592593531
这个作者很懒,什么都没留下…
展开
-
JVM系列3---字符串和常量池
本篇博客主要从jvm层面去分析Java字符串在Java内存区域的存储方式常量池class文件常量池: 存放在class文件的静态常量池,相当于内存里面的一个东西序列化到这里面,到内存之后可能会以某种合适的数据结构来存储或索引运行时常量池:InstanceKlass的一个属性存在于方法区(元空间)字符串常量池:这个是本文的重点,字符串常量池存在于堆中。字符串常量池的本质是存放于堆中的HashTableKlass与oop(对String来说)Klass:JVM里面(C原创 2020-08-25 18:26:42 · 211 阅读 · 0 评论 -
JVM系列2-Java内存区域和方法运行时发生的事情
本篇文章由概念以及一些疑问引入,写出了我对Java各大区域的理解,以及一个方法在执行的时候和他们有什么关系。JVM在启动的时候向系统要了一块很大的内存区域,这个大内存分为五个区域:方法区、堆区、虚拟机栈、本地方法栈、程序计数器,下面补充一些他们的概念堆区:通俗的理解Java new出来的对象放在这个地方本地方法栈:Java利用JNI调用其他语言程序的时候,运行的区域。方法区:讲到方法区,这里补充一下方法区、元空间、永久代的关系,这里可以把方法区理解为一个接口(JVM的一个规范),而元空间和永久原创 2020-08-23 17:08:09 · 438 阅读 · 2 评论 -
JVM系列1---字节码文件的解析
转载请附上原文地址哦一.Java程序运行流程:由Java编译器将java文件编译成java字节码文件(.class文件),由Java虚拟机执行的就是字节码文件。那么也就意味着你手写的字节码只要符合jvm的规范,jvm也是可以执行的,这也就是为什么Kotlin编写的代码可以在JVM执行的原因。二.字节码大小端的问题,假如由我们去写一个程序去解析字节码的话,一定要注意一个问题是,如果我们的机器是小端(x86体系的是小端的机器),那么在底层存储的时候高位的数据是存在低地址的(我的理解就是每读1个数据类型的原创 2020-08-21 23:11:15 · 289 阅读 · 0 评论