java数据类型分为基本数据类型和引用数据类型,这里我们暂时只写基本数据类型。
数据类型:
1.整数型; byte shout int long
2.浮点型; flaot double
3.字符型; char
4.布尔型; boolean
共上八种,为基本数据类型
java中没有无符号整型这些叫法,可以认为都是有符号的。
2.变量
2.1变量概念
跟c语言差不多,而数据类型就是用来定义不同种类变量的
2.2语法格式
定义变量的语法格式为:
数据类型 变量名=初始值;
例如:int a=10;
boolean b=true;
那么如何打印变量值呢?直接在打印函数里面放入变量就行,也不需要占位符(比c简便)。如下图:
final a=0;
在java中,被final 修饰的变量就变成常量了,如上,a里面只能存0,不能存别的值。所以此时a就变成了常量
此外,在java中,int 除以int 的值仍然是int (会直接舍弃小数部分),如果想得到0.5,需要使用double类型计算。
2.3浮点型变量
注意事项:
1.double在任何系统下都占8个字节。
2.浮点数与整数在内存中的存储方式不同,不能单纯使用2的n次方的形式计算。
3.double的包装类型为Double。
2.4字符型变量
Java中的char 是两个字节,可以存储汉字。
char ch2='范';
2.5布尔类型变量
也是 比c语言简便,不需要导入什么头文件,直接写:
boolean f=true;
运行出来就是这样:
布尔类型的包装类型为Boolean。
注意:java中不支持1为真,0为假,
2.6自动类型转换(隐形)
自动类型转换即:代码不需要经过任何处理,在代码编译时,编译器会自动进行处理。
特点:数据范围小的转为数据范围大的会自动进行。
int a=10;
long b=10l;
b=a;//a的范围小,b的范围大,
//当将a赋给b时,编译器会自动将a提升为
//long类型,然后赋值。
//反过来
a=b;//就不行,因为b的范围大,
//将它赋给范围小的会有数据丢失,不安全。
2.8强制类型转换(显式)
强制类型转换:
2.9类型提升
含义:不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的。
1.int 与long之间:int 会被提升为long.
2.byte与byte之间:
byte a=10;
byte b=20;
byte c=(byte)(a+b);
类型提升小结:
1.不同类型的数据混合运算,范围小的会提升成范围大的。
2.对于short,byte这种比4个字节小的类型,会先提升成4个字节的int,再运算。
3.字符串类型
在java中使用string类定义字符串类型,比如:
甚至在java中字符串还能相加(其实也不叫相加吧,叫拼接 )
如上代码中 + 表示的是 拼接 。