Java基础数据类型详解
Java数据类型分类
基本数据类型概述
Java语言提供了八种基本数据类型:
- 整数类型:byte、short、int、long
- 浮点类型:float、double
- 字符类型:char
- 布尔类型:boolean
各类型默认值与取值范围
| 数据类型 | 默认值 | 取值范围 |
|---|---|---|
| byte | 0 | -128 到 127 |
| short | 0 | -32,768 到 32,767 |
| int | 0 | -2,147,483,648 到 2,147,483,647 |
| long | 0L | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
| float | 0.0f | 约±3.4E+38F(6-7位有效数字) |
| double | 0.0d | 约±1.79E+308(15位有效数字) |
| char | '\u0000' | 0 到 65,535 |
| boolean | false | true 或 false |
类型转换机制
Java中的类型转换分为以下几种情况:
自动类型提升
当不同精度的数据参与运算时,系统会自动将低精度类型转换为高精度类型:
byte smallValue = 50;
int largeValue = 100;
int result = smallValue + largeValue; // byte自动提升为int
float decimal = 3.14f;
double precise = 2.718;
double sum = decimal + precise; // float自动提升为double
强制类型转换
将高精度类型转换为低精度类型需要显式转换,可能造成数据丢失:
double source = 9.87;
int target = (int) source; // 结果为9,小数部分被截断
long bigNumber = 1000000L;
byte smallNumber = (byte) bigNumber; // 可能发生溢出
数据常量表示
各种数据类型常量的表示方法:
- 整数常量:123、-456、0xFF(十六进制)
- 浮点常量:3.14、-0.5、1.23E-4(科学计数法)
- 布尔常量:true、false
- 字符常量:'A'、'\n'(转义字符)、'\u0041'(Unicode)
变量与常量
标识符规范
Java标识符需遵循以下规则:
- 以字母、下划线(_)或美元符($)开头
- 后续可包含字母、数字、下划线或美元符
- 不能使用Java关键字作为标识符
- 区分大小写
变量声明与使用
// 变量声明
int counter;
String userName;
// 声明并初始化
int initialValue = 0;
String welcomeMessage = "Hello World";
// 变量赋值
counter = 10;
userName = "张三";
作用域分类
根据作用域范围,变量可分为:
- 局部变量:在方法或代码块内声明,仅在该范围内有效
- 成员变量:在类中声明,可在整个类中访问
public class SampleClass {
int instanceVariable; // 成员变量
public void sampleMethod() {
int localVariable = 5; // 局部变量
instanceVariable = localVariable * 2;
}
}
常量定义
使用final关键字定义不可变常量:
final double PI_CONSTANT = 3.14159;
final String COMPANY_NAME = "科技有限公司";
// PI_CONSTANT = 3.14; // 编译错误,常量不可重新赋值
类型间转换操作
数值与字符串互转
数值转字符串
int number = 42;
String str1 = String.valueOf(number);
String str2 = Integer.toString(number);
String str3 = "" + number;
double decimalValue = 3.14159;
String str4 = String.valueOf(decimalValue);
String str5 = Double.toString(decimalValue);
字符串转数值
String numericStr = "123";
int parsedInt = Integer.parseInt(numericStr);
double parsedDouble = Double.parseDouble(numericStr);
String decimalStr = "3.14";
double piValue = Double.parseDouble(decimalStr);
// int invalid = Integer.parseInt(decimalStr); // 运行时异常
转换注意事项
进行类型转换时需要注意:
- 强制转换可能导致精度丢失
- 字符串转数值时格式必须正确
- 超出范围的转换会产生异常或错误结果