Java数据类型及分析

一、java数据类型

1.基本数据类型(8种);2.引用数据类型(3种)
基本的变量类型只有一块存储空间(分配在stack中),而引用类型有两块存储空间(一块在stack中,一块在heap中)。Java数据类型及分析
  注意:java规范中没有明确指出boolean类型占几个字节,但有以下几种说法:
(1)1bit
  理由:Boolean类型的值只分为false和true,编译后会使用0和1来表示,这两个值在内存只需一位(bit)来存储,即1bit。
(2)1字节
  理由:计算机处理数据的最小单位是1字节, 因此Boolean类型用1个字节的最低位存储1或0,其他7位用0填补,
  即true为:0000 0001;false为0000 0000.
(3)4字节
  理由:在《Java虚拟机规范》一书中的描述:“虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持。在       Java  虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达式所操作的boolean值,在编译之后都使用Java虚拟机中 的int数据类型来代替,而boolean数组将会被编码成Java虚拟机的byte数组,每个元素boolean元素占8位”。也就是说JVM规范指出boolean当做int处理,也就是4字节,boolean数组当做byte数组处理,这样我们可以得出boolean类型占了单独使用是4个字节,在数组中是确定的1个字节。         

总结:java规范中,没有明确指出boolean的大小。在《Java虚拟机规范》给出了4个字节,和boolean数组1个字节的定义,具体还要看虚拟机实现是否按照规范来,所以1个字节、4个字节都是有可能的。

二、数据类型的包装类

数据类型 封装类
boolean(布尔型) Boolean
byte(字节型) Byte
char(字符型) Character
short(短整型) Short
int(整型) Integer
long(长整型) Long
float(浮点型) Float
double(双精度浮点型) Double

封装类为各个数据类型提供一些数据的操作方法,可以直接使用;

例如String跟int的互相转化:

 int i = Integer.parseInt("13");
 
nt ii = Integer.valueOf("12");

String s1
= String.valueOf(123);
 String s2
= Integer.toString(i);
 String s3
= "" + i;