1-3 数据类型
Java 语言是一种强类型语言。通俗点说就是,在 Java 中存储的数据都是有类型的,而且必须在编译时就确定其类型。 Java 中有两类数据类型:
在 Java 的领域里,基本数据类型变量存的是数据本身,而引用类型变量存的是保存数据的空间地址。说白了,基本数据类型变量里存储的是直接放在抽屉里的东西,而引用数据类型变量里存储的是这个抽屉的钥匙,钥匙和抽屉一一对应。
常用的基本数据类型有:
你可能已经注意到了:
注:关于 float 型和 double 型的区别,以及 char 型和 String 型的不同,在 wiki 中有相关的总结,小伙伴们可以去查看哦~~
String 是一种常见的引用数据类型,用来表示字符串。在程序开发中,很多操作都要使用字符串来完成,例如系统中的用户名、密码、电子邮箱等。
例:
public class HelloWorld{
public static void main(String[] args) {
String name="heming";
char sex='MALE';
int num=100;
double price=120.5;
boolean isOK=true;
System.out.println(name);
System.out.println(sex);
System.out.println(num);
System.out.println(price);
System.out.println(isOK);
}
}
1-4 数据类型转换
自动类型转换
在 Java 程序中,不同的基本数据类型的数据之间经常需要进行相互转换。例如:
int score1=99;
double score2=score1;
System.out.println(score2);
代码中 int 型变量 score1 可以直接为 double 型变量 score2 完成赋值操作,运行结果为: 99.0
这种转换称为自动类型转换。
当然自动类型转换是需要满足特定的条件的:
目标类型能与源类型兼容,如 double 型兼容 int 型,但是 char 型不能兼容 int 型
目标类型大于源类型,如 double 类型长度为 8 字节, int 类型为 4 字节,因此 double 类型的变量里直接可以存放 int 类型的数据,但反过来就不可以了
强制类型转换
相信小伙伴们也发现了,尽管自动类型转换是很方便的,但并不能满足所有的编程需要。
例如,当程序中需要将 double 型变量的值赋给一个 int 型变量,该如何实现呢?
显然,这种转换是不会自动进行的!因为 int 型的存储范围比 double 型的小。此时就需要通过强制类型转换来实现了。
语法:( 数据类型 ) 数值
double score1=99.9;
int score2=(int)score1;
System.out.println(score1);
System.out.println(score2);
//运行结果:
//99.9
//99
可以看到,通过强制类型转换将 99.9 赋值给 int 型变量后,结果为 99,数值上并未进行四舍五入,而是直接将小数位截断。
明白了吧,强制类型转换可能会造成数据的丢失,在实际应用时一定要慎重!