目录
在Java中数据类型主要分为两类:基本数据类型和引用数据类型。
只有基本数据类型才有包装类(Byte、Short、Integer、Long、Float、Double、Character、Boolean)
基本数据类型有四类八种:
- /**
- * 输出不同类型的最小取值范围和最大取值范围
- * 会用到包装类(此类型的plus版本)
- */
- public class TestDemo {
- public static void main(String[] args) {
- //byte ->Byte
- System.out.println(Byte.MIN_VALUE );
- System.out.println(Byte.MAX_VALUE);
- //short ->Short
- System.out.println(Short.MIN_VALUE );
- System.out.println(Short.MAX_VALUE);
- //int ->Integer
- System.out.println(Integer.MIN_VALUE );
- System.out.println(Integer.MAX_VALUE);
- //long ->Long
- System.out.println(Long.MIN_VALUE );
- System.out.println(Long.MAX_VALUE);
- //char ->Character
- System.out.println(Character.MIN_VALUE );
- System.out.println(Character.MAX_VALUE);
-
- }
-
- }
注意: 在Java中,
数据类型就是用来定义不同种类的变量的。
在给变量赋值时,所赋值不能超过变量的取值范围,负责会报错。
1. 在Java中,没有所谓的全局变量,局部变量在使用前一定要初始化,否则程序会报错。
2. 在定义int型变量时,所赋值不能超过int的范围,否则程序会报错
为了区分int和long类型,一般建议:long类型的变量赋值时末尾加上L或l,推荐L
为什么long类型的变量赋值时末尾要加上L呢?
加L不是必须的,但是最好加上。(这个可以和下面float必须加上 f 进行一个比较)
因为整型常量默认是int类型的,比如:将3赋给long类型的a时,3是int型,a是long型,小类型到大类型,会发生自动类型转换,所以加L不是必须的,加不加此程序都可以运行,程序不会报错。
那为什么最好要加上呢?
比如:我将2,147,483,648赋给long类型的a,long类型是可以放下这个值的,但是不加L,程序会认为2,147,483,648是一个int型的值,它超出了int类型值的范围,就会报错。加上L程序就可以运行。为了防止这种情况出现,最好加上L。
因为整型常量默认是int类型的,short类型的取值范围是(-32768 ~ 32767)
所以将(-32768 ~ 32767)此范围内的值赋给short类型的a时,大类型到小类型,在整型中,会发生截断,程序不报错。若赋值超过了此范围,就会报错。因为编译器不允许将一个超出此类型范围的字面值赋给此类型变量。这时强制类型转换成short就不会报错了,但此操作相当于强制截断,输出的也不是原来的数值了。
为什么float类型的变量赋值时末尾要加上f呢?
加 f/F 是必须的,不加程序就会报错。
因为浮点型常量默认是double类型的,比如:将3.14赋给float类型的a时,3.14是double型,a是float型,大类型转换为小类型,这是浮点型,不是整型,浮点型和整形在内存中的存储形式是不同的,不会发生截断,编译器直接会报错。要想不报错:末尾加上 f 或者强制类型转换
Java 作为一个强类型编程语言, 当不同类型之间的变量相互赋值的时候, 会有教严格的校验。
当进行操作时,代码需要经过一定的格式处理,不能自动完成。
1. 当大范围类型向小范围类型赋值时,会有数据丢失,编译器直接报错。
非要这么做的话,要进行强制类型转换, 但是可能会精度丢失
2. 强制类型转换不一定能成功,不相干的类型不能互相转换
代码不需要经过任何处理,在代码编译时,编译器会自动进行处理。
1. 当小范围类型向大范围类型赋值时,小范围类型的变量,会自动提升为大范围类型
2. 当大范围类型的在小范围类型取值范围内的常量给小范围类型的变量赋值时,也会发生自动类型换。大范围类型的常量,会转换为小范围类型。
将一个字面值常量进行赋值的时候, Java 会自动针对数字范围进行检查。可行就会进行自动类型转换(如上图),不可行就直接报错(如下图)
字符串类型属于引用数据类型
- Java当中的字符串不以 ‘\0’ 结尾
- 字符串类型+整型=字符串类型
- 当字符串和字符串或整数在一起使用+号的时候,+号就是拼接的意思 ,从左到右进行运算。
- String类型特别强大,比如在有些情况下,需要将字符串和整型进行转换:
- 1. int转成String
- 2. String 转成 int