基础语法与结构相关术语
| 中文名词 | 英文全称 | 缩写/简称 | 说明 |
|---|---|---|---|
| 类 | Class | 定义对象的模板,包含属性和方法(如 public class MyClass {}) |
|
| 对象 | Object | 类的实例化结果(通过 new 关键字创建,MyClass obj = new MyClass();) |
|
| 方法 | Method | 类中的行为逻辑单元,对应C语言中的函数(如 void display(){...}) |
|
| 构造函数 | Constructor | 特殊的方法名与类名相同,用于初始化新对象(无返回类型) | |
| 成员变量/字段 | Field / Member Variable | 类或对象的状态数据存储位置(如 private int age;) |
|
| 局部变量 | Local Variable | 方法内部声明的临时变量(作用域仅限当前代码块) | |
| 静态变量 | Static Field | static | 属于类而非实例共享的属性(使用 static 修饰符声明) |
| 常量 | Constant | final | 不可修改的值(通过 final 关键字定义,如 final double PI = 3.14;) |
| 接口 | Interface | 抽象类型的规范集合,仅能包含抽象方法和默认方法(实现多继承效果) | |
| 抽象类 | Abstract Class | abstract | 允许部分方法未实现的基类,子类必须重写其抽象方法才能实例化 |
| 继承 | Inheritance | extends | 子类获取父类属性和方法的机制(单根继承树结构) |
| 多态性 | Polymorphism | 同一消息根据接收者的不同产生不同行为的能力(编译时类型 vs 运行时类型) | |
| 重载 | Overloading | 同一作用域内方法名相同但参数列表不同的多个定义共存 | |
| 覆盖/重写 | Overriding | @Override | 子类重新实现父类中已存在的方法(需保持相同的签名) |
| 包 | Package | Java源文件的组织单位(对应文件系统的目录结构,如 import java.util.;) |
|
| 访问修饰符 | Access Modifiers | public/protected/private/default | 控制类、方法和变量可见性的关键词 |
数据类型与运算体系
原始类型(Primitive Types)
| 类型 | 关键字 | 默认值 | 占用字节数 | 典型用途 |
|---|---|---|---|---|
| 整型 | byte | (byte)0 | 1 | 处理微小整数(范围 -128~127) |
| short | (short)0 | 2 | 短整数存储 | |
| int | 0 | 4 | 通用整型计算 | |
| long | 0L | 8 | 大数值场景(如时间戳) | |
| 浮点型 | float | 0f | 4 | 单精度科学计算 |
| double | 0d | 8 | 双精度高精度需求 | |
| 布尔型 | boolean | false | 逻辑判断标志位 | |
| 字符型 | char | ‘u0000’ | 2 | Unicode编码单个字符 |
✅ 注意:原始类型不属于任何类层次结构,但包装类(Wrapper Class)如
Integer,Double提供了对象化的封装。
引用类型(Reference Types)
包括所有非原始类型的实体:数组(Array)、类(Class)、接口(Interface)、枚举(Enum)、注解(Annotation)等,它们都继承自根类 Object。
异常处理机制
| 术语 | 英文表述 | 功能描述 | 示例代码片段 |
|---|---|---|---|
| 异常 | Exception | 程序运行错误的事件通知 | try { ... } catch (IOException e) {} |
| 错误 | Error | JVM严重故障(通常不可恢复) | OutOfMemoryError, StackOverflowError |
| 运行时异常 | Unchecked Exception | 无需显式捕获的派生自RuntimeException的子类 | NullPointerException, ArrayIndexOutOfBoundsException |
| 受检异常 | Checked Exception | 必须用try-catch处理或声明抛出 | SQLException, FileNotFoundException |
| 自定义异常 | User-defined Exception | 根据业务需求扩展的标准异常类 | class MyCustomException extends Exception {} |
集合框架核心组件
顶层接口与实现类对比表
| Collection类型 | 接口定义 | 常用实现类 | 特点 |
|---|---|---|---|
| List | java.util.List | ArrayList, LinkedList, Vector | 有序、可重复元素序列 |
| Set | java.util.Set | HashSet, TreeSet, LinkedHashSet | 无序且唯一元素的数学集合模型 |
| Map | java.util.Map | HashMap, TreeMap, LinkedHashMap | 键值对映射结构,允许null键(除TreeMap外) |
| Deque | java.util.Deque | ArrayDeque, ConcurrentLinkedDeque | 双端队列支持头部/尾部插入删除操作 |
迭代器模式应用
Iterator<String> iter = list.iterator();
while(iter.hasNext()){
System.out.println(iter.next()); // 安全遍历避免ConcurrentModificationException
}
⚠️ 重要区别:
fail-fast机制会在并发修改时抛出异常,而CopyOnWriteArrayList采用写时复制策略保证线程安全。
多线程编程关键概念
| 概念 | 英文术语 | 作用说明 | 典型API调用方式 |
|---|---|---|---|
| 线程 | Thread | OS调度的基本执行单元 | new Thread().start(); |
| Runnable接口 | Runnable | 任务与执行解耦的设计模式 | new Thread(new MyRunnable()).start(); |
| Callable接口 | Callable | 支持返回值的任务提交给ExecutorService | Future<Integer> future = executor.submit(task); |
| 锁机制 | Lock | ReentrantLock实现互斥访问共享资源 | Lock lock = new ReentrantLock(); lock.lock(); ... lock.unlock(); |
| 条件变量 | Conditions | await/signal机制协调生产者消费者模型 | Condition condition = lock.newCondition(); condition.await(); |
| 原子操作类 | AtomicXXX | CAFE原则下的无锁算法实现 | AtomicInteger counter = new AtomicInteger(); counter.getAndIncrement(); |
JVM内存区域划分
| 内存区块 | 英文名称 | 垃圾回收影响范围 | |
|---|---|---|---|
| 方法区 | Method Area | 类元信息、静态变量、常量池 | 随ClassLoader卸载而释放 |
| 堆 | Heap | 对象实例、数组分配空间 | Minor/Major GC重点扫描区域 |
| 栈 | Stack | 线程私有的局部变量、操作数栈帧 | Young Generation快速回收策略 |
| PC寄存器 | Program Counter Register | 当前执行指令地址指示器 | 无影响 |
| Native方法栈 | Native Method Stack | JNI调用本地库时的过渡区域 | 不受GC管理 |
💡 调优技巧:通过
-Xms和-Xmx参数调整堆初始/最大容量,使用-XX:+UseG1GC启用G1收集器优化混合负载场景性能。
常用开发工具链术语对照表
| 工具名称 | 官方定位 | 主要功能模块 | 典型命令行用法 |
|---|---|---|---|
| Maven | Dependency Management Tool | POM文件解析、仓库配置、生命周期管理 | mvn clean install -DskipTests |
| Gradle | Build Automation System | Groovy脚本构建脚本、增量编译优化 | gradle build --refresh-dependencies |
| Ant | Classic Build Tool | XML格式构建流程定义 | ant jar -Dbuild.compiler.argline="..." |
| IntelliJ IDEA | Java IDE | Smart Code Completion、Profiler集成 | idea.exe启动后导入项目即可 |
| JUnit | Unit Testing Framework | 断言机制、测试套件组织 | @Test void testAddition(){...} |
| Selenium | Web Automation Tool | Browser驱动模拟用户交互 | WebDriver driver = new ChromeDriver(); |
FAQs(常见问题解答)
Q1: Java中的接口能否包含静态方法?如何调用?
A: 自Java 8起,接口允许定义默认方法(使用default关键字)和静态方法,静态方法属于接口自身而非实例,可直接通过接口名调用。
interface MathUtils {
static int add(int a, int b){ return a + b; }
}
// 调用方式:MathUtils.add(3,5); // 结果为8
这种设计既保持向后兼容性,又扩展了接口的功能边界。
Q2: String是不可变的(immutable),那为什么还能进行拼接操作?
A: String对象的不可变性体现在任何修改都会生成新的对象,当执行str1 += "abc"时,JVM实际创建了一个新的String实例指向拼接后的结果,原字符串仍保留在常量池中,若频繁修改建议改用StringBuilder或StringBuffer(线程安全版),前者在单线程环境下性能更优。

StringBuilder sb = new StringBuilder("Hello");
sb.append(" World!"); // 内部维护可变字符数组,避免重复创建对象
String result = sb.toString(); // 最终转换为
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/117542.html