我有一个ArrayList l1大小10.我分配l1给新列表引用类型l2.威尔l1和l2指向同一个ArrayList对象吗?或者是ArrayList分配给的对象的副本l2?
使用l2引用时,如果我更新列表对象,它也会反映l1引用类型中的更改.
例如:
List<Integer> l1 = new ArrayList<Integer>();
for (int i = 1; i <= 10; i++) {
l1.add(i);
}
List l2 = l1;
l2.clear();
Run Code Online (Sandbox Code Playgroud)
除了创建2个列表对象以及对从旧到新的集合进行复制之外,没有其他方法可以将列表对象的副本分配给新的引用变量吗?
我有在linux中运行的J2SE应用程序.我已停止应用程序脚本,我正在杀死J2SE pid.这个J2SE应用程序有6个无限运行的用户线程,它们将轮询后端数据库中的某些特定记录.
当这个java pid被杀死时,我需要为每个长时间运行的线程执行一些清理操作,比如连接到DB并设置正在进行中的某些事务的状态为空.
有没有办法在每个线程中编写一个方法,JVM将在线程停止时调用该方法.
我在RHEL OS中的1.5 java VM中运行J2SE应用程序.该应用程序的任务之一是在启动期间创建3个无限运行的用户线程.目的是检查后端数据库表中特定类型的请求并执行相应的操作.
正如我们观察到的那样,长时间运行的线程突然停止运行,但仍然可以看到应用程序处于活动状态并且可以看到JVM进程,在ps -ef | grep java
有人可以说明为什么创建的线程在无限循环中运行会突然停止吗?有关如何检测此问题和可能的解决方案的任何想法都将有很大帮助
问候,克里希纳