当前位置:首页 > 虚拟机 > 正文

jvm虚拟机使用说明


一、jvm虚拟机的优化方法有哪些?JVM虚拟机的优化方法有很多,以下是一些流行的优化方法:

1.正确配置JVM参数:包括堆内存大小、新生代与老生代比例、垃圾收集器等。
2。避免使用过多的对象:频繁创建和销毁对象会增加垃圾收集器的工作量并影响性能。
3。避免使用过多的反射:反射会消耗大量的CPU时间和内存空间,所以尽量减少反射的使用。
4。使用适当的数据结构:不同的数据结构具有不同的性能特征。选择正确的数据结构可以提高程序性能。
5。使用缓存:缓存可以减少对数据库或文件系统的访问次数,提高程序性能。


二、重新理解jvm运行时的内存分布(堆栈方法区交互)栈方法环境之间的交互关系
Java栈中存储的环境变量表包括八种数据类型和引用类型的对象地址,引用Java堆中存储着对象类型数据变量名、变量类型、变量值等被存储,并且这些被存储在用于显示的战略位置(在初始化期间)。
对象的实例(s1)存储在Java堆栈上,但是对象实例的唯一数据是通过对Java堆栈上的地址的引用来存储的,并且实例信息里面存储了对象的信息(实例名称、实例关联类型、元数据信息……),以及静态变量、常量、类加载后的信息等。当进程需要时,它从方法位置共享。Java堆栈是线程特定的数据(包括程序计数器、本地方法堆栈)。
一个jvm实例只有一块堆内存,并且堆内存大小是可以调整的。类加载器读取类文件后,需要将类、方法和常量加载到堆内存中,并保存所有引用类型的正确信息,以优化可执行文件的执行。堆内存分为三部分。
(退休空间为老年代)
堆内存逻辑上分为三部分:新生代+退休+方法区
eden+Survivor+Spaces(元空间或方法区或perm)
perm持久存储区是常驻内存区域,用于存储jdk本身携带的类和接口元数据,加载到该区域中。本地数据不能被垃圾收集器重用。
如果显示OutOfMemoryReeor:PermGenspace,则说明Java虚拟机堆的永久perm内存设置不足。
对于热点虚拟机,很多开发者习惯于调用方法空间固定生成(parment
一般)错误。方法的区域就是逻辑部分。在jdk7中,常量代中首先设置的字符串常量池已被移动。
ConstantPoolConstantPoolConstantPool除了类版本、字段方法、接口等描述信息之外,还包含了该类的常量池。安装该部分后,将添加内容。
伊甸公园,这里的一切都保持着全新的状态。
对象有两种类型:
1如果是大对象,则在旧环境中自动分配。2.如果禁用转义解析,则会在堆栈上分配它。
如果不满足以上两条,则将被放置在伊甸公园。(Eden区)
看Java7上的图:
对比Java8。
三、什么是java虚拟机1.什么是Java虚拟机Java为什么被称为平台无关的编程语言?
Java虚拟机是一个可以运行Java字节码的虚拟机进程。Java源文件被编译成可由Java虚拟机执行的字节码文件。Java应用程序可以在任何平台上运行,而不需要程序员为每个平台单独重写或编译它们。Java虚拟机使这成为可能。
和JRE有什么区别?
JavaDevelopmentKit(JDK)是一个完整的Java软件开发包,包括JRE、编译器和其他工具(如:JavaDoc、Java调试工具),它允许开发者开发、编译并运行Java应用程序。
Java运行时环境(JRE)是运行Java程序的Java虚拟机。它还包含运行小程序所需的浏览器插件。
3.描述一下JVM加载class文件的原理机制?负责在运行时从类文件中查找和加载类。如果你想学习Java,可以来这个群。第一个是532,中间一个是259,最后一个是952。有很多学习资料可以下载。
的基本数据类型有哪些。字符串是Java的基本数据类型吗?,布尔值。
字符串不是Java的基本数据类型。String类是final类型,因此该类不能被继承或修改。
自动装箱是Java编译器在基本数据类型和相应的对象包类型之间进行的转换。例如:将int转换为整数,将double转换为double等。否则会自动解包。
有没有goto
Java中有一些Java中没有使用的保留字。
6.0.6332的数据类型是()
AfloatBdoubleCFloatDDouble
答案:B
分析:默认是double类型。如果是浮动的,则需要添加f-view描述,即0.6332f。
1=1;s1=s1+1;哪里错了Shorts1=1;s1+=1;哪里错了?
shorts1=1;s1=s1+1;(s1+1运算结果是int类型,必须强制转换为类型)
shorts1=1;s1+=1(+=是Java运算符,Java编译器会进行特殊处理,这样才能正确编译)
(11.5)等于(-11.5)等于什么?
(11.5)==12
(-11.5)==?-11
round方法返回最接近参数的长整型
9数据类型转换有哪些类型。
1.隐式类型转换
inti=1;longl=i;
2.强制类型转换
longl=1;inti=(int)l;
10简述逻辑操作(&,|)和条件操作(&&,||)的区别
最重要的区别有两点:
&&||只能对布尔类型进行操作,而&|不仅可以对布尔类型进行操作,还可以对数值类型进行操作
&|对布尔类型进行操作时不会产生短路现象,而&&||会产生短路现象。