4.10Java课堂笔记
1. 标识符与关键字
标识符:用来命名变量、方法、类的字符序列。规则:
由字母、数字、下划线
_、美元符号$组成,数字不能开头。不能是Java关键字(如
class、int、public等)。大小写敏感,长度无限制。
规范:类名首字母大写(大驼峰),变量和方法名首字母小写(小驼峰),常量全部大写加下划线。
关键字:Java预留的具有特殊意义的单词,例如
class、public、static、void、int等。不能用作标识符。
2. 基本数据类型(8种)
Java的数据类型分为基本类型和引用类型。基本类型是语言内置的、不可再分的简单数据。
| 类型 | 关键字 | 占用字节 | 取值范围/说明 | 默认值 |
|---|---|---|---|---|
| 逻辑 | boolean | 1(实际依赖JVM) | true / false | false |
| 字节 | byte | 1 | -128 ~ 127 | 0 |
| 短整型 | short | 2 | -32768 ~ 32767 | 0 |
| 整型 | int | 4 | 约±21亿 | 0 |
| 长整型 | long | 8 | 很大(19位数字) | 0L |
| 字符 | char | 2 | Unicode字符(0~65535) | '\u0000' |
| 单精度浮点 | float | 4 | 有效位数6~7位 | 0.0f |
| 双精度浮点 | double | 8 | 有效位数15~16位 | 0.0 |
注意:
整数字面量默认是
int,要表示long需加L或l(推荐L)。小数字面量默认是
double,要表示float需加F或f。char使用单引号,如'A';字符串使用双引号"Hello"。
3. 从命令行输入数据(Scanner类)
Scanner是Java提供的方便读取用户输入的类,位于java.util包中。使用时需要先导入。
java
import java.util.Scanner; public class InputDemo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入一个整数:"); int n = sc.nextInt(); // 读取整数 System.out.print("请输入一个浮点数:"); double d = sc.nextDouble(); // 读取浮点数 System.out.print("请输入一个单词:"); String word = sc.next(); // 读取下一个以空白分隔的字符串 sc.nextLine(); // 消耗掉换行符 System.out.print("请输入一行文字:"); String line = sc.nextLine(); // 读取一整行(包括空格) System.out.println("您输入的是:" + n + ", " + d + ", " + word + ", " + line); sc.close(); // 关闭Scanner,释放资源 } }注意:nextInt()、nextDouble()等方法不会读取后面的换行符,如果之后调用nextLine()会得到一个空串,需要先调用一次sc.nextLine()消耗掉换行符。
4. 输出基本型数据
System.out.print():不换行输出。System.out.println():输出后换行。System.out.printf():格式化输出,类似于C语言。java
System.out.printf("整数:%d,浮点数:%.2f", n, d);
5. 数组
数组是一种引用类型,用于存储固定大小的同类型数据序列。
声明数组:
int[] a;或int a[];推荐第一种。创建数组:
a = new int[5];创建后所有元素被赋予默认值(0)。声明并创建:
int[] a = new int[5];初始化:
int[] a = {1, 2, 3, 4, 5};(只能在声明时使用这种静态初始化)。使用数组:通过索引访问,索引从0开始,如
a[0] = 10;length属性:
a.length返回数组长度,它是属性而不是方法(没有括号)。数组的引用:数组名存储的是数组在堆内存中的地址,因此数组是引用类型。将一个数组变量赋值给另一个,它们会指向同一块内存。
java
int[] a = {1,2,3}; int[] b = a; // b和a引用同一个数组 b[0] = 100; System.out.println(a[0]); // 输出100
6. 数组的排序与二分查找
java.util.Arrays类提供了许多实用方法。
排序:
Arrays.sort(a);对数组进行升序排序(快速排序或归并排序变体)。二分查找:要求数组已经排好序,
int index = Arrays.binarySearch(a, key);返回索引,如果找不到返回负数(插入点负值-1)。
java
int[] arr = {5, 2, 8, 1, 9}; Arrays.sort(arr); // arr变为[1,2,5,8,9] int pos = Arrays.binarySearch(arr, 5); // pos = 2其他方法:
Arrays.toString(arr)返回数组的字符串表示;Arrays.fill(arr, 0)将数组所有元素填充为0。
7. 枚举类型(enum)
枚举用于定义一组常量,使代码更清晰、类型更安全。
java
enum Color { RED, GREEN, BLUE } public class EnumDemo { public static void main(String[] args) { Color c = Color.RED; switch(c) { case RED: System.out.println("红色"); break; case GREEN: System.out.println("绿色"); break; case BLUE: System.out.println("蓝色"); break; } // 遍历所有枚举值 for (Color col : Color.values()) { System.out.println(col); } } }枚举可以有自己的属性和方法,但初学阶段掌握基本用法即可。
8. 小结
基本数据类型存储值,引用类型存储地址。
数组一旦创建,长度固定,不能改变。
使用
Scanner时注意处理换行符残留问题。枚举让常量集合更加规整,适合用在状态、选项等场景。
