JavaRuntime内存 && Java整数类型和取值范围

Java整数类型和取值范围

二进制

十进制

二进制单位

十进制单位

10的次方数

单位的英语表示

20

B

1

1个

100

units digit

28

B

256

2百

102

Byte

210

KB

1 024

1千

103

thousand

216

KB

65536

64*KB

6万

104

Short

220

MB

1 048 576

1百万

106

million

230

GB

1 073 741 824

10亿

109

Billion

232

GB

4294967296

4*GB

40亿

109

Int

240

TB太

1099511627776

1

1012

万亿

250

PB拍

1125899906842620

1千兆

1015

千*万亿

260

EB艾

1152921504606850000

1.15百

1018

京 = 一亿个亿

264

EB

18446744073709600000

16*EB

1.8千京

1019

Long

Java运行时内存

1.     PC寄存器(program counter)

a)      每条线程都有一个PC寄存器

b)      用于保存“该线程的当前执行方法”的字节码指令地址(非Native方法)、或undefined(Native方法)

2.     Java虚拟机栈(Java Virtual Machine stack)

a)      每一条线程都有自己的私有栈,栈与线程同时创建

b)      用于存储局部变量、正在计算的中间结果、方法调用与返回结果

c)      可能异常:StackOverflowError(线程请求分配的栈容量超过最大值)、OutOfMemoryError(没有申请到足够的内存)

3.     Java堆(Java Heap)

a)      JVM启动的时候被创建,供各个线程共享

b)      存储:类实例、数组对象。

c)      有自动内存管理系统(automatic storage managerment system),也就是garbagecollector(垃圾收集器)

d)      可能异常:OutOfMemoryError(所需的堆超过自动内存管理系统能提供的最磊容量)

4.     方法区(method area)

a)      JVM启动的时候被创建,供各个线程共享

b)      存储类的结构信息:运行时常量池、字段和方法数据、构造函数和普通方法的字节码内容、(类、实例、接口初始化时的)特殊方法。

c)      有异常:OutOfMemoryError(方法区空间不能满足内存分配请求)

5.     运行时常量池(runtime constant pool)

a)      在方法区中分配空间,会在加载类和接口到虚拟机时创建

b)      是class文件中每一个类或接口的常量池表(constant_pooltable)的运行时表示形式

c)      存储:编译期可知的数值字面量、运行期解析获得的方法或字段引用

d)      可能异常:OutOfMemoryError(创建类或接口时,需要构造此空间的容量超过了方法区能提供的最大值)

6.     本地方法栈(native method stack)

a)      每一个线程都有本地方法栈(如果JVM支持)

b)      是传统的栈,用来支持native方法

c)      可能异常:StackOverflowError(线程请求分配的栈容量超过允许的最大值)、OutOfMemoryError(没有申请到足够的内存)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老陈头7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值