java 什么時候進行垃圾回收_java什么時候進行垃圾回收,垃圾回收的執行流程

java的垃圾回收分為

三個區域新生代 老年代 永久代

fef4684266dcfafd8784e6089e1ecd32.png

一個對象實例化時 先去看伊甸園有沒有足夠的空間

如果有 不進行垃圾回收 ,對象直接在伊甸園存儲.

如果伊甸園內存已滿,會進行一次minor gc

然后再進行判斷伊甸園中的內存是否足夠

如果不足 則去看存活區的內存是否足夠.

如果內存足夠,把伊甸園部分活躍對象保存在存活區,然后把對象保存在伊甸園.

如果內存不足,向老年代發送請求,查詢老年代的內存是否足夠

如果老年代內存足夠,將部分存活區的活躍對象存入老年代.然后把伊甸園的活躍對象放入存活區,對象依舊保存在伊甸園.

如果老年代內存不足,會進行一次full gc,之后老年代會再進行判斷 內存是否足夠,如果足夠 同上.

如果不足 會拋出OutOfMemoryError.

20181119104106761566.png

GC雖然可以進行內存空間的釋放,但同時頻繁的GC一定會影響性能,GC發生的頻率越低,你的系統就越高效.

支持原創::https://blog.csdn.net/jidong2622/article/details/78147364

版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260325.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260325.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260325.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

常用的webservice接口

商業和貿易: 1、股票行情數據 WEB 服務(支持香港、深圳、上海基金、債券和股票;支持多股票同時查詢) Endpoint: http://webservice.webxml.com.cn/WebServices/StockInfoWS.asmx Disco: http://webservice.webxml.com.cn/WebServ…

基于HTML5 Canvas 實現矢量工控風機葉輪旋轉

之前在拓撲上的應用都是些靜態的圖元,今天我們將在拓撲上設計一個會動的圖元——葉輪旋轉。 先看看最后我們實現的效果:http://www.hightopo.com/demo/fan/index.html 我們先來看下這個葉輪模型長什么樣 從模型上看,這個葉輪模型有三個葉片&a…

java 并發模型總類_java并發編程系列-內存模型基礎

java線程之間的通信對程序開發人員是完全透明的,內存的可見性問題很容易困擾很多開發人員。本篇博文將揭開java內存模型的神秘面紗,來看看內存模型到底是怎樣的。并發編程模型的分類并發編程中需要處理的兩個關鍵問題:線程之間如何通信線程之…

python調用java的jar包_python調用java的jar包報錯127

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓最近在弄python需要調用到Java的jar包,按照網上的教程走,最后總是報錯No matching overloads found for [init in find. at native\common\jp_method.cpp:127Java:package aes;import com.sun.cr…

iphone、Android接收System.Net.Mail發的郵件標題亂碼

參考地址:http://blog.csdn.net/whowhen21/article/details/5959225 在做項目時候,用到.Net的System.Net.Mail發送郵件,經測試,發現如果標題過長,收到的就會是亂碼了(那種Base64格式的數據),幾經測試&#…

數據倉庫與數據挖掘的一些基本概念

下面內容摘自互聯網并作了整理。 名詞: BI(Business Intelligence):商業智能, DW(Data Warehouse):數據倉庫,詳見正文Q1部分。 OLTP(On-Line Transaction Processing):聯機事務處理 也稱為面向交易的處理系…

ATS讀小文件(內存命中)

一個資源根據其大小可能會存在多個存儲對象中。如果足夠小(連同doc結構的大小小于一個fragment的size),連同這個資源的meta信息一起存儲在一個doc中。如果比較大,第一個存儲對象保存資源的meta信息,后面跟著若干個frag…

python 加密解密_python加密解密

EncodeFile(python2.7加密)# -*- coding: utf8 -*-import base64import sysreload(sys)sys.setdefaultencoding(utf8)inFilesys.argv[1]try:fin open(inFile, "rb")fout open(inFile".txt", "w")base64.encode(fin, fout)passexcept Exception…

java double 兩位_java double 保留兩位小數

java保留兩位小數問題:方式一:四舍五入double f 111231.5585;BigDecimal b new BigDecimal(f);double f1 b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();保留兩位小數---------------------------------------------…

fatal error C1902: 程序數據庫管理器不匹配;請檢查安裝解決

終于找到原因了,原來是我安裝的字體渲染,并且采用注冊表的加載方式!改掉就好了!上天哪,這是怎么影響到的 卸載MacType程序后,進行嘗試! VS2008 和 VS2010 又能用了! 我想求教育。。。…

一分鐘明確 VS manifest 原理

什么是vs 程序的manifest文件 manifest 是VS程序用來標明所依賴的side-by-side組建,如ATL, CRT等的清單。 為什么要有manifest文件 一臺pc上,用一組建往往會有不止一個版本號(c:/windows/winsxs或系統文件夾下),程序在載入的時候&…

[譯]多線程網絡服務模型

2019獨角獸企業重金招聘Python工程師標準>>> 多線程網絡服務模型 /*** 謹獻給Yoyo** 原文出處&#xff1a;https://www.toptal.com/software/guide-to-multi-processing-network-server-models* author dogstar.huang <chanzonghuanggmail.com> 2016-04-02*/作…

likely(x)與unlikely(x)函數,即__builtin_expect的使用

轉載自&#xff1a;http://velep.com/archives/795.html 本文講的likely()和unlikely()兩個宏&#xff0c;在linux內核代碼和一些應用中可常見到它們的身影。實質上&#xff0c;這兩個宏是關于GCC編譯器內置宏__builtin_expect的使用。顧名思義&#xff0c;likely()指“很有可能…

java mvc引擎_SpringMvc+JavaConfig+Idea 搭建項目

1.介紹之前搭建SpringMvc項目要配置一系列的配置文件&#xff0c;比如web.xml,applicationContext.xml,dispatcher.xml。Spring 3.X之后推出了基于JavaConfig方式以及注解的形式的配置。在一定程度上簡化了Spring項目的配置。近幾年特別火的SpringBoot&#xff0c;大大的簡化了…

window.parent和window.opener區別

下面一段代碼是關于window.parent和window.opener區別 來講的&#xff0c;我們如果要用到iframe的值傳到另一框架就要用到window.opener.document.getElementById(name).value uvalue;這種形式哦。 window.parent能獲取一個框架的父窗口或父框架。頂層窗口的parent引用的是它本…

極域電子書包課堂管理系統_【君蓮微訊】君蓮學校(小學部)開展電子書包第13共同體數學研討活動...

借 助 媒 體 技 術豐 富 圖 形 認 識君蓮學校(小學部)開展電子書包共同體 數學研討活動 2020年12月2日下午&#xff0c;君蓮學校(小學部)開展了以“借助媒體技術 豐富圖形認識”為主題的閔行區電子書包第13共同體的數學研討活動。共同體學校教師代表、學校電子書包項目組主管朱…

python批量改動指定文件夾文件名稱

這小樣例僅僅要是說明用python怎么批量改動指定文件夾的文件名稱&#xff1a; 記得要把腳本跟改動的文件放在同一個文件夾下 #encoding:utf-8 import os import sys files os.listdir(D:\\1) #路徑能夠自己for name in files:a os.path.splitext(name)if a[1] .txt: #txt能夠…

Linux vmstat命令實戰詳解

vmstat命令是最常見的Linux/Unix監控工具&#xff0c;可以展現給定時間間隔的服務器的狀態值,包括服務器的CPU使用率&#xff0c;內存使用&#xff0c;虛擬內存交換情況,IO讀寫情況。這個命令是我查看Linux/Unix最喜愛的命令&#xff0c;一個是Linux/Unix都支持&#xff0c;二是…

python的基礎網絡編程是下列_Python入門基礎之網絡編程、socket編程、TCP、UDP編程...

忙了兩天&#xff0c;繼續更文&#xff01;希望多多支持。套接字套接字是一種具有之前所說的"通訊端點"概念的計算機網絡數據結構。網絡化的應用程序在開始任何通訊之前都必需要創建套接字。套接字有三種&#xff1a;1、 AF_UNIX(在 POSIX1.g 標準中也叫 AF_LOCAL)&a…

java 入門 博客園_javaweb入門

復習&#xff1a;css的常用樣式&#xff1a;borderbackgroundpaddingmarginfloatposition 定位top left確定div在頁面中的位置&#xff0c;這兩個值可以為負數。cssdiv 布局方式cssdivtable 先由div劃分大塊兒&#xff0c;再由table進行整齊布局。下拉列表&#xff1a;層疊的布…