`TCPConnection::~TCPConnection()` 是 C++ 中的析构函数(destructor),在 Java 中没有完全对应的语法,最接近的是以下几种方式: 1. Java 的 `finalize()` 方法(但不建议使用,Java 9 后已废弃): ```java class TCPConnection { @Override protected void finalize() throws Throwable { // 清理代码 super.finalize(); } } ``` 1. Java 中更推荐的方式是实现 `AutoCloseable` 或 `Closeable` 接口: ```java class TCPConnection implements AutoCloseable { @Override public void close() throws Exception { // 清理代码,相当于 C++ 析构函数的功能 if (isActive()) { System.err.println("Warning: Unclean shutdown of TCPConnection"); // ... 清理代码 } } } ``` 然后使用 try-with-resources 语句: ```java try (TCPConnection conn = new TCPConnection()) { // 使用连接 } // 自动调用 close() ``` 主要区别: 1. C++ 的析构函数(~TCPConnection): - 在对象被销毁时自动调用 - 不需要显式调用 - 用于自动释放资源 2. Java 的资源管理: - 需要手动实现 close() 方法 - 通常配合 try-with-resources 使用 - 垃圾回收器负责最终的内存清理 这就像: - C++:自动清理的保洁员(离开房间时自动打扫) - Java:需要你主动叫保洁(需要显式调用 close),但有 try-with-resources 这样的便利工具