
JVM
执拗如少年
热爱可抵岁月漫长!
学而不思则罔,思而不学则殆!
争取做到每周更新一篇高质量博客!
由于参加实习,博客整理暂时没有精力,后续可能会更换博客平台!
展开
-
GC Tuning小白入门
GC Tuning在前面我们学习了GC相关知识,学习了基本的垃圾收集器使用,下面来简单对JVM调优入门,了解相关概念,如果想要深入理解,必须要进行实际的生产环境的磨练才可以掌握路漫漫其修远兮!一、常见垃圾回收器组合参数设定:(1.8)-XX:+UseSerialGC = Serial New (DefNew) + Serial Old小型程序才会用这种单线程的Serial,默认情况下不会是这种选项,HotSpot会根据计算及配置和JDK版本自动选择收集器JDK1.8及以前:PS + PO;原创 2020-08-05 23:11:56 · 1051 阅读 · 0 评论 -
GC入门超详解
GC我们知道在整个JVM管理的内存中,程序计数器、虚拟机栈和本地方法栈都是属于线程私有的,因此这几个区域的内存分配和内存回收都具备确定性,不需要考虑内存回收,因为当方法或线程结束的时候,内存自然就被释放了而Java堆Heap则是由垃圾收集器来管理,有着很显著的不确定性:只有程序运行期间,我们才能知道程序究竟会创建哪些对象,创建多少个对象,这部分的内存分配和回收是动态的,垃圾收集器关注的正是这部分Heap内存该如何管理一、何为垃圾?1、垃圾概念在Heap空间存放着Java世界中几乎所有的对象实例,当原创 2020-08-05 23:02:19 · 57610 阅读 · 0 评论 -
JVM Runtime Data Area——运行时数据区
JVM Runtime Data Area——运行时数据区Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域各有各自的用途,以及创建和销毁时间,有的区域随着虚拟机在进程的启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。一、程序计数器(重点)程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节原创 2020-08-05 22:50:15 · 360 阅读 · 2 评论 -
JMM——软硬件基础
JMM——软硬件基础一、硬件基础前置知识:计算机基础——CPU速度比内存快100倍,比磁盘快1000000倍在上面的模型图中我们知道,每个CPU内部有L1、L2两个缓存,那么当内存中的数据被load到每个CPU的缓存中,当其中一个CPU修改了数据,另一个CPU如何对数据进行即时同步(可见性),保证数据一致性?1、总线锁由于总线锁造成效率很低,很老的CPU才会使用总线锁,现在很少单独使用总线锁了2、MESI——缓存一致性协议缓存一致性协议有很多,不同的硬件厂商都有各自的实现Intel使用原创 2020-08-05 22:40:14 · 363 阅读 · 0 评论 -
JMM——对象的创建、内存布局及访问
JMM——对象的创建、内存布局及访问讲解HotSpot虚拟机在Java堆中对象分配、布局和访问的全过程以某大厂面试题展开对象的内存布局问题1、请解释以下对象的创建过程?2、对象在内存中的存储布局?3、对象头具体包括什么?4、对象怎么定位?5、对象怎么分配?6、Object o = new Object在内存中占用几个字节?一、请解释以下对象的创建过程?这个问题其实就是问:new了一个对象,在本质上是怎样一个过程大致可分为以下步骤1、检查符号引用当JVM遇到字节码new指原创 2020-08-05 22:28:40 · 402 阅读 · 0 评论 -
类加载机制详解
类加载机制一、概念在前面我们学习了Class文件存储格式的具体细节,在Class文件中描述的各类信息,最终都需要加载到虚拟机中才能被运行和使用。而虚拟机是如何加载这些Class文件?Class文件中的信息进入到虚拟机后会发生什么变化?是我们这次需要学习的内容与那些在编译时需要进行连接的语言不同,在Java语言中,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略让Java语言进行提前编译会面临额外的困难,也会让类加载时稍微增加一些性能开销,但是却为Java应用提供了极高的扩展性和灵活性。J原创 2020-08-05 22:23:19 · 732 阅读 · 0 评论 -
JVM入门
JVM入门一、什么是JVMJVM即Java Virtual Machine (Java虚拟机)Java虚拟机从Java诞生以来,经过了长足的发展,只要遵循Java虚拟机规范,已经诞生有很多种JVM,而官方的HotSpot VM是我们最常用,也是最当之无愧的武林盟主,其余还有Exact VM、Embedded VM、IBM VM等。后面我们将针对HotSpot来深入理解Java虚拟机的世界1、JVM的语言无关性我们都知道计算机只认识 0 和 1 ,所以我们编写的程序都要被转化成 0 和 1 构成的二原创 2020-08-05 22:17:46 · 347 阅读 · 0 评论