system类的 静态方法可以启动垃圾回收器。_Java—System类入门学习
生活随笔
收集整理的這篇文章主要介紹了
system类的 静态方法可以启动垃圾回收器。_Java—System类入门学习
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第三階段 JAVA常見對象的學習
System類
System類包含一些有用的字段和方法,他不能被實例化
//用于垃圾回收public static void gc()?//終止正在運行的java虛擬機。參數用作狀態碼,根據慣例,非0表示異常終止public static void exit(int status)?//System.out.println(System.currentTimeMillis());//返回從1970年1月1日到現在時間的毫秒數(協調時間)public static currentTimeMills()?public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)//src - 源數組。 //srcPos - 源數組中的起始位置。 //dest - 目標數組。 //destPos - 目的地數據中的起始位置。 //length - 要復制的數組元素的數量。arraycopy方法的使用案例
int[] arr = {11, 22, 33, 44, 55};int[] arr2 = {6, 7, 8, ,9 ,10};System.arraycopy(arr, 1, arr2, 2, 2);System.out.println(Arrays.toString(arr));System.out.println(Arrays.toString(arr2));?//運行結果[11, 22, 33, 44, 55][6, 7, 22, 33, 10]currentTimeMills()使用案例
package cn.bwh_02_currenTimeMillis;?public class SystemDemo {public static void main(String[] args) {//統計這段程序運行時間long start = System.currentTimeMillis();for (int x = 0; x < 10000; x++){System.out.println("Hello" + x);}long end = System.currentTimeMillis();System.out.println("共耗時" + (end - start) + "毫秒");}}?//運行結果Hello9997Hello9998Hello9999共耗時79毫秒System.gc() 可用于垃圾回收.當使用System.gc() 回收某個對象所占用的內存之前,通過要求程序調用適當的方法來清理資源,在沒有明確指定資源清理的情況下,Java提高了默認機制來清理該對象的資源,就是調用object類的finalize()方法,finalize()方法的作用是釋放一個對象占用的內存空間時會被JVM調用.而子類重寫該方法, 就可以清理對象占用的資源,該方法沒有鏈式調用, 所以必須手動實現。
從程序結果上可以發現執行system.gc() 前系統會自動調用finalize() 方法清除對象占有的資源。通過super.finalize()可以實現從下到上的方法調用,即先釋放自己的資源,再釋放父類的資源。
但是不要在程序中頻繁的調用垃圾回收,因為每一次執行垃圾回收jvm都會強制啟動垃圾回收器運行,就會耗費更多的系統資源會與正常的Java程序運行爭搶資源,只有在執行大量的對象的釋放才調用垃圾回收最好。
package cn.bwh_01_gc;?public class Student {private String name;private int age;?public Student() {}?public Student(String name, int age) {this.name = name;this.age = age;}?@Overrideprotected void finalize() throws Throwable {System.out.println("當前對象被回收了" + this);super.finalize();}}package cn.bwh_01_gc;?public class GcDemo {public static void main(String[] args) {Student s = new Student("admin", 20);System.out.println(s);?//讓s不再指定堆內存,成為了垃圾s = null;System.gc();}}?//運行結果cn.bwh_01_gc.Student@1b6d3586當前對象被回收了cn.bwh_01_gc.Student@1b6d3586結尾:
如果內容中有什么不足,或者錯誤的地方,歡迎大家給我留言提出意見, 蟹蟹大家 !^_^
如果能幫到你的話,那就來關注我吧!(系列文章均會在公眾號第一時間更新)
在這里的我們素不相識,卻都在為了自己的夢而努力 ?一個堅持推送原創Java技術的公眾號:理想二旬不止
總結
以上是生活随笔為你收集整理的system类的 静态方法可以启动垃圾回收器。_Java—System类入门学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PPT怎么绘制时间线展示重要的时间段?
- 下一篇: 20个复古风格的网站设计