Java-JVM
文章平均质量分 81
想要搞懂Java,不能JVM都是扯淡的
yueerba126
刚满十八岁
展开
-
Java-JVM 详解(一篇文章带你玩转各种技术)
💾 🔄 🗑 📥。原创 2023-10-27 12:11:59 · 62 阅读 · 0 评论 -
Java-JVM-4.IO
IO是Input(输入)和Output(输出)的首字母缩写。I(输入Input):指向Java程序中输入数据,即Java程序从外部获取数据。O(输出Output):指的是Java程序向外部输出数据,即Java程序向外部发送数据。流:在Java程序和外部之间,数据像水流一样按照顺序传输。Java中,流有两种形式,字节流和字符流,下文会讲解。外部(也就是数据源)包括:源设备 和 目标设备。源设备: Java 程序使用 Input (输入)获取数据的来源。原创 2023-07-17 16:10:47 · 134 阅读 · 0 评论 -
Java-JVM-3.垃圾回收与算法
在实际工作中,我们可以直接将初始的堆大小与最大堆大小相等,这样的好处是可以减少程序运行时垃圾回收次数,从而提高效率。初始堆值和最大堆内存内存越大,吞吐量就越高,但是也要根据自己电脑(服务器)的实际内存来比较。最好使用并行收集器,因为并行收集器速度比串行吞吐量高,速度快。当然,服务器一定要是多线程的设置堆内存新生代的比例和老年代的比例最好为1:2或者1:3。默认的就是1:2减少GC对老年代的回收。原创 2023-07-17 13:03:30 · 171 阅读 · 0 评论 -
Java-JVM-2.JVM运行时内存
在Java8中,永久代已经被移除,被一个称为“元数据区”(元空间)的区域所取代。MajorGC 采用标记清除算法:首先扫描一次所有老年代,标记出存活的对象,然后回收没有标记的对象MajorGC的耗时比较长,因为要扫描再回收,MajorGC会产生内存碎片,为了减少内存损耗,我们一般需要进行合并或者标记出来方便下次直接分配。指内存的永久保存区域,主要存放 Class 和 Meta (元数据)的信息,Class 在被加载的时候被放入永久区域它和存放实例的区域不同,GC 不会在主程序运行期对永久区域进行清理。原创 2023-07-17 11:52:45 · 97 阅读 · 0 评论 -
Java-JVM-1.内存结构
如果两个线程同时调用同一个对象上的同一个方法,它们将会都访问这个对象的成员变量,但是每一个线程都拥有这个本地变量的私有拷贝。运行时常量池相于class文件中的常量池所不同的是其具备了动态性,class文件中常量池中的常量在编译期间就已经定义好了,而运行时常量池在程序运行期间也可以将常量放入该常量池中,最常见的做法就是调用String类的intern()方法。方法区也是线程共享区,用于存储[虚拟机加载的类信息(类的版本、字段、方法、接口),常量,静态变量,即时编译器编译后的代码等数据]原创 2023-07-11 15:12:31 · 105 阅读 · 0 评论