炎炎夏日。有时间记得去找房东拿空调遥控器。
java数据类型分类:
一、基本数类型和引用数据类型。
基本数据类型:整型(short,int,long),字符型(char),浮点型(float,double),布尔型(boolean):
四类八种基本数据类型:
其中字节与字符的关系:
1.位(bit) 数据存储的最小单位。每个二进制数字0或者1就是1个位;如 0000 0000 即8位 (8 bit);
2.字节(byte)8个位构成一个字节;即:1 byte (字节)= 8 bit(位);
3.字符(char) 一个字符占两个字节,如上图所示
tips:Java中的char是Unicode编码,Unicode编码占两个字节,也就是16位,足够存储一个汉字。
引用数据类型:类,数组,接口
二、java变量的定义。
java 变量的定义应包含 三个要素:数据类型 变量名 = 数据值;
如 int a = 10;
或 int a;
a=10;
注:long类型的建议在数据值后加L;如120L;
folat类型的建议在数据值后加F;如120F;
在同一大括号内{},变量名不可重复,
变量在使用前必须赋值;
三、Java数据类型转换
基本概念:在java程序中,参与计算的数据,必须保持数据类型一致,否则会生类型转换;
1、自动类型转换:将取值范围小的类型自动提升为取值范围大的类型
public class Hello{
public static void main(String[] args) {
int a = 1;
byte b = 2;
//将b自动提升为int类型参与运算,结果c为int类型
int c = a + b;
//如果定义为 byte c =a+b;则会报错,无法通过编译
System.out.println(c);
}
}
自动转换原理:byte占一个字节,int占四个字节,在参与int类型的运算时,byte会自动补充三个字节参与运算,所以结果为int类型;
再比如:int a=1; double b = 2L; double c = a+b; a会自动向取值范围大的double类型转换,再参与运算,结果为double类型。
Tips:转换规则:
byte、char、shrt--->int--->long--->(float)--->double
注:boolean不能与其他基本类型进行转换;
2、强制类型转换:将取值范围大的类型强制转换为取值范围小的类型(需要程序员自己操作);
强制类型转换定义格式:
数据类型 变量名=(数据类型)被转换数据值;
如:int a=(int)1.5; //直接double类型的数据强制转换为int类型,直接去掉小数点。得到的结果为1;
例子:
public static void main(String[] args) {
//short占两个字节
short s = 1;
/*
编译失败的原因:
s在和1做运算的时候,由于1是int类型,s会自动转换为int类型,则结果为int,
将int类型赋值给short类型,所以编译不通过
*/
//short s = s+1; //编译失败
//进行强制类型转换则编译通过:
s= (short)(s+1);
}
在上面的例子中,short s=1;s= (short)(s+1);如果写成short s+=1;也不会报错,原因是,在写成s+=1时,java内部已经帮我们进行了类型转换;
注:强制类型转换会造成精度下降,数据丢失等问题;