重点:Java数据类型
- Java数据类型:
(1)基本数据类型;
数据类型 大小 默认值
byte(字节) 8 0
shot(短整型) 16 0
int(整型) 32 0
long(长整型) 64 0
float(浮点型) 32 0.0f
double(双精度) 64 0.0d
char(字符型) 16 ‘\u0000 ’
boolean(布尔型) 1 false
- 基本数据类型间的转换—–赋值
package cxcf;
public class day1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
byte b = 18;
char ch = 'a';
char ch2 = '男';
short sh = 20;
int a = 10;
long l = 15L;
float f = 12.5f;
double d = 12.45d;
boolean bl = false;
}
}
}
- 自动转换:1、容量小的类型自动转换成容量大的数据类型,数据类型按照容量大小排序是 byte,short,char–>int–>long–>float–>double; 注意这里是容量大小不是所占字节数
例如(请参考赋值代码看此例):
int i1=b;
double i2=f;
- 强制转换:容量大的数据类型转换成容量小的数据类型时,要加上强制转换符;
例如(请参考赋值代码看此例):
byte i3=(byte)a;
float i4=(float)d;
- 注意:1、boolean类型不能与其他类型进行转化;
2、byte转化为short或char时,它们之间属于同级,不能进行自动转化,要加强制符,因为内部转化过成是byte–>int–>short(char),int容量大于short(char),所以需要强转;
3、byte b1=127; //(程序不报错)
byte b2=128;//(程序报错)//超过byte范围
byte b3=(byte)128;//(程序不报错)
解释:因为溢出了,byte保存范围是:[-128,+127]
128二进制是:1000 0000
首位1被解释成符号位,就是负数
取补码为-1000 0000
此数是十进制的-128
4、byte b4=10;
byte b5=10;
byte b6=b3+b4;//程序报错
byte b7=(b3+b4);//程序报错
byte b8=(byte)(b3+b4);//程序不报错
(2)引用类型;
最简答来说除了8中基本类型以外剩下的都是引用类型:例String、array……
Java为每个原始类型提供了封装类。
原始类型封装类
boolean –>Boolean
char —>Character
byte –>Byte
short –>Short
int –>Integer
long –>Long
float –>Float
double –>Double
因为封装类型是对象,所以可以进行相应的很多对象能力函数操作,这样就可以提供很多基本类型难以完成的工作的完成和实现。
你可以通过以下方式来声明该类型。
(1)装箱:值类型–>引用类型
Integer h=10;//整型10-->Integer 装箱
Integer h2=(Integer)10;//显式装箱
(2)拆箱:引用类型–>值类型
int h3=h;//拆箱
int h4=(int)h;//显式拆箱