基本数据类型
整数型: byte short int long
浮点型: float double
字符型: char
布尔型: boolean
注意事项:
1,字符串不是基本类型,而是引用类型。
2,浮点型类型可能是一个近似值,并非精确的值。
3,数据范围与字节数不一定相关,例如float数据范围更广泛,但是float是4字节,long是8字节。
4,浮点数当中默认类型是double。如果一点更要使用float类型,需要加上一个后缀F。
如果是整数,默认为int类型,如果一定要使用long类型,需要加上一个后缀L。推荐使用大写字母后缀
练习一:
public class Domo03 {
public static void main(String[] args) {
//创建一个变量
//格式:数据类型 变量名称
int sum;
//给变量存放数据
//格式: 变量名 =存放的数据
sum=23;
//当打印输出变量时,显示的是变量的内容
System.out.println(sum);
//改变变量中的数据,存放新的数据
sum=12;
System.out.println(sum);
//一步到位的格式格式
//格式:数据类型 变量名=数据值;
int z=35;
System.out.println("int类型:"+z);
System.out.println("=".repeat(25));//分割线
byte a=120;//注意右侧数据大小不要超过左侧数据类型的取值范围byte(127,-128)
System.out.println("byte:"+a);
//byte b=128;//错误!超出byte的取值范围
short C=356;
System.out.println("shout类型:"+C);
long d=2344404237896687667L;//
System.out.println("long类型:"+d);
float e= 23.40F;
System.out.println("float类型:"+e);
double f=134455.97897;
System.out.println("double类型:"+e);
char g='a';
System.out.println("char类型:"+g);
//将一个变量的内容交给另一个变量或将一个数值存放到另一个变量中称为赋值
//格式 变量 =变量\数值
//注当两个变量之间进行赋值时数据类型必须相等
char s=g;//右边的的变量赋值给左边 所以s='a'
System.out.println("char类型:"+s);
boolean aa=true;
System.out.println(aa);
}
}
运行结果:
数据类型转换
定义:当数据类型不一样时,要进行数据类型转换。
自动类型转换(隐式的)
1,特点:代码不需要进行特殊转换,自动完成。
2,规则:数据范围小的可以自动转换为数据类型大的
强制类型转换(显示的)
1,特点:代码需要进行特殊的处理,不能自动完成
2,格式:数据值范围小的类型 变量名 =(数据值范围小的类型 )原本数据值范围大的数据;
示例一:
public class Domo01 {
public static void main(String[] args) {
int ss=88;
double b;
b=ss;//b 与ss数据类型不一样,所以发生了数据类型转换
byte a;
a=24;//因为整数默认为int类型,而a被声明时是bate类型所以24赋值给a的过程发生自动了类形状换
//byte a=24;这个过程发生了自动类型转换,同理,short c=245;这个过程也发生了自动类型转换
short c=35;
ss=c;//c与ss数据类型不一样,且short类型c数值范围小于 int类型ss的范围,所以发生了自动类型转换
// float a=134.235;//错误写法!因为小数默认类型是dounle类型,所以数值末尾要+F声明为float类型
float aa=23.142F;
double zz;
zz=aa;//同样float值的范围有小于double值的范围,发生了了自动类型转换
//左边int类型,右边long类型,类型不一样
//long--> int ,不是从小到大,不能发生自动数据类型转换
//那么只能强制类型转换
//格式:数据值范围小的类型 变量名 =(数据值范围小的类型 )原本数据值范围大的数据
//int sum=1233414l;//错误写法,类型不一样,且无法发生自动类型转换
int sum=(int) 12313143L;//强制类型转换
System.out.println(sum);
//float g=978137878.412747;
float g1=(float) 223182984189.78;//小数类型默认double所以要发生强转
//也可以这样写
float g=17387474918.8687f;//所以g=17387474918.8687f 这个过程发生了强转
//那么可以认为声明一个float变量在给其赋值的的过程,也可以看作发生强制类型转换的过程
// 同理
double s=3144.45d;//发生了强制类型转换,
// 即:s=3144.5d<==>s=(dounle)3144.5,
//也即为: 5.0d 是 (double)5.0的简写
}
}