Java JVM怎么学习啊?从哪方面入手

发布网友 发布时间:2022-04-23 13:47

我来回答

3个回答

热心网友 时间:2022-04-11 23:44

Java JVM如何学习?首先要了解他的类型!

java虚拟机学习 

  数据类型(基本类型、引用类型)====>数值本身、引用值 2. 堆、栈=====>栈是运行时的单位(如何处理数据),堆是存储的单位(数据如何存储)

------栈因为是运行单位,因此里面存储的信息都是跟当前线程(或程序相关信息的。包括局部变量、程序运行状态、方法返回值等等;而堆只负责存储对象信息。在Java中,Main函数就是栈的起始点,也是程序的起始点。堆中存的是对象,栈中存的是基本数据类型和堆中对象的引用 

  Java中的参数传递时传值呢?还是传引用? 

a) 程序运行永远都是在栈中进行的,因而参数传递时,只存在传递基本类型和对象引

用的问题。不会直接传对象本身。 

b) Java在方法调用传递参数时,因为没有指针,所以它都是进行传值调用 

c) 堆和栈中,栈是程序运行最根本的东西。程序运行可以没有堆,但是不能没有栈。

而堆是为栈进行数据存储服务,说白了堆就是一块共享的内存。不过,正是因为堆和栈的分离的思想,才使得Java的垃圾回收成为可能

Java对象的大小 

a) 一个空Object对象的大小是8byte(没有任何属性的对象) b) Object ob = new Object();所占的空间为:4byte+8byte。4byte是上面部分所说的Java

栈中保存引用的所需要的空间。而那8byte则是Java堆中对象的信息.不论什么样的Java对象,其大小都必须是大于8byte 

c) Java在对对象内存分配时都是以8的整数倍来分,基本类型包装类的大小至少是

16byte

引用类型 

a) 对象引用类型分为强引用、软引用、弱引用和虚引用。 

b) 强引用:就是我们一般声明对象是时虚拟机生成的引用,强引用环境下,垃圾回收

时需要严格判断当前对象是否被强引用,如果被强引用,则不会被垃圾回收 c) 软引用:软引用一般被作为缓存来使用。与强引用的区别是,软引用在垃圾回收时,

虚拟机会根据当前系统的剩余内存来决定是否对软引用进行回收。如果剩余内存比较紧张,则虚拟机会回收软引用所引用的空间;如果剩余内存相对富裕,则不会进行回收。换句话说,虚拟机在发生OutOfMemory时,肯定是没有软引用存在的。 d) 弱引用:弱引用与软引用类似,都是作为缓存来使用。但与软引用不同,弱引用在

进行垃圾回收时,是一定会被回收掉的,因此其生命周期只存在于一个垃圾回收周期内。

JVM调优总结(三)-基本垃圾回收算法 7. 垃圾回收面临的问题 

a) 如何区分垃圾。垃圾回收的起点是一些根对象(java栈, 静态变量, 寄存器...)。而

最简单的Java栈就是Java程序执行的main函数 b) 如何处理碎片。“复制”方式和“标记-整理”方式,都可以解决碎片的问题。 c) 如何解决同时存在的对象创建和对象回收问题;在现有的垃圾回收方式中,要进行

垃圾回收前,一般都需要暂停整个应用(即:暂停内存的分配),然后进行垃圾回收,回收完成后再继续应用 

8. 分代垃圾回收详述 

a) 为什么要分代:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可

以采取不同的收集方式,以便提高回收效率。 

b) 如何分代虚拟机中的共划分为三个代:年轻代(Young Generation)、年老点(OldGeneration)和持久代(Permanent Generation)。其中持久代主要存放的是Java类的类信息,与垃圾收集要收集的Java对象关系不大。年轻代和年老代的划分是对垃圾收集影响比较大的

什么情况下触发垃圾回收GC有两种类型:Scavenge GC(当新对象生成,并且在Eden

申请空间失败时,就会触发Scavenge GC,对Eden区域进行GC,清除非存活对象,并且把尚且存活的对象移动到Survivor区)和Full GC(对整个堆进行回收)

典型配置举例 

a) 堆大小设置 

b) 回收器选择。串行收集器、并行收集器、并发收集器,但是串行收集器只适用于小

数据量的情况,所以这里的选择主要针对并行收集器和并发收集器。

垃圾回收的瓶颈 

a) 传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最

小,把应用的吞吐量推到了一个极限。但是他无法解决的一个问题,就是Full GC所带来的应用暂停

学习java的伙伴加我的 群去下载视频资料 540-998-279!

热心网友 时间:2022-04-12 01:02

java初学者?用不到学习JVM,学java基础语法就行

热心网友 时间:2022-04-12 02:37

JVM

java虚拟机(java virtual machine 简称JVM):一种能够运行java字节码的虚拟机,作为一种编程语言的虚拟机,实际上不只是专用于java语言,只要生成的编译文件匹配JVM对加载编译文件格式要求,任何语言都可以由JVM编译运行。比如kotlin、scala等。

JVM有很多,不只是Hotspot,还有JRockit、J9等等

JVM的基本结构

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com