
jvm
文章平均质量分 91
Java糖糖
这个作者很懒,什么都没留下…
展开
-
采访22年第一批秋招上岸的同学后,我整理了这份Java面试手册,让你快速入手offer
入行这么些年,每年都会有很多读者或者朋友跟我诉苦,无非都是觉得自己技术还不错,就是面试发挥总是不理想云云,其实仔细想想也不奇怪,就跟上学时每个班想必都有一两个同学平时学习扎实,考试时成绩却总是不上不下。原创 2022-08-19 13:34:50 · 308 阅读 · 0 评论 -
JVM原理与深度调优
什么是jvm jvm是java虚拟机 运行在用户态、通过应用程序实现java代码跨平台、与平台无关、实际上是"一次编译,到处执行" 1.从微观来说编译出来的是字节码!去到哪个平台都能用,只要有那个平台的JDK就可以运行!字码好比是一个人,平台好比为国家,JDK好比这个国家的语言!只要这个人(字节码)有了这个国家的语言(JDK)就可以在这个国家(平台)生活下去。 2.JDK 是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库原创 2022-03-30 16:19:23 · 152 阅读 · 0 评论 -
Java线程池没用好,系统直接崩溃了...
目录 背景介绍 线程池的基本工作原理 线程池高并发场景下问题剖析 线程池高并发场景下性能优化 总结 背景介绍 大家好,今天给大家讲一个比较偏硬核技术类的知识,就是 Java 线程池在生产项目中的高并发优化。 可能很多兄弟都听说过 Java 线程池的理论原理,知道他是怎么运作的,但是从来没在项目里玩儿过 Java 线程池,更没在高并发环境下玩儿过 Java 线程池的优化,所以今天我们来一起探讨一下这个 Java 线程池在生产项目中的高并发优化! 线程池的原创 2022-03-30 16:17:40 · 856 阅读 · 1 评论 -
JVM 从入门到放弃之 Java 对象创建过程
架构对象的创建 Java 是一门面向对象的编程语言,创建对象通常只是通过 new关键字创建。 对象创建过程 当虚拟机遇到一个字节码 new指令的时候,首先去检查这个指令的参数是否能够在常量池中定位到一个类的符号引用。并且检查这个符号引用代表的类是否被虚拟机类加载器加载。如果没有,必须先执行类加载的流程。 在类的检查通过过后,接下来虚拟机就会为新生成对象分配内存。对象所需要的内存大小在类加载的时候决定。(对象内存分配后面将有独立的一小段讲解)。 内存分配完成后,虚拟机会将这块分配到的内存空间(不原创 2022-03-29 14:42:54 · 138 阅读 · 0 评论 -
Java面试题:谈谈你对JVM运行时内存的理解吧。
Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。JDK 1.8 和之前的版本略有不同,下面会介绍到。 JDK 1.8 之前: JDK 1.8 : 线程私有的: 程序计数器 虚拟机栈 本地方法栈 线程共享的: 堆 方法区 直接内存 (非运行时数据区的一部分) 程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、.原创 2022-03-29 14:40:41 · 136 阅读 · 0 评论 -
10个经典又容易被人疏忽的JVM面试题
1. 对象一定分配在堆中吗?有没有了解逃逸分析技术? 「对象一定分配在堆中吗?」不一定的,JVM通过「逃逸分析」,那些逃不出方法的对象会在栈上分配。 「什么是逃逸分析?」 逃逸分析(Escape Analysis),是一种可以有效减少Java 程序中同步负载和内存堆分配压力的跨函数全局数据流分析算法。通过逃逸分析,Java Hotspot编译器能够分析出一个新的对象的引用的使用范围,从而决定是否要将这个对象分配到堆上。 ❝ 逃逸分析是指分析指针动态范围的方法,它同编译器优化原理的指针分析和外形分.原创 2022-03-23 13:24:33 · 156 阅读 · 0 评论