JVM
文章平均质量分 86
Fairy要carry
欲戴其冠,必承其重
展开
-
牛客网刷题(垃圾回收+Socket+串池+类加载+事务)
目录垃圾回收 事务隔离级别字符串 Socket通信编程 ServerSocket类Socket类引用 开发人员是不能参与GC机制的,System.gc(),只是一个提醒,具体什么时候GC是不知道的,而且提醒的是Full GC,并不是Minor GC;复习一下:首先得判断哪些是垃圾,一般现在用的是可达分析法,类似树的遍历,从GC root进行遍历访问,只要是这个链条上的对象都是可以访问的,起点必须是GC Root,否则都是垃圾;具体五种引用:(30条消息) JVM-02阶段学习_Fairy要carry的博客原创 2022-06-14 09:08:29 · 169 阅读 · 0 评论 -
JVM内存模型与本地内存
Java 的类实例一般在 JVM 堆上分配,而 Java 是通过 JNI 调用 C 代码来实现 Socket 通信的,那么 C 代码在运行过程中需要的内存又是从哪里分配的呢?C 代码能否直接操作 Java 堆?为了回答这些问题,我先来说说 JVM 和用户进程的关系。如果你想运行一个 Java 类文件,可以用下面的 Java 命令来执行这个命令行中的java其实是一个可执行程序,这个程序会创建 JVM 来加载和运行你的 Java 类。操作系统会创建一个进程来执行这个java可执行程序,而每个进程都有自己原创 2022-06-12 15:00:11 · 1126 阅读 · 0 评论 -
JVM-字节码是如何被JVM执行的+关于线程一点思想引子
目录相关资源:运行时数据区域运行时栈帧结构 (25条消息) jvm到底是什么?有什么作用?工作机制如何?_weixin_39214481的博客-CSDN博客_jvm的作用下面提到程序计数器和虚拟机栈都是线程私有的,一个指引线程执行的命令,一个存放栈帧——>这让我想到ThreadLocal,保证了线程的隔离性;(25条消息) ThreadLocal 是什么?有哪些使用场景?_ConstXiong的博客-CSDN博客_threadlocal是什么这一篇介绍jvm是如何执行字节码的。本篇介绍的jvm执行引擎以jv原创 2022-06-09 14:56:10 · 510 阅读 · 1 评论 -
类加载机制(一些简单的理解)——阶段性学习
目录加载:链接:1.验证:文件格式验证元数据验证字节码验证符号引用验证2.准备:3.解析:初始化:类加载器:加载:将class文件读取到内存中,并且在堆中创建一个Class对象;类的加载是由类加载器完成的(由JVM提供)——>当然我们也可以通过extendsClassLoader来创建自己的类加载器;通过不同的加载器可以从不同的来源加载类的二进制数据(也就是加载字节码文件);——>1.从本地内存中加载class文件(大部分)原创 2022-02-20 23:48:24 · 227 阅读 · 0 评论 -
对Class类的再次认识
众所周知,java有两种对象:实例对象和Class对象那么Class对象是什么意思?每个类的运行时的类型信息——>Class对象:包含了与类有关的信息;其实我们实例对象就是通过Class对象来创建的;特点: 每一个类都有一个Class对象,每当编译一个新类就产生一个Class对象,基本类型 (boolean, byte, char, short, int, long, float, and double)有Class对象,数组有Class对象,就连关键字void也有Class转载 2022-02-20 20:43:31 · 76 阅读 · 0 评论 -
类加载一些理解(—)
从JDK1.8以来,众所周知方法区是在操作系统当中的;那么问题来了,字节码文件是怎么样加载到方法区的呢?这就和类加载有关了因为方法区在操作系统(本地内存)中,所以说Java代码是不可能直接访问到操作系统的,那么就需要JVM的类加载了;Java代码访问操作系统中的内容(目的是访问方法区),需要调用InstanceKlass(这是用C++实现的),之前的文章里面有说过——>在Object类中不难发现有Native,说明调用C++代码,然后以此访问操作系统;那么Java是怎么调用C++原创 2022-02-20 17:08:59 · 772 阅读 · 0 评论 -
垃圾回收调优
查看虚拟机运行参数-XX:+PrintFlagsFinal -version / finder "GC"确定目标选择适合的回收器是要低延迟还是高吞吐量:低延迟:CMS,G1,ZGC高吞吐量:ParallelGC原创 2022-02-20 00:27:31 · 114 阅读 · 0 评论 -
浅析JDK、JRE、JVM之间的关系
JDK:JDK=JRE+Java工具(javac/java...)+Java基础类库(Java API..)JDK可以理解为java开发工具包;包含的内容: bin:最主要的是编译器(javac.exe) include:java和JVM交互用的头文件 lib:类库 jre:java运行环境JRE:JRE(java运行环境)——>包含JVM以及JAVA核心类库;JRE是指java运行环境。光有JVM还不能成class的转载 2022-02-19 15:34:59 · 160 阅读 · 0 评论 -
垃圾回收流程-简单叙述
哪些对象是垃圾:1.引用计数法通过引用的遍历找到对应的实例,让它们的实例数(寿命)+1,如果引用为null了,那么实例的寿命-1;——>把所有引用遍历一遍后,如果对象实例计数(寿命)=0,那么就是垃圾对象——>通过垃圾回收算法进行回收;缺点:两个类相互引用:A对象实例是一个指向B对象的引用,然后B对象实例是一个指向A对象的引用;以至于不能回收;2.可达性分析法类似于树的遍历,首先会有一个GC root(可以理解为根引用,也就是类初始化就有的),然后这些根引用可以去访原创 2022-02-17 14:06:36 · 1450 阅读 · 0 评论 -
JVM-02阶段学习
目录堆内存诊断:利用jstack分析线程状况:字符串拼接新的感悟:StringTable:直接内存:直接内存释放原理:JVM垃圾回收:如何判断对象可以回收:1.引用计数法:2.可达分析:五种引用:强引用:软引用:弱引用:虚引用:终结器引用:垃圾回收算法:标记清除:标记整理:复制:JVM分代回收机制:回收流程:GC分析:相关JVM参数垃圾回收器大致分类:相关概念:堆内存诊断:1...原创 2022-02-16 23:31:18 · 805 阅读 · 2 评论 -
JVM-01(阶段性学习)
内存结构:转存失败重新上传取消原创 2022-02-15 00:28:16 · 688 阅读 · 0 评论