目录
数据类型分为基本数据类型和引用数据类型(引用数据类型后面数组的文章会讲)
基本数据类型有4类、8种。

注意:Java数据类型是不分计算器是32位还是64位的,所以不论是32位还是64位都是上图中的字节数。
请把 Java yyds 打在公屏上。
变量是用不同数据类型定义出来的
- public class HardStudy {
- public static void main(String[] args) {
- int a = 10;
- System.out.println(a);
- }
- }
代码结果:

- public static void main(String[] args) {
- int a = 10;
- System.out.println(Integer.MAX_VALUE);
- }
代码结果:

注意:在Java中所定义的变量如果没有初始化,那么编译不能通过。
代码报错

再使用前一定要初始化,否则无法使用,从这里可以看出Java很安全。
请再次把 Java yyds 打在公屏上
注意事项:
整形的最大值是 2147483647,但是如果赋值是超过了这最大值会怎么样呢?


可以看到代码报错,并且输出后提升了哪里错了。
Java 是世界最好的语言!!!
- public static void main(String[] args) {
- long a = 100L;//大写L表示这是一个长整型变量
- System.out.println(a);
- }
代码结果:

如果写的是一个小写的l,也不会报错,只不过会被解析成整型。
- public static void main(String[] args) {
- long a = 10L;
- System.out.println(Long.MAX_VALUE);//输出长整型的最大值
- System.out.println(Long.MIN_VALUE);//输出长整型的最小值
- }
代码结果:

注意事项:
- public static void main(String[] args) {
- short sh = 100;
- System.out.println(sh);
- System.out.println(Short.MAX_VALUE);//short最大值
- System.out.println(Short.MIN_VALUE);//short最小值
- }
代码结果:

注意事项:
- public static void main(String[] args) {
- byte yyds = 100;
- System.out.println(yyds);
- System.out.println(Byte.MAX_VALUE);//最大值
- System.out.println(Byte.MIN_VALUE);//最小值
- }
代码结果:

注意事项:

如果按照上面的写法的话,123.123会被认为是一个双精度浮点型。而一个 float 是4个字节,double类型是8个字节,存不下,所以报错。
正确写法是强制类型转换成 float 或者在123.123后面加一个f。(大写或者小写的都可以)
- public static void main(String[] args) {
- float b = 123.123f;
- float c = (float)12.00;
- }
- public static void main(String[] args) {
- double yyds = 123.123;
- System.out.println(yyds);
- System.out.println(Double.MAX_VALUE);//最大值
- System.out.println(Double.MIN_VALUE);//最小值
- }
代码结果:

注意事项:
- public static void main(String[] args) {
- char a = 'Y';
- System.out.println(a);
- char b = '李';
- System.out.println(b);
- char c = 99;
- System.out.println(c);
- char d = 67;
- System.out.println(d);
- }
代码结果:

在Java中使用的是Unicode字符集,这和C语言的ASCII是一样的。99表示小写c,67表示大写C,所以会输出小写的 c 和大写 C 。
一个汉字占两个字节,所以可以输出。
注意事项:
在 Java 中没有所谓的0为假,非0为真;而是真只能是true,假只能是flase。

可以看到编译器提示错误。
- public static void main(String[] args) {
- boolean a = true;
- System.out.println(a);
- boolean b = false;
- System.out.println(b);
- }
代码结果:

注意事项:
- public static void main(String[] args) {
- String arr1 = "Hello";
- String arr2 = "World";
- System.out.println(arr1 + arr2);//arr1+arr2是拼接的意思
- }
代码结果:

在有些情况下,需要将字符串和整型数字之间进行转换。
- public static void main(String[] args) {
- int x = 10;
- int y = 20;
- System.out.println("x: "+x +" y:"+y);
- System.out.println("x: "+x+y);
- System.out.println(x+y+"lilong");
- System.out.println(x + y);
- }
代码结果:

当字符串和整数在一起使用+号的时候,就是个拼接的意思。
int转String
把一个整数变成字符串
- public static void main(String[] args) {
- int i = 100;
- String str = i+"";
- System.out.println(str);
- }
代码结果:

String转int
把一个字符串变成整数
- public static void main(String[] args) {
- String str = "123456";
- int i = Integer.parseInt(str);
- System.out.println(i+1);
- }
代码结果:


int 是4个字节,long是8个字节;空间不够,无法赋值给num。
正确写法:
- public static void main(String[] args) {
- int num = 1;
- long len = 2L;
- num = (int)len;
- System.out.println(num);
- int x = 10;
- long y = 20L;
- y = x;
- System.out.println(y);
- }
可以强制类型转换或者是将小字节数的赋给大字节数的。
代码结果:

自动类型转换的特点是,数据范围小的转为数据范围大的是会自动进行。
例子:
- public static void main(String[] args) {
- int num = 100;
- long sum = 200L;
- sum = num;
- System.out.println(sum);
- }
代码结果:

编译器会自动将int转化成long输出。
- public static void main(String[] args) {
- int Eat = 100;
- long Sleep = 200L;
- Eat = (int)Sleep;
- System.out.println(Eat);
- }
代码结果:

将范围小的转为范围大的是必须要强制类型转化,不然会报错。
注意事项:
不同类型的数据之间相互运算时,数据小的类型会被提升到大的。

Code会被提升成long类型,计算的结果也是long类型,int只有4个字节,存不下所以会报错。
正确写法1:
- public static void main(String[] args) {
- int Code = 100;
- long Play = 200;
- int Good = (int)(Code + Play);
- System.out.println(Good);
- }
正确写法2:
- public static void main(String[] args) {
- int Code = 100;
- long Play = 200;
- long Good = Code + Play;
- System.out.println(Good);
- }
代码结果:

byte类型该如何提升?

可以看到编译器报错。
正确写法:
- public static void main(String[] args) {
- byte num = 10;
- byte len = 20;
- int sum = num + len;
- System.out.println(sum);
- }
代码结果:

类型提升小结: