Java是一种强类型语言,也就是说必须为每一个变量声明一种类型。
1.数据类型分类:
基本数据类型的保存范围:
Boolean:默认值为:false ;数据范围为:(true/false)
byte:默认值为:0 ;数据范围为:[-128~127] 占内存为:1个字节
short:默认值为:0;数据范围为:[-2^15 ~ 2^15 -1];占内存:2个字节
char:默认值为:‘、u0000’;数据范围为:[0~2^16-1];占内存:2个字节
int:默认值为:0;数据范围为:[-2^31 ~2^31-1];占内存:4个字节
float:默认值为:0.0F或0.0f;数据范围为:[32位IEEEE754单精度范围];占内存:4个字节
double:默认值为:0.0或0.0D;数据范围为:[64位IEEE754双精度范围];占内存:8个字节
long:默认值为:0L或0l;数据范围为[-2^63~ 2^63-1];占内存8个字节;
1.1 整型
在Java中,任何一个整型常量都是int型。
eg:
int num = 10;
System.out.printin(num * 2);
数据溢出问题:值得是已经达到了整型的最大或最小值继续进行运算而可能产生的错误数据问题;
int型也会存在数据溢出问题,此时必须更换数据类型
转换规则:
1.在数学计算时,范围小的数据类型可以自动转为数据范围大的数据类型。
2.数据范围大的数据类型只有同过强制转换才能转为数据范围小的数据类型。(强转有时会丢失内容,即精度丢失)
eg:
byte data = (byte)300;
这个代码最后输出的是44;也就是精度的丢失。
数据默认值:
各个数据类型默认值的使用,需要结合类时才能使用。
方法中的局部变量不存在默认值,必须先赋值后使用。
1.2 浮点型
描述小数默认为double型。(double可以保存的数字是最大的)
eg:
double num = 10.2;
System. out.printlb (num * 2);
float 的保存范围小于double,如果使用float,必须强制类型转换,在小数后面加上“F”或者“f”;
eg:
float f1= 1.1F;
再看一段神奇的代码:
int numA = 10;
int numB = 4;
// int /int 还是int 型
System.out.println( numA / numB );
//此时想要计算准确,就必须将其中一个变为double类型
System.out.println(numA / ( double )num B);
1.3字符型
字符型使用char来表示,并且使用’ '来表示字符变量内容,且可以与int 相互转换(需要强转)。
注意:字符型数字(‘0’~‘9’)与 int数字(0~9)不同。
小tip:if(‘0’==0)一定是false。
eg:实现大写字母变为小写字母(差32个长度)
char c = 'A';
int num = c + 32;
char x = ( char ) num;
System.out.println(x);
大写字母:(A~Z):65 ~ 90
小写字母:(a ~ z):97 ~ 122
1.4 String 类
String描述的是字符串,但是String并不是基本数据类型,而是一个引用数据类型。
eg:
String num1 = "hello";
String num2 = "java";
String可以使用“+”表示字符串的连接。
eg:
int numA = 10;
int numB = 20;
String result = "计算结果:"+ numA + numB;
System.out.printlen(result);
改代码块中,“+”表示的不是数学运算,而是字符连接。
要想得到正确的运算结果,必须使用()来解决问题。
String result = "计算结果:"+(numA + numB);
常用的转义字符:
换行:\n
双引号:"
单引号:’