# Java新手必看:从基础到进阶的多样化数据类型全解析
## 基本数据类型
### 整型
Java提供了4种整型数据类型,用于存储不同范围的整数值:
```java
byte byteValue = 127; // 8位,范围:-128 到 127
short shortValue = 32767; // 16位,范围:-32768 到 32767
int intValue = 2147483647; // 32位,范围:-2^31 到 2^31-1
long longValue = 9223372036854775807L; // 64位,范围:-2^63 到 2^63-1
```
### 浮点型
Java提供两种浮点类型,用于存储小数:
```java
float floatValue = 3.14f; // 32位单精度浮点数
double doubleValue = 3.141592653589793; // 64位双精度浮点数
```
### 字符型
char类型用于存储单个字符:
```java
char charValue = 'A'; // 16位Unicode字符
char unicodeChar = 'A'; // Unicode表示,也是'A'
```
### 布尔型
boolean类型表示真/假值:
```java
boolean isTrue = true;
boolean isFalse = false;
```
## 引用数据类型
### 字符串
String是Java中最常用的引用类型之一:
```java
String str1 = Hello World;
String str2 = new String(Java Programming);
```
### 数组
数组是存储相同类型元素的集合:
```java
// 一维数组
int[] numbers = {1, 2, 3, 4, 5};
String[] names = new String[3];
// 多维数组
int[][] matrix = {{1, 2, 3}, {4, 5, 6}};
```
## 包装类
Java为每个基本数据类型提供了对应的包装类:
```java
Integer integerObj = Integer.valueOf(100);
Double doubleObj = Double.valueOf(3.14);
Boolean booleanObj = Boolean.valueOf(true);
Character charObj = Character.valueOf('A');
```
## 集合框架
### List接口
有序集合,允许重复元素:
```java
List arrayList = new ArrayList<>();
arrayList.add(Apple);
arrayList.add(Banana);
List linkedList = new LinkedList<>();
linkedList.add(First);
linkedList.add(Second);
```
### Set接口
不允许重复元素的集合:
```java
Set hashSet = new HashSet<>();
hashSet.add(1);
hashSet.add(2);
Set treeSet = new TreeSet<>();
treeSet.add(Zebra);
treeSet.add(Apple);
```
### Map接口
键值对集合:
```java
Map hashMap = new HashMap<>();
hashMap.put(John, 25);
hashMap.put(Alice, 30);
Map treeMap = new TreeMap<>();
treeMap.put(3, Three);
treeMap.put(1, One);
```
## 枚举类型
枚举定义一组命名的常量:
```java
public enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY,
FRIDAY, SATURDAY, SUNDAY
}
// 使用枚举
Day today = Day.MONDAY;
```
## 自定义类
创建自己的数据类型:
```java
public class Person {
private String name;
private int age;
// 构造方法
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// Getter和Setter方法
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
}
// 使用自定义类
Person person = new Person(张三, 25);
```
## 泛型
泛型提供类型安全性:
```java
// 泛型类
public class Box {
private T content;
public void setContent(T content) {
this.content = content;
}
public T getContent() {
return content;
}
}
// 使用泛型
Box stringBox = new Box<>();
stringBox.setContent(Hello);
Box integerBox = new Box<>();
integerBox.setContent(123);
```
## 特殊数据类型
### 大数值类型
处理超出基本类型范围的大数值:
```java
BigInteger bigInt = new BigInteger(12345678901234567890);
BigDecimal bigDec = new BigDecimal(3.14159265358979323846);
```
### 日期时间类型
Java 8引入的新日期时间API:
```java
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime dateTime = LocalDateTime.now();
// 时间段计算
Duration duration = Duration.between(startTime, endTime);
Period period = Period.between(startDate, endDate);
```
## 数据类型转换
### 自动类型转换
```java
int intValue = 100;
long longValue = intValue; // 自动转换
double doubleValue = longValue; // 自动转换
```
### 强制类型转换
```java
double doubleValue = 9.78;
int intValue = (int) doubleValue; // 强制转换,结果为9
```
### 字符串转换
```java
// 基本类型转字符串
String intStr = String.valueOf(123);
String doubleStr = String.valueOf(45.67);
// 字符串转基本类型
int number = Integer.parseInt(123);
double decimal = Double.parseDouble(45.67);
```
## 最佳实践
1. 选择合适的数据类型:根据数据范围和精度需求选择最合适的类型
2. 使用包装类处理null值:当需要表示可能不存在的值时使用包装类
3. 优先使用集合框架:代替数组以获得更好的灵活性和功能
4. 利用泛型保证类型安全:在编译时捕获类型错误
5. 注意数据类型转换:避免精度损失和运行时异常
通过掌握这些多样化的数据类型,Java开发者能够更有效地处理各种数据场景,编写出更加健壮和可维护的代码。
863

被折叠的 条评论
为什么被折叠?



