本帖最后由 Reason__v 于 2018-8-29 14:27 编辑
JVM 数据类型:
Java是静态类型的,它会影响字节码指令的设计,这样指令就会期望自己对特定类型的值进行操作。例如,就会有好几个add指令用于两个数字相加:iadd、ladd、fadd、dadd。他们期望类型的操作数分别是int、long、float和double。大多数字节码都有这样的特性,它具有不同形式的相同功能,这取决于操作数类型。
JVM定义的数据类型包括:
基本类型:
数值类型: byte, short , int , long, char , float,double,布尔类型
指针类型: 指令指针。
引用类型:类,数组,接口
在字节码中布尔类型的支持是受限的。举例来说,没有结构能直接操作布尔值。布尔值被替换转换成 int 是通过编译器来进行的,并且最终还是被转换成 int 结构。
内存:
栈:
堆:所有线程共享的内存和存储对象(类实例和数组)。对象回收是由垃圾收集器管理的。
方法区:对于每个已加载的类,它储存方法的代码和一个符号表(例如对字段或方法的引用)和常量池。
|