jvm
文章平均质量分 75
ZhangBlossom
低头赶路,敬事如仪
展开
-
【JVM】对象在堆中的创建流程以及类的加载流程
在上面工作都完成之后,从虚拟机的视角来看,一个新的对象已经产生了,但从 Java 程序的视角来看,对象创建才刚开始, 方法还没有执行,所有的字段都还为零。为每一个线程预先在 Eden 区分配一块儿内存,JVM 在给线程中的对象分配内存时,首先在 TLAB 分配,当对象大于 TLAB 中的剩余内存或 TLAB 的内存已用尽时,再采用上述的 CAS 进行内存分配。原理 :虚拟机会维护一个列表,该列表中会记录哪些内存块是可用的,在分配的时候,找一块儿足够大的内存块儿来划分给对象实例,最后更新列表记录。转载 2023-02-20 10:52:57 · 218 阅读 · 0 评论 -
【Java面试】说说你对finalize的理解
说一说finalize方法你的理解原创 2022-12-12 17:04:07 · 286 阅读 · 0 评论 -
【Java面试】说说双亲委派
简单说说双亲委派原创 2022-12-12 16:19:30 · 211 阅读 · 0 评论 -
【Java】使用Jconsole连接远程云服务器(基于华为云Centos7)
当然jmxremote.password的默认名字其实是jmxremote.password.template,可以使用mv命令进行重命名。到此为止已经成功了,如果你要使用ssl,那么就进行相应的配置吧,当然我们使用jconsole一般是为了应急,大部分都是用VisualVM。然后使用chown 777 jmxremote.password的方式来提供编辑这个文件的能力。首先,打开你的JDK,然后进入如下目录,/jdk8/jre/lib/management。然后将原本的注释放开,然后:wq保存退出。原创 2022-12-11 21:45:31 · 1014 阅读 · 0 评论 -
【Java】Java对象内存模型
典型的 Java 实现使用 8 位表示字节,用 2 字节(16 位)表示一个 char 值,用 4 字节(32 位)表示一个 int 值,用 8 字节(64 位)表示一个 double 或者 long 值,用 1 字节表示一个 boolean 值(因为计算机访问内存的方式都是一次 1 字节)。根据可用内存的总量就能够计算出保存这些值的极限数量。例如,如果计算机有 1 GB 内存(10 亿字节),那么同一时间最多能在内存中保存 2.56 亿万个 int 值或是 1.28 亿万个 double 值。原创 2022-10-08 06:30:00 · 1535 阅读 · 0 评论 -
【Java面试】说说JVM的内存结构以及他们那些会产生内存溢出?
当然,想要运行main方法,会发现main方法是在一个类Main中的,而此时还没有加载这个类呢,因此我们需要对这个类进行加载,此时就会通过类加载子系统将类的原始信息加载到Method Area方法区中,加载到这个区中的信息包括类的名字,类的继承关系,类的成员变量,类中引用的其他类,以及类的方法代码等。而当我们的方法执行到一个new操作的时候,也就是需要创建一个实例对象的时候,对象所占用的内存来自于堆Heap,会先计算这个对象需要占用多大的内存,然后去堆中找到一个这么大的内存来创建这个对象。原创 2022-12-10 16:03:04 · 550 阅读 · 0 评论 -
【Java面试】说说类加载机制(流程)
你能说说Java中类的加载和卸载的机制或者流程吗?原创 2022-12-10 21:39:14 · 994 阅读 · 0 评论 -
【JVM】方法区与永久代、元空间之间的关系
方法区,元空间,永久代的关系原创 2022-12-10 16:20:31 · 735 阅读 · 0 评论