根据提供的文档信息,我们可以整理出一系列与Java编程相关的知识点,这些知识点主要涵盖了基本的数据类型、面向对象特性、异常处理、字符串操作、集合框架、多线程管理等方面的内容。接下来,我们将详细阐述这些知识点。
### 1. Java 数据类型内存占用
- **整型数据类型内存占用**:
- `int` 类型的数据在内存中占用 **4 个字节**。
- `short` 类型的数据在内存中占用 **2 个字节**。
- **注意**:`long` 类型的数据在内存中实际占用 **8 个字节** 而不是题目中的 16 个字节。
- `byte` 类型的数据在内存中占用 **1 个字节**。
### 2. 面向对象的特点
- **继承性**:子类可以继承父类的属性和方法。
- **多态性**:一个接口可以有不同的实现方式。
- **封装性**:隐藏对象的具体实现细节,仅暴露必要的接口。
- **稳定性** 不是面向对象的基本特性之一。
### 3. 变量命名规则
- 变量名 **不能使用 Java 关键字**(如 `int`)。
- 变量名可以使用下划线 `_` 和美元符号 `$`。
- 变量名 **区分大小写**。
- 示例错误变量名:`int`(关键字不可用作变量名)。
### 4. 关于 `final` 关键字
- **final** 可用于定义常量。
- 子类不能重写父类的 `final` 方法。
- **不能通过继承的方式来建立一个 final 类的子类**。
- 定义为 `final` 的方法有助于提高程序性能,因为它表明该方法不会被修改。
### 5. 访问控制关键字
- **public**:可以被任何地方访问。
- **private**:只能在定义它的类内部访问。
- 如果没有显式指定访问级别,则默认为 **package-private**(即同一包内的类可以访问)。
- **protected**:可以在同一个包或者不同包的子类中访问。
### 6. 异常处理
- 异常是在运行时代码序列中产生的一种异常情况。
- **异常不是运行时错误**,而是程序设计时可以预见但无法避免的情况。
- 需要监控的程序代码应写在 **try 块** 中。
- 过多使用 `try...catch` 会降低程序的运行性能。
### 7. 字符串操作
- Java 中用于拆分字符串的方法是 **`split()`**。
### 8. 包装类
- `int` 类型的包装类是 **`Integer`**。
### 9. 关于 `static` 关键字
- 表示 **静态** 属性或方法。
- **不能用来创建对象**。
- `static` 修饰的属性由所有对象共享。
- `static` 方法不能直接访问非 `static` 属性。
### 10. 数组长度获取
- 使用 **`length` 属性** 获取数组长度。
### 11. 构造方法
- 构造方法不需要指定返回值类型。
- 构造方法可以使用 `private` 修饰。
- 构造方法可以带参数。
- 构造方法 **可以有参数** 并且可以是私有的或受保护的。
### 12. 继承和接口
- 在 Java 中只允许 **单一继承**。
- 一个类可以实现多个接口。
- 一个类可以同时继承一个类并实现一个或多个接口。
### 13. 集合框架
- **Set** 集合不允许重复元素。
- `Map` 和 `List` 可能包含重复元素。
- `Vector` 是 `List` 的实现之一。
### 14. 多线程管理
- 调用对象的 **`wait()`** 方法可以直接导致线程被暂停执行。
- 从同步块返回或调用 `notify()`/`notifyAll()` 方法会释放锁,并不一定立即终止线程。
### 15. 导入包
- 使用 **`import a.b.c.*;`** 语句可以导入 `a.b.c` 包下的所有类,但不包括子包。
### 16. 对象互斥锁
- 使用 **`synchronized`** 关键字可以实现对象级别的互斥锁。
### 17. 线程间通信
- **`sleep()`** 方法可以在任何时候被任何线程调用以使当前线程暂停指定的时间。
### 18. List 集合
- `List` 允许存储相同的元素。
- `Vector` 是 `List` 的子类之一。
### 19. 多线程状态
- 线程的状态变化包括新生、可运行、运行、阻塞和死亡等。
- 一个线程可能在不同的状态下切换,而不是一直保持运行状态。
### 20. Socket 编程
- 创建一个客户端 Socket 对象时,可以使用 **`InetAddress.getLocalHost()`** 获取本地主机地址。
以上知识点涵盖了Java编程中的基本概念和技术要点,对于深入理解Java语言及其实现具有重要意义。