数据类型:
基本数据类型、引用数据类型
堆空间 :运行数据区 运行分配内存 存取慢
栈空间 :存取快
方法区 :类型信息
常量池 :存储常量值
基本数据类型:(数值型、字符型、布尔型)
⑴数值型:
①整数类型(byte、short、int(整型常量默人类型)、long);
②浮点类型:(
float类型:单精度类型,在很多情况下,float类型的精度很难满足需求。
double类型:双精度类型,精度是float类型的两倍(浮点型默认为double类型,要变为float类型,须在后面加"F")
)
⑵字符类型:
char
eg:char ch:='A'; home='家'; handsome=‘酷’;
④字符串“ 我喜欢使用双引号\” "中含有双引号字符,但是如果写成“ 我喜欢使用双引号” ”,就是一个非法字符串。 ③有些字符(如回车符)不能通过键盘输入到字符串或程序中,这时就需要使用转义字符常量:eg:\n.(换行),\b(退格),\t(水平制表),\'(单引号),\\(反斜线)等。例如:char ch1='\n',ch2='\',ch3='\\';
⑤在JAVA中,可以用字符在UNICODE表中排序位置的十六进制转义(需要使用U做前缀 )来表示该字符,其一般格式为'\u*****';eg:'\u004'表示字符A,'\u006'表示字符a。
⑶逻辑类型(布尔类型);
①boolean类型有两个值:true和false
②boolean类型用来判断逻辑条件,一般用于程序流程控制。
实践:if(is==true&&done==false)
- 可以使用==、!=、>、<、>=、<=对基本数据类型的数值进行比较运算;
- 比较是否相等,比较是否不相等,大于,小于,大于等于,小于等于9x
注意:比较的是数值的二进制;
注:
- 每种数据类型在内存中占有不同的长度;
- 计算机存储设备的最小信息单元叫“位(bit)”,又称之为“比特位”;
- 连续的8个位成为1个“字节(byte)”;
- 操作系统分配内存最少1个字节,即8 个位,而不是1个位;
- 长度越长,所表示的范围就越大;
- 每种具体类型都有不同的默认值;
- 当没有为一个属性变量赋值时,会根据类型为其赋值为默认值;
- 注意:char的默认值是\u0000,等同于一个空字符;boolean的默认值是false
举例说明:
三:类型转换运算:
涉及范围:把一种基本数据类型变量的值赋给另一种基本类型变量时。
精度从低到高的数据排列:byte、short、char、int、long、float、double
转换规则:
1.当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型转换,称为隐士转换:例如:
int X=50;
float y;
y=X;
如果输出y的值,结果将 是50。
2.当把级别高的变量的值赋给级别低的变量时,必须使用类型转换运算,称为显示转换。格式为:(类型名)要转换的值。例如:
int x=(int)34.89;
long y=(long)56.98F;
int z=(int)1999L;
如果输出x y z的值,结果是34、56、1999。
报错:Type mismatch: cannot convert from int to byte
3.当把一个int型常量赋值给一个byte、short、char型变量时,不可超出这些变量的取值范围,否则必须进行类型转换运算。例如:常量128属于int类型常量,超出byte变量的取值范围,如果赋值给byte型变量,必须进行byte类型转换运算(将导致精度类型的损失),例如:
byte a=(byte)128;
byte b=(byte)(-129);
那么a、b输出的结果是-128和127。
4.将double型常量赋给float型变量时必须进行类型转换运算,例如:
float x=11.2F;
或float x=(float)11.2;
5、虽然类型之间可以进行强制的隐式转换,但是也需要有一定的前提;
- 数值类型和boolean类型之间就不能转换;强制也不可以;
报错:Cannot cast from boolean to int
总结:
1.右侧:所有变量先转换为字节数最多的数据类型,再计算。
2.两侧:左侧宽度>右侧宽度(自动转换)
左侧宽度<右侧宽度 (强制转换)
赋值:
- 用“=”可以为任何一种基本数据类型的变量赋值;
- Int number=20; 将20赋值给整型变量number
- 赋值时主要不要超过表示范围,否则将出现编译错误;
- The literal 17633520015 of type int is out of range
-
char类型使用’’引用单个字符赋值;也可以使用非负整数进行赋值;
-
•char c1='a'; •char c2=12; •char c3='ab';//编译错误 •char c4=12.8;//编译错误 •char c5=-199;//编译错误