名称 | 说明 | 占用字节 | 位数 | 取值范围 | 默认值 | 封装类 |
---|---|---|---|---|---|---|
boolean | 数据类型表示一位的信息, 这种类型只作为一种标志来记录true/false情况。 |
1/8 | 1 | true和false | false | Boolean |
char | 单一的16位Unicode字符;用 ‘’表示一个字符 java 内部使用Unicode字符集,可以当整数来用,它的每一个字符都对应一个数字。 | 2 | 16 | ’\u0000’(即为0)至’\uffff’(即为65,535); | '\u0000'(空) |
Character |
byte | byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一。 | 1 | 8 | -2^7 ~ 2^7-1 | 0 | Byte |
short | Short数据类型也可以像byte那样节省空间,一个short变量是int型变量所占空间的二分之一。 | 2 | 16 | -2^15 ~ 2^15 - 1 | 0 | Short |
int | 一般地整型变量默认为int类型。 | 4 | 32 | -2^31 ~ 2^31 - 1 | 0 | Integer |
long | 这种类型主要使用在需要比较大整数的系统上。 | 8 | 64 | -2^63 ~ 2^63 -1 | 0L | Long |
float | 数据类型是单精度,在储存大型浮点数组的时候可节省内存空间,浮点数不能用来表示精确的值,如货币。 | 4 | 32 | -2^128 ~ 2^128 | 0.0f | Float |
double | 数据类型是双精度,浮点数的默认类型为double类型,double类型同样不能表示精确的值,如货币。 | 8 | 64 | -2^1024 ~ 2^1024 | 0.0d | Double |
int i= 123;
Integer integer = new Integer(i);
byte b= 123;
Byte bb = new Byte(b);
short s = 123;
Short ss = new Short(s);
long l= 123;
Long ll = new Long(l);
float f = 123.0f;
Float ff = new Float(f);
double d = 123.0;
Double dd = new Double(d);
char c= 'c';
Character character = new Character(c);
Boolean bl = true;
Boolean b2 = new Boolean(bl);
自动装箱
就是可以把一个基本类型变量直接赋值给对应的包装类变量,或者赋值给Object变量(因为Object类是所有类的父类)
int i= 123;
Integer integer = i;//JDK1.5之前:new Integer(i);
//先把123456自动装箱为Integer类型,Object代表Integer
Object obj = 123456;
System.out.println(obj);//打印结果123456
自动拆箱
与自动装箱相反,允许直接把包装类对象直接赋值给一个对应的基本类型变量
//自动装箱
Integer integer = 1234;
//自动拆箱
int numb = integer;
System.out.println(numb);
int i= 123;
Object obj = i;
int ii= (Integer)obj;
System.out.println(ii);
引用类型
引用类型变量由类的构造函数创建,可以使用它们访问所引用的对象。这些变量在声明时被指定为一个特定的类型,比如Employee、Pubby等。变量一旦声明后,类型就不能被改变了。对象、数组都是引用数据类型。所有引用类型的默认值都是null。一个引用变量可以用来引用与任何与之兼容的类型。
例子:Animal animal = new Animal(“giraffe”)。
Java常量
常量就是一个固定值。它们不需要计算,直接代表相应的值。常量指不能改变的量。 在Java中用final标志,声明方式和变量类似:final double PI = 3.1415927。
虽然常量名也可以用小写,但为了便于识别,通常使用大写字母表示常量。字面量可以赋给任何内置类型的变量。例如:
byte a = 68;
char a = 'A';
byte、int、long、和short都可以用十进制、16进制以及8进制的方式来表示。
当使用常量的时候,前缀0表示8进制,而前缀0x代表16进制。例如:
int decimal = 100;
int octal = 0144;
int hexa = 0x64;