1、JVM运行时数据区
>>>解释如下:
JVM运行时数据区==>5块==>Heap、MethodArea(RuntimeConstantPool)||MetaSpace、VMStack、NativeMethodStack、ProgramCounterRegister
==>其中Heap和MethodArea是所有线程共享的;
==>而:ProgramCounterRegister、VMStack、NativeMethodStack是线程隔离的,即仅在当前线程范围有效;
==>线程开的越多,导致VMStack和NativeMethodStack变大,一个线程对应两个stack,一个VMStack,一个是NativeMethodStack。
【Vip】JVM Memory=>Heap + Non-Heap
>>Non-Heap=>Non-Heap=MethodArea=>MethodArea=PermGen+CodeCache
>>Heap=YoungGen + OldGen(TenuredGen)
2、编译器模式:-Xint || -client || -server
3、JVM时间消耗:类加载时间 || 编译时间(ComplieTime) || 垃圾收集时间(GC Time)|| 用户程序时间
==>编译时间:JIT 编译热点代码(Hotspot code)的耗时
==>JIT会将热代码编译为本地代码
==>运行期编译,会占用运行时间
==>运行期动态编译可能优于C/C++的静态编译方式
4、GC:
==>避免运行时自动扩展(-Xms与-Xmx相同 -XX:PermSize与-XX:MaxPermSize相同)
5、JVM上的多线程
==>JVM上的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器(对于多核处理器来说是一个内核)只会执行一条线程中的指令。
==>这就是为什么jetty在分配Acceptor时,算法为:setAcceptors(Math.max(1, (Runtime.getRuntime().availableProcessors() + 3) / 4));
==>理论上真正并行线程数不超过CPU核数,这个是针对cpu密集型说的,实际上,可以配置更多线程增大并行度,来充分利用CPU;
【温馨提示】
如果您觉得满意,可以选择支持下,您的支持是我最大的动力:
分享到:
相关推荐
熟悉JVM指令集有助于深入理解Java程序的运行机制,对于性能优化、问题排查、JVM调优等都有重要意义。例如,通过查看字节码,可以分析方法的运行开销,找出潜在的性能瓶颈。 6. **实际应用** 在实际开发中,开发者...
最后,集合面试题会涉及Java集合框架的深入理解: 1. **集合接口**:List、Set、Queue、Map等接口的特点和使用场景。 2. **HashMap与HashTable**:对比两者的异同,理解线程安全和非线程安全的区别。 3. **...
从汇编角度理解本地变量的生命周期,有助于我们深入认识JVM的工作机制。本地变量(Local Variables)是在Java方法中声明的变量,它们的生命周期与方法的执行紧密相关。 本地变量的生命周期始于方法的调用,当方法被...
Java虚拟机是Java程序的运行环境,理解JVM对于优化程序性能至关重要: 1. **内存模型**:堆内存、栈内存、方法区、本地方法栈和程序计数器。 2. **垃圾回收**:GC算法(如标记-清除、复制、标记-整理、分代收集)和...
这些阶段旨在帮助理解JVM的工作原理和编程语言的执行过程。下面我们将深入探讨每个阶段以及与Java相关的知识点。 **阶段1 - 操作数堆栈** 在这一阶段,重点是操作数堆栈,它是JVM的一个核心组件。操作数堆栈(也...
本文档“使用Java理解程序逻辑”旨在帮助初学者和有经验的开发者深入理解程序设计的基本原理和Java语言的核心特性。下面,我们将详细探讨其中可能涉及的知识点。 1. **程序逻辑**:程序逻辑是程序设计的基础,它...
- **JVM原理**:理解类加载机制、内存模型(堆、栈、方法区等)、垃圾收集机制。 3. **Java框架**: - **Spring**:学习Spring的核心概念,如依赖注入、AOP(面向切面编程)、事务管理。 - **Spring Boot**:...
6. **JVM**:深入理解JVM的工作原理,包括类加载机制、字节码执行、内存区域划分,以及如何进行性能优化。 7. **多线程**:知道如何创建和使用线程,理解同步机制(synchronized,Lock),了解死锁、活锁和饥饿现象...
1. 内存模型:理解JVM的内存区域,包括堆、栈、方法区等。 2. 垃圾回收:了解垃圾回收的基本原理,如可达性分析和引用类型。 3. 类加载机制:理解双亲委派模型,知道如何自定义类加载器。 以上只是Java面试中可能...
在这个过程中,理解JVM(Java虚拟机)的角色至关重要,因为它是对象生命周期的主要管理者。 首先,让我们了解一下JVM的结构。JVM是Java虚拟机的缩写,它的主要任务是执行符合Java字节码规范的.class文件。JRE(Java...
2. **面向对象编程**:深入理解类、对象、继承、封装、多态等概念。熟悉访问修饰符(public, private, protected, default)以及构造器的作用。理解抽象类和接口的区别,以及如何使用final关键字。 3. **集合框架**...
13. **JVM优化**:理解JVM的运行机制,包括类加载、内存模型、垃圾回收策略等,并能够进行性能调优。 14. **算法与数据结构**:面试中可能涉及简单的算法题,如排序、查找,以及链表、树、栈、队列等基础数据结构的...
3. **集合框架**:深入理解ArrayList、LinkedList、HashSet、HashMap等数据结构的实现原理和应用场景,以及它们之间的性能差异。还要掌握泛型、迭代器和集合的转换。 4. **多线程**:了解Thread类、Runnable接口,...
- **封装、继承、多态**:这是Java面向对象的三大特性,需要深入理解它们的概念和实际应用。 - **构造器**:了解构造器的作用,包括无参构造器和带参构造器,以及构造器的重载。 - **抽象类与接口**:知道两者的...
- 深入理解JVM内存模型(堆、栈、方法区、本地方法栈和程序计数器)。 8. **设计模式**: - 单例模式、工厂模式、观察者模式、装饰器模式等常见的设计模式及其应用场景。 9. **最新技术趋势**: - Spring Boot...
- 继承与多态:深入理解继承的概念,以及多态在Java中的体现和应用。 - 封装与抽象:掌握接口和抽象类的区别,理解封装的意义。 - 接口与内部类:理解接口的作用,以及内部类的种类和应用场景。 3. **集合框架**...
深入理解Java虚拟机(JVM)的工作原理,包括内存模型(堆、栈、方法区等)、垃圾回收机制、类加载过程以及JVM调优工具,可以帮助开发者解决性能瓶颈,提升应用程序运行效率。 七、数据库操作 在Java开发中,数据库...