一、数据类型分类与特点
java中数据类型分为两大类:
1、基本数据类型(8种)
【整形类】
1 byte 字节类型
2 short 短整型
3 int 整形
4 long 长整型
【浮点型类】
5 float 单精度浮点型
6 double 双精度浮点型
7 char 字符型
8 boolean 布尔类型
数据类型 | 关键字 | 内存占用 | 范围 |
字节型 | byte | 1字节 | -128~127 |
短整型 | short | 2字节 | -32768~32767 |
整形 | int | 4字节 | -2^31~2^31-1 |
长整型 | long | 8字节 | -2^63~2^63-1 |
单精度浮点 | float | 4字节 | 不关注 |
双精度浮点 | double | 8字节 | 不关注 |
字符型 | char | 2字节 | 0~65535 |
布尔型 | boolean | 无明确规定 | true&false |
java中没有所谓的无符号数字!!!(即二进制代码中第一位一定表示正负)
2、引用数据类型(待补充)
String
数组
类
接口
二、不同数据类型的运用
1、整形实现代码如下:
public class test2 {
public static void main1(String[] args) {
int a = 10;
System.out.println(a);
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
}
public static void main2(String[] args) {
long b = 20L;
System.out.println(b);
System.out.println(Long.MAX_VALUE);
System.out.println(Long.MIN_VALUE);
}
public static void main3(String[] args) {
short c = 30;
System.out.println(c);
System.out.println(Short.MAX_VALUE);
System.out.println(Short.MIN_VALUE);
}
public static void main4(String[] args) {
byte d = 40;
System.out.println(d);
System.out.println(Byte.MAX_VALUE);
System.out.println(Byte.MIN_VALUE);
}
}
其中main1至4分别表示int、long、short、byte的输出,在输出该类型所能储存的最大值与最小值时采用了MAX/MIN_VALUE的方法,格式为 数据类型名称(英文全称且首字母大写).MAX/MIN_VALUE
运行结果如下:
main1
main2
注意:长整型在赋值时给所赋数据后加大写L,否则即使定义变量为长整型,存入数据的类型仍为整形。
main3
main4
2、浮点的代码实现:
如图,对单精度浮点型赋值时出现报错,原因是所赋的值被视作双精度浮点型,占8个字节,而单精度浮点为4个字节,因此无法赋给定义为单精度浮点的变量,需要手动在所赋的值后加F
修改后代码如下:
public class Main {
public static void main(String[] args) {
double a = 1.2;
System.out.println(a);
System.out.println(Double.MAX_VALUE);
System.out.println(Double.MIN_VALUE);
float b = 1.2F;
System.out.println(b);
System.out.println(Float.MAX_VALUE);
System.out.println(Float.MIN_VALUE);
}
}
3、布尔型的代码实现
public class Main {
public static void main(String[] args) {
boolean a = false;//or “true”
System.out.println(a);
}
}
只有true表示真,只有false表示假,不存在“0为假,非0为真”的说法。
三、 字符串类型 *
类型名称为 String (注意大写),后用双引号括起所赋的字符串。String类型可参与整形的“加法”,但这里的加法表示拼接。
举个例子:
public class Main {
public static void main(String[] args) {
String a = "Miami HEAT ";
String b = " champions";
int c = 3;
int d = 20;
int e = 13;
System.out.println(a+"has "+c+b+" after "+d+e);
}
}
其运行结果如下:
注意d与e之间的加号也表示拼接而非数据相加,原因是前一个整形之前若有字符串,则会将该整形接入字符串中,也成为了字符串变量。