首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
最锋利的矛
掘友等级
后端开发
公众号:最锋利的矛
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
59
文章 59
沸点 0
赞
59
返回
|
搜索文章
最新
热门
JVM-字符串常量池StringTable
String:字符串,使用一对""引起来表示。 String类是已经被声明为final的, 不可被继承。 String实现了Serializable接口:表示字符串是支持序列化的。实现了Comparable接口:表示String可以比较大小。 String在jdk8及以前内部定…
JVM-执行引擎
执行引擎是Java虚拟机的核心组成部分之一。 虚拟机是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的。而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构…
JVM-运行时数据区—对象的实例化内存布局与访问定位
虚拟机遇到一条new指令,首先去检查这个指令的参数能否在Metaspace的常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化。( 即判断类元信息是否存在)。 如果没有,那么在双亲委派模式下,使用当前类加载器以ClassLoader+包名+…
JVM-运行时数据区—方法区
关闭JVM就会释放这个区域的内存。 1. HotSpot虚拟机中方法区的演进 在jdk7及以前,习惯上把方法区称为永久代。jdk8开始,使用元空间取代了永久代。 本质上,方法区和永久代并不等价。仅是对hotSpot而言的。《java虚拟机规范》对如何实现方法区,不做统一要求。例…
JVM-运行时数据区—堆
一个进程对应一个jvm实例,一个运行时数据区,又包含多个线程,这些线程共享了方法区和堆,每个线程包含了程序计数器、本地方法栈和虚拟机栈。 Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间(堆内存的大小是可以调节的) 《Java虚拟机规…
JVM-运行时数据区—本地方法接口
简单来讲,一个Native Method就是一个java调用非java代码的接口,一个Native Method 是这样一个java方法:该方法的底层实现由非Java语言实现,比如C。这个特征并非java特有,很多其他的编程语言都有这一机制,比如在C++ 中,你可以用exter…
JVM-运行时数据区—本地方法栈
本地方法栈,也是线程私有的。 允许被实现成固定或者是可动态拓展的内存大小。(和Java虚拟机栈在内存溢出方面情况是相同的) 如果线程请求分配的栈容量超过本地方法栈允许的最大容量,Java虚拟机将会抛出一个StackOverFlowError异常。 如果本地方法栈可以动态扩展,并…
JVM-运行时数据区—虚拟机栈
由于跨平台性的设计,java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。 根据栈设计的优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。 栈解决程序的运行问题,即程序如何执行,或者说如何处理数据。堆解决的是数…
JVM-运行时数据区—程序计数器(PC寄存器)
JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。JVM中的PC寄存器是对物理PC寄存器的一种抽象模拟。 一个线程对应一个 JVM St…
JVM-运行时数据区的划分
内存是非常重要的系统资源,是硬盘和cpu的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了JAVA在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的jvm对于内存的划分方式和管理机制存在着部分差异(对于Hotspot主要指方法区)…
下一页
个人成就
文章被点赞
124
文章被阅读
36,131
掘力值
1,189
关注了
20
关注者
30
收藏集
0
关注标签
10
加入于
2020-06-17