java基礎-005

来源:http://www.cnblogs.com/lrh-xl/archive/2016/03/30/5335420.html
-Advertisement-
Play Games

27.Java中垃圾回收的目的及回收的時機 垃圾回收的目的是識別並且丟棄不再使用的對象來釋放和重用資源. 如果對象的引用被置為null,垃圾收集器不會立即釋放對象占用的記憶體. 什麼時候進行垃圾回收,主要取決於JVM.可以參考 http://www.cnblogs.com/lrh-xl/p/52924 ...


 27.Java中垃圾回收的目的及回收的時機

  垃圾回收的目的是識別並且丟棄不再使用的對象來釋放和重用資源.

  如果對象的引用被置為null,垃圾收集器不會立即釋放對象占用的記憶體.

  什麼時候進行垃圾回收,主要取決於JVM.可以參考 http://www.cnblogs.com/lrh-xl/p/5292495.html  

 28.System.gc()和Runtime.gc()

  這兩個方法是用來提示JVM要進行垃圾回收了.但是,立即開始還是延遲開始進行垃圾回收是取決於JVM的.

  這兩個方法的行為沒有什麼不同,本質上是一樣的.

 29.finalize()方法

  垃圾回收器決定回收某對象時,就會運行該對象的finalize()方法,但是在Java中,如果記憶體充足,那麼垃圾回收可能永遠不會進行,也就是說finalize()可能永遠不會被執行,顯然靠它做收尾工作是不可靠的.(何時會進行垃圾回收取決於JVM的類型,以及JVM採用何種垃圾回收演算法,記憶體分配回收策略等).fianlize()方法的主要用途是回收特殊通道申請的記憶體.Java程式有垃圾回收器,所以一般情況下記憶體問題不用程式員擔心,但有一種JNI(Java Native Interface)調用non-Java程式(C/C++),finalize()的工作就是回收這部分記憶體.

 30.Java堆及永久代

  JVM的堆是運行時數據區,所有類的實例和數組都在堆上分配記憶體.它在JVM啟動時被創建.對象所占的記憶體是由自動記憶體管理系統,也就是垃圾回收器回收.

  堆記憶體是由存活和死亡的對象組成的,存活的對象是應用可以訪問的,不會被回收,死亡的對象是應用不可訪問尚且沒有被垃圾收集器回收掉的對象,一直到垃圾收集器把這些對象回收掉之前,它們會一直占據記憶體空間.

  瞭解更多關於運行時數據區可以參考http://www.cnblogs.com/lrh-xl/p/5277585.html

 31.串列收集器和吞吐量收集器的區別

  吞吐量收集器使用並行版本的新生代垃圾收集器,它用於中等規模和大規模數據的應用程式.而串列收集器對大多數的小應用(現代處理器上需要大概100M左右的記憶體)就足夠了.

  瞭解更多關於垃圾收集器可以參考http://www.cnblogs.com/lrh-xl/p/5309141.html

32.JVM的永久代的垃圾回收

  垃圾回收不會發生在永久代(不是很準確).如果永久代滿了或者是超過了臨界值們就會觸發完全垃圾回收(Full GC) 也叫Major GC.

  關於垃圾收集可以參考http://www.cnblogs.com/lrh-xl/p/5312877.html 和 http://www.cnblogs.com/lrh-xl/p/5292495.html 

33.Java中的兩種異常類型

  Java中有兩種異常:受檢查(checked)異常和不受檢查(unchecked)異常.不受檢查的異常不需要在方法或者構造函數上聲明,就算方法或者構造函數的執行可能會拋出這樣的異常,並且不受檢查的異常可以傳播到方法或者是構造函數的外面.相反,受檢查的異常必須用throws語句或者是構造函數上聲明.

34.java中的Exception和Error

  Exception和Error都是Throwable的子類.Exception用於用戶程式可以捕獲的異常情況.Error定義了不期望被用戶捕獲的異常.

35.throw和throws

  throw關鍵字用來在程式中明確地拋出異常,相反,throws語句用來表明方法不能處理的異常.每一個方法都必須要指定哪些異常不能處理,所以方法的調用者才能夠確保處理可能發生的異常,多個異常是用逗號分隔的.

36.finally代碼塊和fianlize()方法

  無論是否拋出異常,finally代碼塊都會執行,它主要是用來釋放用用程式占用的資源.

  finalize()方法是Object類的protected()方法,它是在對象被垃圾回收前由JAVA虛擬機來調用的.


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • HashMap實現了Map介面,HashTable是Dictionary的子類; 主要區別有以下三點: 1.HashMap允許空的鍵值,也就是說 key 可以為 null(只能有一個key為null),而HashTable不可以; 2.HashMap不同步的,在多線程訪問時,需要為它的方法實現同步S ...
  • 實現了任意大數與 2^64-1以下的數相乘, 兩個任意大數可以將其中一個拆分成多個因數, 兩個大數質數暫未考慮 ...
  • 最近在學習PKI,順便接觸了一些加密演算法。對RSA著重研究了一下,自己也寫了一個簡單的實現RSA演算法的Demo,包括公、私鑰生成,加解密的實現。雖然比較簡單,但是也大概囊括了RSA加解密的核心思想與流程。這裡寫下來與大家分享一下。 RSA概述: RSA是目前最有影響力的公鑰加密演算法,它能夠抵抗到目前 ...
  • 文/JC_Huang(簡書作者)原文鏈接:http://www.jianshu.com/p/f4d7827821f1著作權歸作者所有,轉載請聯繫作者獲得授權,並標註“簡書作者”。 產品分析 首先我們來看一下市場上關於消息的實現是怎麼樣的。 簡書 簡書的消息系統主要分了兩種 簡信 提醒 簡信簡信的性質 ...
  • 使用Nginx代理多台伺服器實行負載的時候,如何查看某一個請求被轉發到哪台伺服器上呢? 加上如下紅色配置: 重啟Nginx,重新訪問,在瀏覽器中F12查看request的Headers信息,可以看到當前伺服器的IP ...
  • 問題 昨天看到一篇博文,文中談到一道 Java 面試題: 給定一字元串,若該字元串中間包含 "*",則刪除該 "*";若該字元串首字元或尾字元為 "*",則保留該 "*"。 舉幾個例子(箭頭左邊為輸入,箭頭右邊為輸出): * --> * ** --> ** **** --> ** *ab**de** ...
  • 本文章向碼農們介紹PHP使用fopen與file_get_contents讀取文件實例分享及這兩個函數的區別,需要的碼農可以參考一下。 php中讀取文件可以使用fopen和file_get_contents這兩個函數,二者之間沒有本質區別,只是前者讀取文件的php代碼相比後者要複雜一點。本文章通過實 ...
  • 我一直在不斷的提示大家:FP就是Monadic Programming,是一種特殊的編程風格。在我們熟悉的資料庫編程領域能不能實現FP風格呢?我們先設計一些示範例子來分析一下慣用的資料庫編程過程: 我這裡模擬了一個培訓學校內的一些業務。上面設計的是一些基本函數,可以分別對學員、導師、座位進行查詢和更 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...