2020年4月
你好
不要钱才怪
- 1.How CPU executes a program (video-注意看最下层字幕)
{dplayer src="https://cdn.shafish.cn/video/m3u8/How-CPU-executes-a-program/Fetch-Decode-Execute%20Cycle.en.m3u8"/}
- 2.Boolean Logic & Logic Gates: Crash Course Computer Science #3(中文字幕)
{dplayer src="https://cdn.shafish.cn/video/m3u8/booleanLogicGates/cn/booleanLogicGates-cn.m3u8"/}
- 3.Boolean Logic & Logic Gates: Crash Course Computer Science #3(英文字幕)
{dplayer src="https://cdn.shafish.cn/video/m3u8/booleanLogicGates/en/booleanLogicGates-en.m3u8"/}
- 4.How Computers Calculate - the ALU: Crash Course Computer Science #5(中文字幕)
{dplayer src="https://cdn.shafish.cn/video/m3u8/howComputersCalculate-TheALU/cn/howComputersCalculate-TheALU-cn.m3u8"/}
- 5.How Computers Calculate - the ALU: Crash Course Computer Science #5(英文字幕)
{dplayer src="https://cdn.shafish.cn/video/m3u8/howComputersCalculate-TheALU/en/howComputersCalculate-TheALU-en.m3u8"/}
Java中一个对象可以被YGC多少次
YGC:在堆中的新生代中进行的垃圾回收操作。也叫Minor GC。
怎么判断一个对象可以进行垃圾回收
- 首先肯定得知道对象被ygc了多少次。Java语言的开发人员在
Java对象头
中进行了相关的设置,准确来说是在对象头中的mark work
中进行了设置。 点击这里查看markOop.hpp
来看第44行中的说明:
- unused:Java对象中预留给未来的25位
- hash:对象的hash值,31位
- age:gc次数,4位
- biased_lock:偏向锁标识(只有一个线程访问时,不用每次都获取锁),配合lock使用,1位
- lock:对象的锁级别,2位。unlocked(无锁)(0 01)、偏向锁(1 01)、locked(轻量级锁)(00)、monitor(重量级锁)(10)、marked(GC标记)(11)
上面5个属性再加上一个unused,一共占了64位,也就是8个字节,这些在64位系统下的配置。
可以看到age明确表明了只占有4位长度(0.5个字节),能存0~15
的值。然后发现通过-XX:MaxTenuringThreshold
jvm命令对age值进行调整,默认为15。
记录
在网上看到过设置MaxTenuringThreshold
大于15的情况。疑问:设置的MaxTenuringThreshold
参数是否you效??
参考:
https://stackoverflow.com/questions/13543468/maxtenuringthreshold-how-exactly-it-works
https://support.oracle.com/knowledge/Middleware/1283267_1.html