当前位置:首页 » 编程语言 » java的方法区

java的方法区

发布时间: 2023-07-03 04:03:08

‘壹’ java内存中的栈,堆和方法区的用法有什么不同

JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)也叫静态存储区。

堆区:

  1. 存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)

2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身

栈区:

  1. 每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中

2.每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问

3.栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。

方法区:

  1. 又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class和static变量。

2.方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量。

‘贰’ Java的方法区和本地方法区有何不同什么是Native Method

java的方法区在jdk7及以前是永久代,使用的是虚拟机的内存,而到了jdk8,元空间取代了永久代,使用的是本地的内存。
Native Method是本地方法的意思,非java编写,比如c/c++,一般用于操作底层的硬件。在java中通过本地方法接口也就是带native修饰符的方法来调用本地方法。

‘叁’ java方法区中包含哪些内容,常量池中包含哪些内容

包含类的版本,类名,字段,方法,接口等信息;
常量池里存放了编译期产生的各种 字面量以及符号引用,在类加载后进入方法区的运行时常量池中,运行时常量池相对于class常量池一个重要的特征是动态性,在运行期间也可以将新的常量放入其中,用的较多的就是String的intern方法。

‘肆’ java线程存放在jvm的哪个区域方法又存放在哪个区呢

聊到JAVA中的方法,大多数人对于方法存储在方法区还是栈区(虚拟机栈)是很迷茫的。其实方法是存在方法区的下面我们就细细说一下JVM中的 方法区 VS 栈区方法区:用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据,方法编译出的字节码也是保存在这

‘伍’ Java方法区和堆分别储存什么

静态变量、常量在方法区,所有方法,包括静态和非静态的,也在方法区。堆储存对象、数组、非静态变量。

‘陆’ java中,静态方法被调用是,存储在内存的哪个区域是栈还是放大区还是两者都有

在JDK8之前,静态成员(静态变量和静态方法)都是存储在方法区(永久代)中的静态区中(这里指类被加载后,静态成员的存储位置)。但在JDK8之后,永久代被移除了,取而代之的是元空间(metaspace)。但元空间中存储的主要是.class文件的元数据信息,静态成员的存储位置由方法区转到了堆内存(heap)中。
不过,不管是JDK8,还是更早的版本中,静态方法的执行(不仅仅是静态方法,还有普通的成员方法)都是在栈内存(stack)中进行的。每个线程都会在栈内存中开辟一个栈,在调用方法时,对应的方法都会在执行这个方法的线程的栈中创建一个“栈帧”,栈帧中保存了局部变量表(基本数据类型和对象引用)、操作数栈、动态连接和返回地址等信息。等到方法执行完毕,栈帧被销毁,对应的内存也将被释放。

热点内容
破解访问权限 发布:2025-02-10 07:17:24 浏览:663
庆余年密码多少 发布:2025-02-10 07:16:38 浏览:201
ftp包括有哪两个连接 发布:2025-02-10 07:11:50 浏览:423
压缩模量es 发布:2025-02-10 07:11:47 浏览:115
鸡尾酒配置酒什么意思 发布:2025-02-10 07:01:34 浏览:139
c语言的架构设计 发布:2025-02-10 06:59:59 浏览:747
柯南可以缓存 发布:2025-02-10 06:59:52 浏览:422
电脑做安卓系统哪个好用 发布:2025-02-10 06:27:44 浏览:372
linux转换字符集 发布:2025-02-10 06:20:05 浏览:483
网站的服务器ip有什么用 发布:2025-02-10 06:15:53 浏览:701