Java内置数据类型包括以下几种:
-
整型数据类型
- byte: 1 字节, 默认值为 0。示例:byte number = 10;
- short: 2 字节, 默认值为 0。示例:short number = 1000;
- int: 4 字节, 默认值为 0。示例:int number = 1000000;
- long: 8 字节, 默认值为 0L。示例:long number = 1000000000L;
-
浮点型数据类型
- float: 4 字节, 默认值为 0.0f。示例:float number = 3.14f;
- double: 8 字节, 默认值为 0.0。示例:double number = 3.14159265;
-
字符型数据类型
- char: 2 字节, 默认值为 ‘\u0000’。示例:char letter = 'A';
-
布尔型数据类型
- boolean: 1 字节, 默认值为 false。示例:boolean flag = true;
-
引用数据类型
- String: 字符串类, 默认值为 null。示例:String name = "John";
- 数组: 一组相同类型的数据, 默认值为 null。示例:int[] numbers = new int[5];
示例1: 总的示例
public class Main {
public static void main(String[] args) {
byte b = 100;
short s = 1000;
int i = 1000000;
long l = 1000000000L;
float f = 3.14f;
double d = 3.14159265;
char c = 'A';
boolean flag = true;
String str = "Hello";
System.out.println(b);
System.out.println(s);
System.out.println(i);
System.out.println(l);
System.out.println(f);
System.out.println(d);
System.out.println(c);
System.out.println(flag);
System.out.println(str);
}
}
运行结果如下:
100
1000
1000000
1000000000
3.14
3.14159265
A
true
Hello
类型默认值
下表列出了 Java 各个类型的默认值:
数据类型 | 默认值 |
---|---|
int | 0 |
long | 0L |
short | 0 |
char | ‘\u0000’ |
byte | 0 |
float | 0.0f |
double | 0.0d |
boolean | false |
引用类型(类、接口、数组) | null |
说明:
- int, short, long, byte 的默认值是0。
- char 的默认值是 \u0000(空字符)。
- float 的默认值是 0.0f。
- double 的默认值是 0.0d。
- boolean 的默认值是 false。
- 引用类型(类、接口、数组)的默认值是 null。
示例2: 默认值示例
public class Main {
static byte b;
static short s;
static int i;
static long l;
static float f;
static double d;
static char c;
static boolean flag;
static String str;
public static void main(String[] args) {
System.out.println(b); // 输出: 0
System.out.println(s); // 输出: 0
System.out.println(i); // 输出: 0
System.out.println(l); // 输出: 0
System.out.println(f); // 输出: 0.0
System.out.println(d); // 输出: 0.0
System.out.println(c); // 输出: 空字符
System.out.println(flag); // 输出: false
System.out.println(str); // 输出: null
}
}
运行结果如下:
0
0
0
0
0.0
0.0
false
null
Java 常量
在Java中,常量是指在程序中一旦赋值后就不能修改的值。常量一般用final修饰符来声明。
Java中的常量有以下几种类型:
-
字面常量:字面常量是指直接出现在代码中的常量值。例如:整数常量、浮点数常量、字符常量、布尔常量等。
-
final常量:使用final修饰符声明的常量,一旦赋值后就不能再修改。例如:
final int MAX_VALUE = 100;
-
static final常量:使用static和final修饰符声明的常量,可以通过类名直接访问,一旦赋值后也不能修改。例如:
public class Constants { public static final double PI = 3.14; }
在其他类中可以通过
Constants.PI
来访问该常量。 -
枚举常量:使用枚举类型来定义常量。枚举常量可以通过枚举类名和常量名来访问。例如:
public enum Color { RED, GREEN, BLUE; }
在其他类中可以通过
Color.RED
来访问该常量。
需要注意的是,常量的名称通常使用大写字母和下划线命名,以便与变量区分。
自动类型转换
在Java中,有两种类型转换:自动类型转换和强制类型转换。
自动类型转换是指将一个数据类型的值赋给另一个数据类型的变量时,如果目标数据类型的范围大于源数据类型的范围,Java会自动执行类型转换。自动类型转换是安全的,不会导致数据丢失。
以下是Java中的自动类型转换规则:
- 将一个整数类型的值赋给更大范围的整数类型,如将int类型赋给long类型。
- 将一个浮点数类型的值赋给更大范围的浮点数类型,如将float类型赋给double类型。
- 将一个字符类型的值赋给整数类型,如将char类型赋给int类型。
- 将一个布尔类型的值赋给整数类型,如将boolean类型赋给int类型,其中true表示1,false表示0。
以下是一个示例代码,演示了自动类型转换的情况:
int num1 = 100;
long num2 = num1; // 自动将int类型转换为long类型
float num3 = 3.14f;
double num4 = num3; // 自动将float类型转换为double类型
char ch = 'A';
int num5 = ch; // 自动将char类型转换为int类型
boolean flag = true;
int num6 = flag ? 1 : 0; // 自动将boolean类型转换为int类型
需要注意的是,自动类型转换只能从低范围向高范围的数据类型进行转换,而不能反过来。如果要将一个高范围的数据类型赋给一个低范围的数据类型,就需要使用强制类型转换。
强制类型转换
- 条件是转换的数据类型必须是兼容的。
- 格式:(type)value type是要强制类型转换后的数据类型 实例:
实例
public class ForceTransform {
public static void main(String[] args){
int i1 = 123;
byte b = (byte)i1;//强制类型转换为byte
System.out.println("int强制类型转换为byte后的值等于"+b);
}
}
运行结果:
int强制类型转换为byte后的值等于123
隐含强制类型转换
- 整数的默认类型是 int。
- 小数默认是 double 类型浮点型,在定义 float 类型时必须在数字后面跟上 F 或者 f。