掌握Java的8种基本数据类型及其特点和使用方法
Java是一种强类型语言,所有变量在使用前必须声明其数据类型。Java提供了8种基本数据类型(Primitive Data Types),它们是Java语言内置的数据类型,不是对象,直接存储在栈内存中,具有高效的存储和访问特性。
Java的8种基本数据类型可以分为4大类:
整型数据类型用于存储整数值,Java提供了4种不同大小的整型数据类型,以满足不同的存储需求。
byte age = 25;
byte temperature = -10;
short year = 2024;
short score = 95;
int count = 1000;
int population = 1400000000;
long distance = 384400000L;
long timestamp = 1640995200000L;
浮点型数据类型用于存储带有小数部分的数值,Java提供了两种浮点型数据类型。
float price = 19.99f;
float pi = 3.14159f;
double salary = 50000.50;
double pi = 3.141592653589793;
char letter = 'A';
char digit = '9';
char chinese = '中';
char unicode = '\u0041'; // 'A'的Unicode
char newline = '\n'; // 换行符
char tab = '\t'; // 制表符
char backslash = '\\'; // 反斜杠
char quote = '\''; // 单引号
char doubleQuote = '\"'; // 双引号
boolean isStudent = true;
boolean isMarried = false;
boolean canVote = age >= 18;
数据类型 | 大小 | 取值范围 | 默认值 | 示例 |
---|---|---|---|---|
byte | 8位 | -128 到 127 | 0 | byte b = 100; |
short | 16位 | -32,768 到 32,767 | 0 | short s = 1000; |
int | 32位 | -2,147,483,648 到 2,147,483,647 | 0 | int i = 100000; |
long | 64位 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 0L | long l = 100000L; |
float | 32位 | ±3.4E±38(7位有效数字) | 0.0f | float f = 3.14f; |
double | 64位 | ±1.7E±308(15位有效数字) | 0.0d | double d = 3.14159; |
char | 16位 | 0 到 65,535(Unicode字符) | '\u0000' | char c = 'A'; |
boolean | 1位 | true 或 false | false | boolean b = true; |
/**
* Java基本数据类型演示程序
* 展示8种基本数据类型的声明、初始化和使用
*
* @author Java学习者
* @version 1.0
*/
public class DataTypesExample {
public static void main(String[] args) {
// 整型数据类型
byte byteValue = 127; // 8位整型
short shortValue = 32767; // 16位整型
int intValue = 2147483647; // 32位整型
long longValue = 9223372036854775807L; // 64位整型
// 浮点型数据类型
float floatValue = 3.14159f; // 32位浮点型
double doubleValue = 3.141592653589793; // 64位浮点型
// 字符型数据类型
char charValue = 'A'; // 16位Unicode字符
char unicodeChar = '\u4E2D'; // Unicode表示的中文字符'中'
// 布尔型数据类型
boolean booleanValue = true; // 布尔值
// 输出所有数据类型的值
System.out.println("=== Java基本数据类型演示 ===");
System.out.println();
System.out.println("整型数据类型:");
System.out.println("byte值: " + byteValue + " (范围: -128 到 127)");
System.out.println("short值: " + shortValue + " (范围: -32,768 到 32,767)");
System.out.println("int值: " + intValue + " (范围: -2,147,483,648 到 2,147,483,647)");
System.out.println("long值: " + longValue + " (范围: -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807)");
System.out.println();
System.out.println("浮点型数据类型:");
System.out.println("float值: " + floatValue + " (32位单精度)");
System.out.println("double值: " + doubleValue + " (64位双精度)");
System.out.println();
System.out.println("字符型数据类型:");
System.out.println("char值: " + charValue + " (Unicode字符)");
System.out.println("Unicode字符: " + unicodeChar + " (\\u4E2D)");
System.out.println();
System.out.println("布尔型数据类型:");
System.out.println("boolean值: " + booleanValue + " (true或false)");
System.out.println();
// 演示数据类型的大小
demonstrateDataTypeSizes();
// 演示数据类型的默认值
demonstrateDefaultValues();
}
/**
* 演示各种数据类型的字节大小
*/
public static void demonstrateDataTypeSizes() {
System.out.println("=== 数据类型大小(字节) ===");
System.out.println("byte: " + Byte.BYTES + " 字节");
System.out.println("short: " + Short.BYTES + " 字节");
System.out.println("int: " + Integer.BYTES + " 字节");
System.out.println("long: " + Long.BYTES + " 字节");
System.out.println("float: " + Float.BYTES + " 字节");
System.out.println("double: " + Double.BYTES + " 字节");
System.out.println("char: " + Character.BYTES + " 字节");
System.out.println("boolean: 理论上1位,实际实现可能不同");
System.out.println();
}
/**
* 演示各种数据类型的默认值
*/
public static void demonstrateDefaultValues() {
System.out.println("=== 数据类型默认值 ===");
// 创建一个内部类来演示默认值
class DefaultValues {
byte defaultByte;
short defaultShort;
int defaultInt;
long defaultLong;
float defaultFloat;
double defaultDouble;
char defaultChar;
boolean defaultBoolean;
}
DefaultValues defaults = new DefaultValues();
System.out.println("byte默认值: " + defaults.defaultByte);
System.out.println("short默认值: " + defaults.defaultShort);
System.out.println("int默认值: " + defaults.defaultInt);
System.out.println("long默认值: " + defaults.defaultLong);
System.out.println("float默认值: " + defaults.defaultFloat);
System.out.println("double默认值: " + defaults.defaultDouble);
System.out.println("char默认值: '" + defaults.defaultChar + "' (Unicode: \\u" +
Integer.toHexString(defaults.defaultChar).toUpperCase() + ")");
System.out.println("boolean默认值: " + defaults.defaultBoolean);
}
}
// ✅ 推荐写法
int count = 100; // 普通整数使用int
long timestamp = 1640995200000L; // 大整数使用long,加L后缀
float price = 19.99f; // float类型加f后缀
double pi = 3.141592653589793; // 高精度小数使用double
boolean isValid = true; // 布尔值使用boolean
char grade = 'A'; // 单个字符使用char
// ❌ 不推荐写法
byte count = 100; // 没必要使用byte
int timestamp = 1640995200; // 可能溢出
float price = 19.99; // 缺少f后缀,会报错
float pi = 3.141592653589793f; // 精度损失
int isValid = 1; // 应该使用boolean
String grade = "A"; // 单个字符不需要String