Java复习知识点三
Java数据类型、与数据类型转换
一、Java数据类型
1、八大基本数据类型
数据类型 | 占用字节大小 |
---|---|
byte (字节类型) | 1 |
short (短整型) | 2 |
int (整型) | 4 |
long (长整型) | 8 |
float (单精度浮点数) | 4 |
double (双精度浮点数) | 8 |
char (字符型) | 2 |
boolean (布尔类型) | 1 |
2、引用数据类型
类(class) | 接口(interface) | 数组 [ ] |
---|
3、整型使用细节
Java的整型常量默认为int,声明long型常量需在后边加 l 或 L
4、浮点数使用细节
Java的浮点型常量默认为double类型,声明float型常量时,需在后加 ‘ f ‘ 或 ’ F ‘。
当我们对运算结果是小数的进行判断时,要小心
public class Test2 {
public static void main (String[] args){
double number1 = 2.7;
double number2 = 8.1 / 3;
System.out.println(number1);
System.out.println(number2);//接近2.7
}
}
D:\SublimeTestCode>javac Test2.java
D:\SublimeTestCode>java Test2
2.7
2.6999999999999997
5、字符型使用细节
Java中,char的本质是一个整数,在输出时是Unicode编码中对应的字符
6、boolean类型使用细节
boolean类型数据只允许取值 true和false,无null
二、数据类型转换
1、自动类型转换
会有按照下面两条线路进行转换
- char --> int --> long --> float --> double
- byte --> short --> int --> long -->folat --> double
注意:
- 有多种数据类型混合运算时,会自动将所有数据转换成容量最大的那种数据类型,然后进行运算
- 精度大的赋值给精度小的数据类型时,就会报错
- (byte,short)和 char之间不会自动转换
- byte,short, char他们三者可以计算,在计算时首先转换为int类型(同类型也是)。
- boolean不参与自动类型 转换
2、强制类型转换
将容量大的数据类型转换为容量小的数据类型,使用时加上强制转换符()
举例:
int n2 = 2;
byte b1 = (byte)n2;
System.out.println("b1=" + b1);
//输出 b1=2
类型转换中的两个问题
-
造成精度损失
int n1 = (int)1.9; System.out.println("n1=" + n1);//造成精度损失 //输出n1=1
-
造成数据溢出
int n2 = 2000; byte b1 = (byte)n2; System.out.println("b1=" + b1); //输出 b1=-48
转换中的细节
-
强转符号只针对最近的操作数有效,往往使用小括号提升优先级
int x = (int)10*3.5+6*1.5;//错误 int x = (int)(10*3.5+6*1.5);//正确
-
char类型可以保存int的常量值,但不能保存int的变量值,需要强转
char c1 = 100;//ok int m = 100; //ok char c2 = m;//错误 char c3 = (char)m;//ok System.out.println(c3);//
-
byte,short, char他们三者可以计算,在计算时首先转换为int类型(同类型也是)。
3、基本数据类型转String类型
-
将基本类型的值+“ ” 即可
int n1 = 100; String s1 = n1 + " ";
4、String类型转基本数据类型
-
使用基本数据类型对应的包装类,的相应方法得到基本数据类型
String s2 = "123"; int n2 = Integer.parseInt(s2); double n2 = Double.parseInt(s2); //除了char类型外,其它类型同理
-
String类型转换char类型
-
可以理解为将字符串的第一个字符得到,使用charAt(0)方法
String s3 = "123"; System.out.println(s3.charAt(0));
-
5、注意事项
- 在将String类型转成基本数据类型时,要确保String类型能够转成有效的数据,比如我们可以把"123”,转成一个整数,但是不能把"hello”转成一个整数
- 如果格式不正确,就会抛出异常,程序就会终止,这个问题在异常处理章节中,会处理