下面给出一份“速查表式”的整理,帮助你把 **Java 中的数据类型** 与 **日常编码中最常见的声明/使用方式** 一次性梳理清楚。
---
### 1. 数据类型总览(两大类)
| 类别 | 关键字 | 取值范围(近似) | 默认值 | 常见声明示例 |
|------|--------|------------------|--------|--------------|
| **整型** | `byte` | ‑128 ~ 127 | `0` | `byte b = 100;` |
| | `short` | ‑32 768 ~ 32 767 | `0` | `short s = 30_000;` |
| | `int`(默认) | ‑2³¹ ~ 2³¹-1 | `0` | `int i = 1_000_000;` |
| | `long` | ‑2⁶³ ~ 2⁶³-1 | `0L` | `long l = 9_223_372_036_854_775_807L;`|
| **浮点型** | `float` | IEEE-754 单精度 | `0.0f` | `float f = 3.14f;` |
| | `double`(默认) | IEEE-754 双精度 | `0.0d` | `double d = 3.1415926;` |
| **字符型** | `char` | 一个 UTF-16 码元 | `'\u0000'` | `char c = '中';` |
| **布尔型** | `boolean` | `true / false` | `false` | `boolean ok = true;` |
> 小结:8 种 **基本类型(primitive)** 以外的所有类型都是 **引用类型(reference)**,包括数组、类、接口、枚举、记录、String 等。
---
### 2. 引用类型速查
| 类型 | 关键词 | 典型声明示例 | 备注 |
|------|--------|--------------|------|
| **字符串** | `String` | `String name = "Alice";` | 不可变、常量池 |
| **数组** | `[]` | `int[] nums = {1,2,3};` | 定长;支持多维 |
| **类** | `class` | `Point p = new Point(3,4);` | 封装数据+行为 |
| **接口** | `interface` | `List<String> list = new ArrayList<>();` | 多态、解耦 |
| **枚举** | `enum` | `enum Color { RED, GREEN }` | 单例、类型安全 |
| **记录** | `record` | `record User(String name,int age){}` | Java 16+,不可变数据载体 |
| **包装类** | 各基本类型的首字母大写 | `Integer val = 42;` | 自动装箱/拆箱 |
---
### 3. 日常最常见 6 种声明写法
1. **变量声明并初始化**
```java
int age = 18; // 基本类型
String name = "Bob"; // 引用类型
```
2. **常量(编译期常量)**
```java
static final double PI = 3.141592653589793;
```
3. **数组**
```java
int[] arr = new int[5]; // 默认 0,0,0,0,0
int[] arr2 = {1, 2, 3}; // 字面量
```
4. **泛型容器**
```java
List<String> list = new ArrayList<>();
Map<Integer, Double> scores = new HashMap<>();
```
5. **枚举**
```java
enum Season { SPRING, SUMMER, AUTUMN, WINTER }
Season s = Season.SUMMER;
```
6. **记录(Java 16+)**
```java
record Person(String name, int age) {}
Person p = new Person("Tom", 20);
```
---
### 4. 容易踩坑的小提示
- `float` 字面量必须带 `f/F`,否则默认为 `double`。
- `long` 字面量建议加 `l/L`,但小写 `l` 与数字 `1` 易混,推荐大写 `L`。
- 包装类比较请用 `equals`,`==` 只比较引用(Integer 缓存范围 -128~127 除外)。
- `char` 是无符号 16 位整数,可做算术运算:`char c = 'A'; c++; // 'B'`。
---
### 5. 一张思维导图(文字版)
```
Java 数据类型
├─ 基本类型 (8 个)
│ ├─ 整数:byte, short, int, long
│ ├─ 浮点:float, double
│ ├─ 字符:char
│ └─ 布尔:boolean
└─ 引用类型
├─ 类 class(含 String)
├─ 接口 interface
├─ 数组 []
├─ 枚举 enum
├─ 记录 record
└─ 包装类 Integer, Double, ...
```
把这张表/思维导图贴在 IDE 边栏或记笔记软件里,随时查阅即可。
- 环境配置
- window怎么配置java环境变量?
- Java基础语法
- 数据类型
- Java中的数据类型
- Java中的泛型容器
- Java中的JSONObject
- Java高级特性
- Maven
- jib-maven-plugin
- 什么是Spring Boot 的 parent pom?
- maven中各个生命周期的含义
- Spring Boot
- maven与spring boot 的关系
- Java中的连接池
- Spring JDBC
- Spring JDBC的概念
- JdbcTemplate常用的方法
- Spring中Bean的概念
- Spring中的抽象,通俗解释一下
- Spring中的事物
- Spring中的事物,通俗解释一下
- Spring中的事物抽象,常见的有哪些,列举一下
- Spring中常用的事物场景有哪些,列举一下
- Spring事务管理有哪些注解?
- Spring中使用事物处理订单的案例,列举说明一下
- Spring中声明式事务、分布式事务以及编程式事务的区别,列举一下
- 配置文件
- application-properties配置文件
- Spring Boot 的启动
- spring boot项目如何启动?
- 列举一下Spring Boot的启动过程
- SpringApplication.run方法
- Spring Boot 启动时有哪些接口?
- CommandLineRunner
- Spring Boot 的常用注解
- 系统注解
- 表格:系统注解
- @Override
- @Deprecated
- @SuppressWarnnings
- 使用在类名上的注解
- 表格:使用在类名上的注解
- @RestController
- @Controller
- @Service
- @Repository
- @Component
- @Configuration
- @Resource
- @Autowired
- @RequestMapping
- @GetMapping
- @PostMapping
- @Transactional
- @Qualifier
- 使用在方法上的注解
- 表格:使用在方法上的注解
- @RequestBody
- @PathVariable
- @Bean
- @ResponseBody
- @PreAuthorize
- 其他常用注解
- 表格:其他常用注解
- @EnableAutoConfiguration
- @SpringBootApplication
- @EnableScheduling
- @EnableAsync
- @ComponentScan
- @Aspec
- @ControllerAdvice
- @ExceptionHandler
- @Value
- @ConfigurationProperties
- @EnableConfigurationProperties
- @MapperScan
- @ApiOperation
- Validator验证的常用注解
- spring IoC容器
- Spring IoC容器依赖注入实现方式
- MyBatis
- paginationInterceptor
- @TableName
- @TableId
- @Param
- UrlBasedCorsConfigurationSource
- Lombok
- @Data
- @Slf4j
- @EqualsAndHashCode
- @Accessors
- 支付系统
- 1. 初始化mysql数据库流程
- 2. 初始化redis数据库的流程
- 3. 初始化rabbitmq服务
- 环球置业
- 1.模块目录结构分析
- 2. DTO(数据传输层)的核心作用
- 3. VO(视图对象层)
- 4. VO(视图对象层)和 DTO 数据传输层 的区别
