Java基础·第2篇:数据类型(基本+引用)和输入输出(Scanner)
引入
Java数据类型分为基本数据类型和引用数据类型。本文整理了8种基本数据类型的表格,用“藏宝图”讲清引用数据类型。后半部分介绍Java的输入输出:System.out和Scanner的用法。
Java的数据类型
一、基本数据类型
为了让你一目了然,我将这8种基本数据类型整理成了如下表格,涵盖了它们的存储大小、取值范围及核心特性。
| 数据类型 | 关键字 | 占用空间 | 取值范围 | 默认值 | 核心特性与注意事项 |
|---|---|---|---|---|---|
| 字节型 | byte |
1字节 | -128 ~ 127 | 0 | 节省内存,常用于文件IO或网络传输。 |
| 短整型 | short |
2字节 | -32,768 ~ 32,767 | 0 | 较少直接使用,用于特定内存优化场景。 |
| 整型 | int |
4字节 | 约±21亿 | 0 | 最常用的整数类型,默认整数字面量。 |
| 长整型 | long |
8字节 | 约±922亿亿 | 0L | 存储超大整数,赋值时数值后需加L。 |
| 单精度浮点 | float |
4字节 | 约±3.4E38 | 0.0f | 精度较低(6-7位有效数字),赋值需加F。 |
| 双精度浮点 | double |
8字节 | 约±1.8E308 | 0.0d | 最常用的小数类型,默认浮点字面量。 |
| 字符型 | char |
2字节 | 0 ~ 65,535 | ‘\u0000’ | 采用Unicode编码,支持中文,用单引号。 |
| 布尔型 | boolean |
未定义* | true / false | false | 仅用于逻辑判断,不可与数字互转。 |
注:boolean类型在JVM规范中未明确规定大小,通常视具体实现而定,但在数组中通常占1字节。
二、引用数据类型
与上述直接存储数值的基本类型不同,引用数据类型存储的是数据在内存中的“地址”。你可以把它理解为一张“藏宝图”,变量手里拿的不是宝藏(数据)本身,而是指向宝藏埋藏地点(堆内存)的坐标。
最常见的引用类型包括:
- 类:如
String、自定义的对象。虽然String的使用看起来和基本类型很像,但它本质上是一个包含字符数组的复杂对象。 - 接口:如
List、Map等,它们定义了规范,实际存储的是实现类的对象地址。 - 数组:用于存储一组相同类型的数据,变量存储的是数组首地址。
以C语言为例,数组名就是指向第一个元素的指针。你定义一个数组int arr[3] = {1,2,3},arr本身存的是地址,不是那三个数。你把arr赋值给另一个变量,两个变量指向同一块内存。
Java的数组和C的指针本质是一样的——存地址。只是Java不让你做指针运算,也不叫“指针”,叫“引用”。
输入与输出
一、标准输出:与用户对话
程序运行后,我们需要看到结果。Java通过System.out对象来实现标准输出。
- 基础输出:
print()方法输出后不换行,光标停留在末尾;println()则会在输出后自动换行,这是最常用的方式。
1 | System.out.print("Hello World!"); |
- 格式化输出:如果你需要像财务报表那样精准控制格式(例如保留两位小数),可以使用
printf()。它使用占位符,和C语言和格式控制差不多,如%d代表整数,%.2f代表保留两位小数的浮点数,%s代表字符串。
二、标准输入:获取外部数据
为了让程序具有交互性,我们需要从控制台获取用户的输入。Java提供了java.util.Scanner类来处理这一需求。
使用流程:
- 导包:
import java.util.Scanner; - 创建对象:
Scanner sc = new Scanner(System.in); - 调用方法:根据需要的数据类型调用相应方法,如
nextInt()(整数)、nextDouble()(小数)、next()(字符串,遇空格停止)或nextLine()(整行字符串)。
最后的话
好了,关于Java数据类型和输入输出的分享就先到这里。
别急着一下子全记住,编程是一场马拉松,而不是百米冲刺。试着多动手敲几遍代码,当你在控制台成功输入并打印出结果的那一刻,你会发现这一切都是值得的。
保持好奇,多动手尝试,感谢您的查阅!我们下一篇博客见!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 七夏的树洞🐿️!





