About——Java
来源:互联网 发布:韩庚sj 知乎 编辑:程序博客网 时间:2024/05/19 13:58
关于Java内存分配
一.Java程序运行在java虚拟机(JVM百度百科 )上,Jvm可以运行在任何系统,Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。
二. Java的内存区域
1.寄存器:特点是存取速度非常快,程序无法控制,JVM只设置了4个最为常用的寄存器 pc程序计数器 optop操作数栈顶指针 frame当前执行环境指针 vars指向当前执行环境中第一个局部变量的指针 所有寄存器均为32位。pc用于记录程序的执行,optop,frame和vars用于记录指向Java栈区的指针。
2.栈:保存局部变量的值,其中包括基本数据类型的值,类的实例(也就是对象的引用),也可以保存加载方法的帧
3.堆:用来存放动态产生的数据,比如new出的对象(赋给引用),注意new出来的对象仅包含自身变量,而不包含类内定义的方法,这样就避免了方法重复加载
堆栈百度百科
4.常量池:用于保存在编译期已确定的,已编译的class文件中的一份数据。它包括了关于类,方法,接口等中的常量,也包括字符串常量,如String s = “java”这种申明方式;当然也可扩充,执行器产生的常量也会放入常量池,故认为常量池是JVM的一块特殊的内存空间。常量池百度百科
5.代码段 :存放程序执行代码的一块内存区域。代码段百度百科
6.数据段:用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。数据百度百科
资料均来自于网络和书籍,仅作学习笔记使用
- About——Java
- About Java
- about java
- About JAVA Steam
- Problem about java basic
- Java Tips -- About Exception
- Java Tips -- About "equals"
- About exception of Java
- some understanding about Java
- the books about java
- All About JAVA 杂
- Sth about java security
- About Java Exception
- Good book about java
- Sth about Java
- Something about Java
- General Questions about Java
- [note]others about java
- 【软考总结】——编译原理之文法
- 插入排序(InsertSort)
- 使用autoconfig/automake生成makefile文件以及将程序打包为tar.gz
- HTML中输入框禁止手动输入的属性
- 笨笨的小猪
- About——Java
- 关于欢迎使用Markdown编辑器写博客
- leetcode 357 Count Numbers with Unique Digits
- MatConvNet卷积神经网络(四)——用自己的数据训练
- arm汇编指令
- QBE Example 的简单使用
- 句子反转
- 你应该要有所了解OSSL开源软件许可协议
- C++ 中字符串的使用