在我的程序中,我需要跟踪打开的连接列表到某个HTTP服务器-以便在需要时立即断开它们。
我遇到了以下问题。如果我连接到HTTP服务器,一切都很完美,但如果连接到HTTPS,则连接不会从列表中删除。这会导致内存泄漏。
例如:
如果URL指向“http://www.example.com”,则“删除结果= true”。
但是,如果URL指向“https://www.example.com”,则“删除结果= false”。
我不理解这样的行为。我有一些假设,但不确定...
有人能帮忙吗?
我遇到了以下问题。如果我连接到HTTP服务器,一切都很完美,但如果连接到HTTPS,则连接不会从列表中删除。这会导致内存泄漏。
例如:
package test;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
try {
ArrayList<URLConnection> al = new ArrayList<URLConnection>();
URL url = new URL("http://www.example.com");
URLConnection conn = url.openConnection();
al.add(conn);
System.out.println("Result of removing = " + al.remove(conn));
} catch (Exception ex) {
ex.printStackTrace(System.err);
}
}
}
如果URL指向“http://www.example.com”,则“删除结果= true”。
但是,如果URL指向“https://www.example.com”,则“删除结果= false”。
我不理解这样的行为。我有一些假设,但不确定...
有人能帮忙吗?