梦入琼楼寒有月,行过石树冻无烟

JAVA 基本数据类型

变量 就是申请 内存 来的存储值,当创建变量的时候,需要在内存中申请空间,而内存管理系统还会根据变量的类型分配存储空间而分配的空间只能用于存储该类型数据 > 也就是说这个就和身份证一样,你的身份证只能用于证明自己身份,但不能用于付钱.

一 八种基本类型
1.byte

数据类型8位且有符号二进制补码表示整数

1
2
byte a = 100
byte b = 50
最大值 最小值 默认值
127 128 0
1
2
3
4
System.out.println("java.lang.Byte");
System.out.println("byte 01:" + Byte.SIZE);
System.out.println("byte MAX:" + Byte.MAX_VALUE);
System.out.println("Byte MIN:" + Byte.MIN_VALUE);
2.short

数据类型为16位,有符号二进制补码表示整数

1
2
short s = 1000
short r = 20000
最大值 最小值 默认值
32767 -32768 0
1
2
3
4
System.out.println("java.lang.Short");
System.out.println("Short 01" + Short.SIZE);
System.out.println("Short MAX" + Short.MAX_VALUE);
System.out.println("Short MIN" + Short.MIN_VALUE);
3.integer (int)

int数据类型为32位有符号的以表示二进制补码整数

1
2
int a = 100000
int b = 200000
最大值 最小值 默认值
2,147,483,647 -2,147,483,647 0
1
2
3
4
System.out.println("java.lang.Integer");
System.out.println("Integer 01" + Integer.SIZE);
System.out.println("Integer MAX" + Integer.MAX_VALUE);
System.out.println("Integer MIN" + Integer.MIN_VALUE);
4.long

整数类型64位有符号的以表示二进制补码整数

1
2
long a = 100000L
long b = 200000L

“L”是不区分大小写的,为了避免与”1”混淆,本文使用大写”L”

最大值 最小值 默认值
9,223,372,036,854,775,807 -9,223,372,036,854,775,807 0L
1
2
3
4
System.out.println("java.lang.Long");
System.out.println("Long 01" + Long.SIZE);
System.out.println("Long MAX" + Long.MAX_VALUE);
System.out.println("Long MIN" + Long.MIN_VALUE);
5.float

单精度数据类型,32位,符合IEEE 754 浮点数

1
float f1 = 234.5f
1
2
3
4
System.out.println("java.lang.Float");
System.out.println("Float 01" + Float.SIZE);
System.out.println("Float MAX" + Float.MAX_VALUE);
System.out.println("Float MIN" + Float.MIN_VALUE);

优点: 在存储大型浮点数组时候可以节省内存空间

**缺点:**浮点数不能用于表示精确的值,比如$

**默认值:**0.0f

6.double

是双精度类型,64位,符合IEEE 745 的浮点数,浮点数默认类型都将为double类型

1
double d1 = 123.4
1
2
3
4
System.out.println("java.lang.Double");
System.out.println("Double 01" + Double.SIZE);
System.out.println("Double MAX" + Double.MAX_VALUE);
System.out.println("Double MIN" + Double.MIN_VALUE);

缺点: 不能表示精确的值,如$

**默认值:**0.0d

7.boolean

数据类型表示一位的信息,通常只有两个取值”true or flase

1
beelean one = false

**默认值:**flase

**用途:**主要用于标记 true and flase 情况;

8.character (char)

类型是一个单一Unicode字符 [^16位]

1
char letter = 'A'

**特点:**可用于存储任何一个字符(如ABCDEFD)

最大值 最小值 默认值
\uffff \u0000 \u0000
1
2
3
4
System.out.println("java.lang.Character");
System.out.println("Character 01" + Character.SIZE);
System.out.println("Character MAX" + (int) Character.MAX_VALUE);
System.out.println("Character MIN" + (int) Character.MIN_VALUE);
二 常量

常量在计算机中欧就那个运行时不能被修改的,主要使用 final作为关键字来修饰常量;

1.double
1
2
3
4
5
6
public class Demo {
public static void main (String args[]) {
final double d1 = 3;
System.out.println(d1);
}
}

​ 其输出结果为: 3.0

2.byte

数据类型8位且有符号二进制补码表示整数

1
2
3
4
5
6
public class Demo {
public static void main (String args[]) {
byte b = 11;
System.out.println(b);
}
}

其输出结果为: 11

3.char (Character)

类型是一个单一Unicode字符 [^16位]

1
2
3
4
5
6
public class Demo {
public static void main (String args[]) {
char c = 'A';
System.out.println(c);
}
}

其输出结果为:A

三 字符串与常量

字符串和常量都长都可以包含任何Unicode字符

1.字符串
1
2
3
4
5
6
7
public class Demo {
public static void main (String args[]) {
String s = "\u0001";
System.out.println(s);

}
}
2.常量
1
2
3
4
5
6
public class Demo {
public static void main (String args[]) {
char a = '\u0001';
System.out.println(a);
}
}
四 自动类型转换与强制类型转换

自动类型转换需要满足从的等级转换

1
2
3
<- 低 高->

byte -> short -> char -> int -> long -> float -> double

还必须满足以下条件

1.不能对boolean进行转换

2.不能将对象类型转换成不相关类的对象

3.在容量大的类型转换为容量小的时候必须使用强制类型转换

1.自动类型转换
1
2
3
4
5
6
7
8
9
10
11
public class Demo {
public static void main (String args[]) {
// 定义Char类型
char c = 'a';

// Char 转换为 Int 类型
int i1 = c;
System.out.println("Char类型值= " + c);
System.out.println("Char自动转换类型为Int后= " + i1);
}
}

ASCII = a ,查 ASCII 码表对应的 int 类型值为 97

2.强制类型转换

在容量大的类型转换为容量小的时候必须使用强制类型转换**

1
2
3
4
5
6
7
public class Demo {
public static void main (String args[]) {
int i = 12311111;
byte b = (byte)i;
System.out.println("Int转换为byte后值为= " + b);
}
}

int 强制转换因为需要遵守强制转换原则,所以输出结果为**”Int转换为byte后值为= 71”**

⬅️ Go back