首页 > 基础资料 博客日记

java运行时内存分配

2023-07-29 18:52:29基础资料围观273

文章java运行时内存分配分享给大家,欢迎收藏Java资料网,专注分享技术知识

JVM将内存区域划分为五个

  • 寄存器: 跟cpu打交道

  • 本地方法栈: 使用windows的功能

  • 方法区:存储方法 class文件

  • 栈: 运行方法的,变量...循环

  • 堆: new 对象

栈与堆的区别

  • 存储区别: 栈运行方法 堆存储实体(对象)

  • 默认值: 栈内存没有默认值,使用变量手动赋值
    堆内存有默认值

  • 生命周期: 栈内存使用完毕后,立即释放,生命周期相对较短
    堆内存使用完毕后,等待JVM收取垃圾,生命周期相对较长

运行时如何划分

  • 常量池存放与堆中

  • new出来的对象也存放与堆中,栈中存放的是指向这个对象的地址

  • 创建基本类型时,直接在栈中存放

java基本类型

public class HelloWorld {
 // 全局变量,静态变量
 static char hobby = '女';
 // 实例变量,成员变量,对象变量
 private int age;
 private double weight;
 private double height;
	 public static void main(String[] args) {
	 //基本数据类型
	 //长整短整照常整,单精双精不够精,布尔byte单字符,一二四八对对出
	 // 一个字节
	 byte a = 0;// 局部变量,使用需初始化
	 boolean b;
	 // 两个字节
	 short c;
	 char d;
	 // 四个字节
	 int f;
	 float e=1.35f;
	 // 八个字节
	 double g=1.0;
	 long h;
	 }
}

对于单双精度浮点数相加问题会出现不精确的情况,判断

//单双精度相加不精确
float e=1.35f;
double g=1.0;
//是否为精确:数字(n*2)*2..*2最终结果为整数就可以精确
System.out.println(e+g);

运行时效果图


文章来源:https://www.cnblogs.com/2393920029-qq/p/16506426.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云