作用:决定给变量分配多大的空间
目的:定义变量
基本数据类型:整数型 浮点型 布尔型 字符型
引用数据类型:类 接口 数组 ......
所有引用数据类型,默认值是:null
整数型
字面量的四种表现形式:十进制 二进制 八进制 十六进制
public class sbian
{
public static void main(String[] srgs){
int a=10;
int b=0b10;
int c=010;
int d=0x10;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(a+b+c+d);
}
}
运行结果:
Java中任何一个“整数型字面量”都会默认当成int类型来处理
Java中运行小容量的数据直接赋值给大容量的变量,即自动转换
byte<short<int<long<float<double
如果在整数型字面量后面添加L或者l,那么这个字面量会被当作long类型来处理
强制类型转换:大容量无法直接转换成小容量。因为可能导致精度损失,所以由程序员自己决定。
错误展示:
public class sbian
{
public static void main(String[] srgs){
long x=1000L;
int y=x;
}
}
手动添加强制类型转换符,可能会造成损失,看具体数据
public class sbian
{
public static void main(String[] srgs){
long x=1000L;
int y=(int)x;
}
}
多种数据类型在混合运算时,先各自转换为容量最大的,再做运算。
byte+byte-->int byte+short-->int short+short-->int
浮点型
包括两个类型:float,单精度,可以精确到7位小数;double(常用),双精度,可以精确到15位小数
浮点型的字面量默认当作double类型处理,如果要当作float处理,字面量后面添加F/f。float a=3.12F,或者使用强制转换,float a=(float)3.12
两种表示形式,十进制和科学计数法
一旦有浮点型参与运算得出的结果,一定不要使用“==”与其他数字进行相等比较,因为计算机底层存储的都是它的近似值
字符型
char类型是字符型,占用2个字节,与short都是2个字节,可以表示的数量是一样的char可以占据更大的正整数。
Java中char类型的字面量必须用单引号括起来,采用统一的字符编码形式:Unicode,char类型可以存储一个汉字
char类型的默认值:u0000,可以理解为空字符
转义字符:
\t:表示制表符,相当于按下tab键
\n:表示换行符
\":表示双引号" System.out.println("\"")输出一个 "
\':表示单引号‘
\\:表示反斜线\ System.out.println("\")输出一个 \
字符编码:
是认为规定的文字与二进制之间的转换关系
早期,字符编码主要采用的是ASCLL编码,采用一个字节编码。最多可以表示256个字符(实际上ascll编码只用了128个)
需要记住的:a 对应 97(b是98,以此类推) A 对应 65(B是66) 0 对应 48(1是49)
0110 0001 ===按照ascll编码====>'a'
Java采用的是Unicode编码
当整数型字面量没有超出byte、short、char的范围,可以直接赋值给byte、short、char类型的变量,会被当做ascll码处理
即char三种定义方式:char c1='A' char c2='\u0041' char c3= 97
char参与的运算
System.out.println('a'+1); 结果:b (byte、short、char混合运算先转为int)
布尔型(boolean)
Java中,boolean只有false和true两个值,没有1和0的说法
主要运用于:逻辑判断,条件判断.......
public class sbian
{
public static void main(String[] srgs){
boolean apple=true;
boolean bana=false;
if(apple){
System.out.println("app");
}else
{ System.out.println("ban");
}
}
}
运行结果: