激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - 如何計算Java對象占用了多少空間?

如何計算Java對象占用了多少空間?

2020-03-21 12:27lijiao JAVA教程

在Java中沒有sizeof運(yùn)算符,所以沒辦法知道一個對象到底占用了多大的空間,但是在分配對象的時候會有一些基本的規(guī)則,我們根據(jù)這些規(guī)則大致能判斷出來對象大小,需要的朋友可以參考下

本文介紹了計算Java對象占用了多少空間的方法,分享給大家供大家參考,具體內(nèi)容如下

一、對象頭

對象的頭部至少有兩個WORD,如果是數(shù)組的話,那么三個WORD,內(nèi)容如下:

  • 1、對象的HashCode,鎖信息等
  • 2、到對象類型數(shù)據(jù)的指針
  • 3、數(shù)組的長度(如果是數(shù)組的話)

二、規(guī)則

首先,任何對象都是8字節(jié)對齊,屬性按照[long,double]、[int,float]、[char,short]、[byte,boolean]、reference的順序存放,舉個例子:

?
1
2
3
4
5
6
7
public class Test {
  byte a;
  int b;
  boolean c;
  long d;
  Object e;
}

如果這個對象的屬性按照順序存放的話,要占用的空間為:head(8) + a(1) + padding(3) + b(4) + c(1) + padding(7) + d(8) + e(4) + padding(4) = 40。但是按照這個規(guī)則得到:head(8) + d(8) + b(4) + a(1) + c(1) + padding(2) + e(4) + padding(4) = 32。可以看到節(jié)省了不少空間。

在涉及繼承關(guān)系的時候有一個最基本的規(guī)則:首先存放父類中的成員,接著才是子類中的成員,舉個例子:

?
1
2
3
4
5
6
7
8
class A {
  long a;
  int b;
  int c;
}
class B extends A {
  long d;
}

這樣存放的順序及占用空間如下:head(8) + a(8) + b(4) + c(4) + d(8) = 32。那如果父類中的屬性不夠八個字節(jié)怎么辦?這樣就有了新的一條規(guī)則:父類中最后一個成員與子類的第一個成員的間隔如果不夠4個字節(jié),此時需要擴(kuò)展到4個字節(jié)的基本單位,舉個例子:

?
1
2
3
4
5
6
class A {
  byte a;
}
class B extends A {
  byte b;
}

那么此時占用的空間如下:head(8) + a(1) + padding(3) + b(1) + padding(3) = 16。顯然這種方式比較浪費(fèi)空間,那么就有了:如果子類的第一個成員是double或者long,并且父類并沒有用完8個字節(jié),JVM會破壞規(guī)將較小的數(shù)據(jù)填充到該空間,舉個例子:

?
1
2
3
4
5
6
7
8
class A {
  byte a;
}
class B extends A {
  long b;
  short c;
  byte d;
}

此時占用的空間如下:head(8) + a(1) + padding(3) + c(2) + d(1) + padding(1) + b(8) = 24。

以上就是計算Java對象占用了多少空間的方法,希望對大家學(xué)習(xí)java程序設(shè)計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美一级一片 | 嗯哈~不行好大h双性 | 欧美成人三级大全 | 国产成人高清在线观看 | 国产porn在线 | 亚洲片在线| 国产精选在线 | 欧美黄色一级生活片 | 日本免费aaa观看 | 国产精品麻豆一区二区三区 | 免费色片| 国产一级淫 | 二区三区四区视频 | 亚洲国产精品一区二区三区 | 毛片大全在线观看 | 91久久国产露脸精品国产护士 | 成年人精品视频 | 久草资源在线观看 | 万圣街在线观看免费完整版 | 国产精品久久久久久婷婷天堂 | 亚洲精品久久久久久下一站 | 免费看成人毛片 | 少妇一级淫片免费放4p | 久久综合一区 | 激情视频免费观看 | 天天看天天摸天天操 | 久久久免费电影 | 黄色片网站免费 | 美女黄影院 | 国产午夜精品一区二区三区不卡 | 国产91免费看 | 色综合网在线观看 | 黄色片在线免费播放 | 美女福利视频国产 | 一级毛片免费一级 | 久久久久久久.comav | 性爱视频在线免费 | 黄色成人小视频 | 亚洲日色 | 911色_911色sss主站色播 | 日韩视频在线一区二区三区 |