03.基础语法(数据类型、常量)
三、数据类型
强类型语言,所有变量都必须先定义后再使用。
I. 基本数据类型
II. 引用数据类型
I. 通常大家说的四类八种基本数据类型:
1. 整型
byte 、short 、int 、long(4种)
2. 浮点型
float 、 double(2种)
3. 字符型
char(1种)
4. 布尔型
boolean(1种)
序号 | 数据类型 | 位数 | 默认值 | 取值范围 | 举例说明 |
---|---|---|---|---|---|
1 | byte(字节) | 8 | 0 | -2^7(-128) ~ 2^7-1(127) | byte b = 100; |
2 | short(短整数) | 16 | 0 | -2^15(-32768) ~ 2^15-1(32767) | short s = 100; |
3 | int(整数) | 32 | 0 | -2^31(-2,147,483,648) ~ 2^31-1(2,147,483,647) | int i = 100; |
4 | long(长整数) | 64 | 0L | -2^63L ~ 2^63-1L | long l = 10L; |
5 | float(单精度) | 32 | 0.0f | -2^31 ~ 2^31-1 | float f = 10.0f; |
6 | double(双精度) | 64 | 0.0 | -2^63 ~ 2^63-1 | double d = 10.0; |
7 | char(字符) | 16 | 空 | 0 ~ 2^16-1 | char c = 'c'; |
8 | boolean(布尔值) | 8 | false | true、false | boolean b = true; |
byte
byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一。
short
short数据类型也可以像byte那样节省空间。一个short变量是int型变量所占空间的二分之一。
int
一般地整型变量默认为int类型。
long
long类型主要使用在需要比较大整数的系统上,定义long类型需要在数字后面加“L/l”(小写看起来费劲,尽量用L),用来区分int类型。(后面的类型转换知识点会后续解释)
float
float在储存大型浮点数组的时候可节省内存空间,定义浮点数类型,需要加上“F/f”,用于区分double类型。
double
浮点数的默认类型为double类型,定义浮点数时候,可加可不加“D/d”。浮点数不能用来表示精确的值,如货币。
char
char数据类型可以储存任何字符,最小值是’\u0000’(即为0),最大值是’\uffff’(即为2^16-1=65535)。
boolean
这种类型只作为一种标志来记录true/false情况。
跑下代码
public class PrimitiveTypeTest {
public static void main(String[] args) {
//byte
System.out.println("byte二进制位数:" + Byte.SIZE);
System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);
System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);
System.out.println();
//short
System.out.println("short二进制位数:" + Short.SIZE);
System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);
System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);
System.out.println();
//int
System.out.println("int二进制位数:" + Integer.SIZE);
System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
System.out.println();
//long
System.out.println("long二进制位数:" + Long.SIZE);
System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
System.out.println();
//float
System.out.println("float二进制位数:" + Float.SIZE);
System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);
System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);
System.out.println();
//double
System.out.println("double二进制位数:" + Double.SIZE);
System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);
System.out.println();
// char
System.out.println("char 二进制位数:" + Character.SIZE);
System.out.println("最小值:Character.MAX_VALUE=" + (int)Character.MAX_VALUE);
System.out.println("最大值:Character.MIN_VALUE=" + (int) Character.MIN_VALUE);
}
}
运行后输出结果
byte二进制位数:8
最大值:Byte.MAX_VALUE=127
最小值:Byte.MIN_VALUE=-128
short二进制位数:16
最大值:Short.MAX_VALUE=32767
最小值:Short.MIN_VALUE=-32768
int二进制位数:32
最大值:Integer.MAX_VALUE=2147483647
最小值:Integer.MIN_VALUE=-2147483648
long二进制位数:64
最大值:Long.MAX_VALUE=9223372036854775807
最小值:Long.MIN_VALUE=-9223372036854775808
float二进制位数:32
最大值:Float.MAX_VALUE=3.4028235E38
最小值:Float.MIN_VALUE=1.4E-45
double二进制位数:64
最大值:Double.MAX_VALUE=1.7976931348623157E308
最小值:Double.MIN_VALUE=4.9E-324
char 二进制位数:16
最小值:Character.MAX_VALUE=65535
最大值:Character.MIN_VALUE=0
Float和Double的最小值和最大值都是以科学记数法的形式输出的,结尾的"E+数字"表示E之前的数字要乘以10的“数字”次幂。比如3.14E3就是3.14×1000=3140,3.14E-3就是3.14/1000=0.00314。
II.引用数据类型
- 引用类型变量由类的构造函数创建,可以使用它们访问所引用的对象。这些变量在声明时被指定为一个特定的类型,比如Employee、Pubby等。变量一旦声明后,类型就不能被改变了。
对象、数组都是引用数据类型。 - 所有引用类型的默认值都是null。
- 一个引用变量可以用来引用与任何与之兼容的类型。
- 例子:Animal animal = new Animal(“giraffe”)。
最后做个脑图巩固一下
四、Java常量
final double PI = 3.1415927;
JAVA中使用final标志,声明方式和变量相似。
常量名可以用小写,但是为了便于区分识别,通常用大写字母表示常量。
字面量可以赋给任何内置类型的变量。
byte、short、int、long都可以使用八进制、十进制、十六进制。
通常用0前缀表明是8进制,0x表明是16进制
int decimal = 100; //10进制
int octal = 0144; //8进制
int hexa = 0x64; //16进制
字符串中的一些转义字符
符号 | 字符含义 |
---|---|
\n | 换行 (0x0a) |
\r | 回车 (0x0d) |
\f | 换页符(0x0c) |
\b | 退格 (0x08) |
\0 | 空字符(0x0) |
\s | 字符串 |
\t | 制表符 |
" | 双引号 |
' | 单引号 |
\ | 反斜杠 |
\ddd | 八进制字符 (ddd) |
\uxxxx | 16进制Unicode字符 (xxxx) |