jvm方法区存什么 jvm方法区中存放的是什么东?jvm方法区?
jvm方法区中存放的是什么东?jvm方法区?
方法区域1。其中,每个类的结构信息、运行时常量池的字节码内容、字段、方法数据、常用方法和构造方法。(这是一个规范。不同的虚拟机有不同的实现。最典型的例子是永久空间和元空间。实例变量位于堆内存中,与方法区域无关。2它绝对不是用来放方法的。三。此区域中的所有线程都是共享的,并且存在垃圾回收。R
jvm:java代码是如何运行的?
一个java项目包含了很多带有“.”的源代码文件。Java“后缀。除了直接在IDE中调试外,一般来说,代码类型是jar包或war包,最后打包的jar包或war包被发送到在线服务器进行部署。
部署的方法有很多,最基本的方法是通过Tomcat容器进行部署,也可以通过Java命令手动运行jar包中的代码。
。
在Java代码打包过程中,源代码通常被编译成一个字节码文件,并带有“。“类”后缀。JVM只能识别和解释字节码文件类。
对于已编译的类字节码,您需要使用诸如Java-jar之类的命令来运行已编写的代码;一旦使用Java命令,此时您将实际启动JVM进程。
JVM进程将负责运行这些类字节码文件,这相当于运行我们编写的代码。
要运行这些类字节码文件中的代码,JVM将使用类加载器将编译后的类字节码文件加载到JVM的内存中
执行加载到内存中的类。当JVM需要哪个类时,它将使用类加载器来加载相应的类。
java中,静态方法被调用是,存储在内存的哪个区域?是栈?还是放大区?还是两者都有?
堆区域:
1。存储所有对象,每个对象都包含相应的类信息。(该类的目的是获取操作说明)
2。JVM中的所有线程只共享一个堆。堆不存储基本类型和对象引用,只存储对象本身的堆栈:1。每个线程都包含一个堆栈,它只存储基本数据类型和自定义对象的引用(而不是对象),对象存储在heap 2中。每个堆栈中的数据(原始类型和对象引用)都是私有的,其他堆栈无法访问它。
3. 堆栈分为三个部分:基本类型变量区、执行环境上下文和操作指令区。方法区:1。它也被称为静态区域。和堆一样,它也被所有线程共享。方法区域包含所有类和静态变量。2方法区域包含在整个程序中总是唯一的元素,例如类和静态变量。
方法区与永久区的区别?
方法区域是JVM规范中运行时数据区域的一部分。JVM规范中的运行时数据区还包括:PC寄存器、虚拟机堆栈、堆、方法区、运行时常量池、本地方法堆栈
永久区,也称为perm区,只存在于热点Jdk8中,已经完全去掉了永久带。Jdk8引入了一个新的内存区域,叫做Metaspace
Java。Java以其开源、高效、跨平台和良好的生态性成为当前主流编程语言。即使是以前使用其他技术栈的公司,现在也在慢慢地向Java平台迁移。我相信很多Java学生在面试时都会被问到关于JVM调优的问题,但是他们似乎很少在日常工作中进行JVM调优。您想为一般Java项目进行JVM调优吗?
在我们讨论JVM调优之前,让我们先讨论一下JVM。什么是JVM?实际上,JVM是Java虚拟机的缩写。Java能够跨平台的原因实际上是基于JVM。
尽管JVM本身是一个计算机程序,但它也有自己的一套软件和硬件环境。
就像你买了一台新电脑。系统安装后,您可以正常使用计算机。但是很多用户需要自定义电脑,比如桌面背景。同样,JVM安装后,即使没有任何额外的设置,也可以正常工作,但在某些情况下,还需要对JVM进行调优,而调优的手段就是更改JVM参数。
JVM调优的目的是使用尽可能少的内存和CPU,使Java程序获得更高的吞吐量和更低的延迟。
2. JVM常用调优项
JVM最常用的调优是更改JVM的默认参数,例如:
最大堆大小:-Xmx
新生成大小:-XMN
不朽生成的最小值:-XX:permsize
不朽生成的最大值:-XX:maxpermsize
事实上,JVM的默认设置可以满足一般项目的需要。似乎只要您更改参数,JVM的调优就非常简单,但不是我,而是您认为的那么简单。
如果JVM调优不好,会影响整个项目的稳定性。在正常情况下,不建议调优JVM,除非Java项目内存太高,服务器内存太低。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。