前言
本文主要讲解:
- 掌握各种数据类型
- 变量作用域及命名和常量
- 类型转换及数值提升
Java类型汇总
整型变量-int\长整型变量-long\短整形变量-short
- 基本语法格式:
int 变量名 = 初始值; long 变量名 = 初始值; short 变量名 = 初始值;
- 包装类:Integer(依旧是整形); Long ; Short
- 示例:
int num = 10; // 定义一个整型变量 System.out.println(num); long num = 10L; // 定义一个长整型变量, 初始值写作 10l 也可以(小写的 L, 不是数字1). System.out.println(num); short value = 0; System.out.println(value);
注:Java 是强类型语言,10 默认是 int 型,不加 L 则等号左右类型不匹配
- 整型数据范围:
int 类型占4字节,数据范围是 -2^31 ~ 2^31-1
- 如何查看:
System.out.println(Integer.MAX_VALUE); // int 的最大值 2147483648 System.out.println(Integer.MIN_VALUE); // int 的最小值-2147483648
- 长整形数据范围:
long 类型占8 个字节. 表示的数据范围 -2^63 -> 2^63-1
- 如何查看:
System.out.println(Long.MAX_VALUE);\\ 9223372036854775807 System.out.println(Long.MIN_VALUE);\\-9223372036854775807
- 短整形数据范围:
short 占用2 个字节, 表示的数据范围是 -32768 -> +32767
- 如何查看:
1. System.out.println(Short.MAX_VALUE); 2. System.out.println(Short.MIN_VALUE);
- 注意:
当运算的结果超出了相应类型的范围, 就会出现溢出的情况(参考上文圆形范围图)
- 以int类型为例:
1. System.out.println(Integer.MAX_VALUE+1);// 结果为-2147483648 2. System.out.println(Integer.MIN_VALUE-1);// 结果为 2147483648
特别注意:
变量定义时一定要初始化,否则编译不通过(java语言安全性高)
变量大小与平台位数无关(java语言可移植性高)
浮点型变量-double\float
- 基本语法格:
1. double 变量名 = 初始值; 2. float 变量名 = 初始值;
- 示例:
double num = 1.0; System.out.println(num) float num = 1.0f; // 写作 1.0F 也可以 System.out.println(num);
注:Java 是强类型语言,1.0 默认是 double 型,不加 f 则等号左右类型不匹配
- 输出:
如果想规定输出小数点多少位时使用 printf
System.out.printf("%.nlf",num);\\n表示想要输出小数点后几位
注意:
- Java 中的 double 占 8 个字节;float 占四个字节
- 当整型相除得到的是整型,如果需要得到小数点需要double类型运算
- 浮点数的存储与整型存储不同,java浮点数的存储参考C语言(遵守IEEE754标准)
字符类型变量-char
- 基本格式:
char 变量名 = 初始值;
- 示例:
char ch1 = 'A'; char ch2 = '呵'; System.out.println(ch);
注:Java 中使用 单引号 + 单个字母 的形式表示字符字面值
- 字符类型数据范围:
java中 char 类型占两个字节(表示的字符种类更多, 包括中文)
System.out.println(Character.MAX_VALUE); // char 的最大值'\uFFFF' System.out.println(Character.MIN_VALUE); // char 的最小值'\u0000'
注:计算机中字符本质为整数:C语言中使用ASCII表示字符, Java中使用Unicode表示字符
- 注意:
当有编码有中文时需要在编译执行 javac 时加上 -encoding UTF-8 (否则会编译错误)
字节类型变-byte
- 基本语法格式:
byte 变量名 = 初始值;
- 示例:
byte value = 0; System.out.println(value);
注:字节类型表示的也是整数,只占一个字节, 表示范围较小 ( -128 -> 127 )(与char不同)
当字节等小于4个字节的类型运算时会发生整型提升