Java数据类型划分
Java是一种强类型语言,所以这就意味着必须为每一个变量声明一种类型。
【总结】
- 整数就用int,描述小数用double。
- long一般用于描述日期、时间、内存或文件大小(字节)
- 如果要进行编码转换或者进行二进制流的操作,使用byte(-127~128)
- char一般在描述中文中会用到(基本忽略)
整形
在Java程序中,任何一个整形常量都是int型
int num = 10;//定义一个整形变量
System.out.printlin(num * 2);
但是在进行整型数据操作的过程之中也会存在数据溢出问题,指的是当已经达到了整型的最大最小值继续进行数学而可能产生的错误数据问题。例如下面这段代码:
int maxValue = Integer.MAX_VALUE;
int minValue = Integer.MIN_VALUE;
System.out.println(maxValue+1);
System.out.println(minValue-1);
很明显,这时候int就不够用了。int型既然存在数据溢出问题,解决方案只有一个:更换数据类型
使用long来解决数据溢出问题:
int maxValue = Integer.MAX_VALUE;
long num = maxValue+1L;
System.out.println(num);
大的数据类型转为小的类型,必须强转,但有时会丢失内容,比如下边这个例子
long num = 2147483648L;
int result = (int) num;
System.out.println(result);
- 数据范围小的数据类型可以在数学计算时自动变为数据范围大的数据类型
- 数据范围大的数据类型只有在强制类型转换时才能转化为数据类型小的数据类型
既然说到了整型数据,就不得不提到byte。byte类型保存的范围是:-128~127,下边声明一个byte变量:
// 10是int,int的范围大于byte范围,理论上要进行强转,可是这里没有强转,因为数据在byte内。
byte data = 10 ; // 10是int类型,在byte范围内
System.out.println(data) ;
同时需要注意的是,如果要将int变量赋值给byte类型,必须强转
int num = 20;
byte tmp = (byte)num;
System.out.println(tmp);
再来看看这段代码,它的输出是为什么呢?
int num = 300;
System.out.println(num);
byte tmp = (byte)num;
System.out.println(tmp);
浮点型
描述小数默认为double类型
double num = 10.2;// 这是一个小数
System.out.println(num * 2);//num是double类型,2是int类型
float保存范围小于double,如果要使用float,必须强制类型转换,在小数后加"F"或者"f"
float res = 1.2f;//定义一个float变量
System.out.println(res);
int型/int型还是int型,如果想要精确计算的话,需要把其中一个变成double型
int a = 10;
int b = 5;
System.out.println(a/b);
System.out.println(a/(double)b);
字符型
字符型使用char来表示,并且使用' '来表示字符变量内容,并且可以与int相互转换
char c = 'A';
int num = c;
System.out.println(c);
System.out.println(num);
- 大写字母(A~Z):65(A)~90(Z)
- 小写字母(a~z):97(a)~122(z)
- int型转为char型需要强制类型转换
实现大写字母转小写字母
char c = 'A';
int num = c + 32 ; // char+int=int ;
char x = (char) num ; // int转char需要强转
System.out.println(x) ;
注意:字符型数字('0'~'9')与int数字(0~9)不同
if('0'== 0)一定是false
Java中使用Unicode编码(一般其他语言采用ASC II编码),使用16进制编码,可以保存任何文字信息(包含中文),因此Java对字符的特性支持的比较好。
布尔型
布尔类型是表示逻辑状态的类型。java语言通过关键字boolean来定义布尔类型变量,只有true和false两个值,分别代表布尔逻辑中的“真”和“假”。Java语言虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持。布尔类型的声明如下:
boolean done =true;
boolean error = false;