摘要:第三階段常見對象的學習類類包含一些有用的字段和方法,他不能被實例化用于垃圾回收終止正在運行的虛擬機。參數用作狀態碼,根據慣例,非表示異常終止返回從年月日到現在時間的毫秒數協調時間源數組。
第三階段 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) + "毫秒"); } } //運行結果 Hello9997 Hello9998 Hello9999 共耗時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; } @Override protected 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技術的公眾號:理想二旬不止
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77779.html
摘要:時間年月日星期日說明本文部分內容均來自慕課網。慕課網教學示例源碼無個人學習源碼第一章課程概述課程介紹課程須知本課程面向所有使用語言進行開發的小伙伴。 時間:2017年05月21日星期日說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學示例源碼:無個人學習源碼:https://github.com/zccodere/s... 第一章:課程概述 1-1 ...
摘要:最近聽很多面試的小伙伴說,網上往往是一篇一篇的多線程的文章,除了書籍沒有什么學習多線程的一系列文章。將此線程標記為線程或用戶線程。 最近聽很多面試的小伙伴說,網上往往是一篇一篇的Java多線程的文章,除了書籍沒有什么學習多線程的一系列文章。但是僅僅憑借一兩篇文章很難對多線程有系統的學習,而且面試的時候多線程這方面的知識往往也是考察的重點,所以考慮之下決定寫一系列關于Java多線程的文章...
摘要:返回的是是一個整數的最小值。筆記這個構造函數的結果可能有些不可預測。這是因為不能像或者作為任何有限長度的二進制分數精確地表示。當必須用作源為,注意,此構造提供了一個精確的轉換它不會將轉換為使用方法,然后使用構造函數相同的結果。 第三階段 JAVA常見對象的學習 BigInteger和BigDecimal類 BigInteger類 (一) 構造方法: //針對超過整數范圍的運算(整數最大...
摘要:如果我們想要多次輸出類中的成員信息,就需要多次書寫方法每用一次就得寫而調用就簡單多了補充兩者等價輸出結果。注一般選擇重寫方法,比較對象的成員變量值是否相同,不過一般重寫都是自動生成。 第三階段 JAVA常見對象的學習 第一章 常見對象——Object類 引言: 在講解Object類之前,我們不得不簡單的提一下什么是API,先貼一組百度百科的解釋: API(Application Pro...
閱讀 1767·2023-04-26 01:44
閱讀 1209·2021-11-12 10:34
閱讀 1578·2021-09-09 09:33
閱讀 1728·2019-08-30 15:44
閱讀 2892·2019-08-30 13:49
閱讀 2189·2019-08-29 15:26
閱讀 942·2019-08-26 13:30
閱讀 1409·2019-08-23 18:15