樂字節Java|GC垃圾回收機制、package和import語句

本文接上一篇:樂字節Java|this關鍵字、static關鍵字、block塊。本文是接着講述JavaGC垃圾回收機制、package 和 import語句。
圖片描述java

1、GC垃圾回收機制

GC全名:Garbage Collection 垃圾回收機制程序員

程序員無權調用垃圾回收器。sql

程序員能夠經過System.gc()。通知GC運行,可是JAVA規範並不能保證馬上運行。數據庫

finalize方法,是JAVA提供給程序員用來釋放對象或資源的方法,可是儘可能少用。
圖片描述網絡

GC回收的三種基本方式工具

一、標記-清除

  標記存活對象,清理其餘垃圾對象(陰影爲存活對象,空白爲垃圾對象)。this

  優勢:效率高spa

  缺點:產生碎片,使內存分佈碎片化,形成內存空間不連續。若出現大的對象,內存空間不連續則難以存取
圖片描述.net

二、標記-整理

  標記存活對象,清除垃圾對象,對垃圾對象進行整理。3d

  優勢:沒有碎片

   缺點:效率低
圖片描述

三、複製

 在內存中分配兩塊內存,將標記的存活對象複製到另外一塊內存當中,再將原內存的對象清除。

  優勢:效率高

  缺點:浪費內存
圖片描述

2、package 和 import語句

爲了便於管理大型軟件系統中數目衆多的類,解決類的命名衝突問題,Java引入包(package)機制,提供類的多重類命名空間。

通常的命名爲:公司域名倒寫+功能名|模塊名。

package語句做爲Java源文件的第一條語句,指明該文件中定義的類所在的包。(若缺省該語句,則指定爲無名包)。

格式:package com.shsxt.test; → package pkg1[.pkg2[.pkg3…]];

Java編譯器把包對應於文件系統的目錄管理,package語句中,用’.’來指明包(目錄)的層次,例如使用語句: package com.shsxt ,則該文件中全部的類位於.comshsxt 目錄下

注意:不要定義與jdk相同的包,相同的類, 不然會引發不少你以爲莫名其妙的問題

若是一個類存在包名,則在使用該類時,必須使用全額限定名(簡稱全名或完整類名,com.shsxt.MyClass),編譯器才能找到該類;也可使用import在文件的開頭引入要使用到的類。

不須要使用import的類有:

語言包 (java.lang)下的類
同包下的類
靜態導入:

import語句不只能夠導入類,還增長了導入靜態方法的功能。

3、總結

若是想將一個類放入包中,在類的源文件首行使用package

必須保證該類的class文件位於正確的目錄下

另外的類想訪問的話:

一、寫全名

二、引入

1)、* 模糊匹配(會將該包下全部用到的類引入進來),會下降編譯速度,可是不會影響運行速度。

2)、具體類名。

三、同包下的類不須要導入。

JDK中經常使用的包簡單介紹:

①java.lang –語言包:語言中經常使用的功能,如String、Math、System、Integer、Thread…

②java.util – 工具包:提供一些實用的工具類,如 容器(List、Set、Map…),日期類

③java.io – 輸入輸出包:提供操做讀取文件的相關類,如File、InputStream、OutputStrem…

④java.net – 網絡包:操做遠程資源的類,如InetSocketAddress、 DatagramPacket 、ServerSocket…

⑤java.sql – 數據庫包:操做JDBC的類,Connection、Statement、ResultSet….

歡迎關注樂字節,Java相關技術文章乾貨持續更新。

相關文章
相關標籤/搜索