Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 这段代码会创建比I';你明确创建了什么?_Java_Memory Management_Memory Leaks_Jvm - Fatal编程技术网

Java 这段代码会创建比I';你明确创建了什么?

Java 这段代码会创建比I';你明确创建了什么?,java,memory-management,memory-leaks,jvm,Java,Memory Management,Memory Leaks,Jvm,据我所知,我只创建了两个字符串类型的对象,但我对我的java内存管理知识不是很有信心。顺便说一句,shouldlrun总是正确的,这个线程负责收集与之共享JVM的应用程序的一些性能数据 我已经更新了代码,此线程的目的是保持运行并测量(尝试)安全点暂停。无法判断,因为您发布的代码没有明确范围 通常我认为开始和结束时间都很长,而不是字符串。在这种形式下没有用处;例如,无法计算持续时间 垃圾回收器会自动清理您使用完的所有内存(除非您做了一些让垃圾回收器感到困惑的事情,例如保留不需要的引用) 在本例末尾

据我所知,我只创建了两个字符串类型的对象,但我对我的java内存管理知识不是很有信心。顺便说一句,
shouldlrun
总是正确的,这个线程负责收集与之共享JVM的应用程序的一些性能数据


我已经更新了代码,此线程的目的是保持运行并测量(
尝试
)安全点暂停。

无法判断,因为您发布的代码没有明确范围


通常我认为开始和结束时间都很长,而不是字符串。在这种形式下没有用处;例如,无法计算持续时间

垃圾回收器会自动清理您使用完的所有内存(除非您做了一些让垃圾回收器感到困惑的事情,例如保留不需要的引用)


在本例末尾,您有两个
String
引用,您已经创建了两个字符串并将它们放在这些引用中。任何其他使用过的东西都会为您整理。

为什么它会“泄漏内存”?Java使用垃圾收集器,“内存泄漏”是指你保留不需要的对象,你根本不需要循环中的格式化时间。在事前和事后制作它们。
String startTime, endTime;
startTime = simpleDateFormat.format(Calendar.getInstance(TimeZone.getTimeZone(UTC_TIMEZONE)).getTime()); 
long time1 = System.nanoTime();

while (shouldRun) {
   endTime = simpleDateFormat.format(Calendar.getInstance(TimeZone.getTimeZone(UTC_TIMEZONE)).getTime());

   long time2 = System.nanoTime();
   long pause = time2 - time1;

   if (pause > threshold) {
       LOG.info("Delay : {} ", pause);
   }

   time1 = time2;
   startTime = endTime
}