读书人

java惯用对象的内存占用大小

发布时间: 2013-08-01 15:23:18 作者: rapoo

java常用对象的内存占用大小

这里介绍java常用对象的内存占用大小.32位和64位以及不同的jvm参数可能会导致对象大小不同.

java版本
??? Open JDK 64-bit

jvm参数
??? -Xmx2g -Xms2g

基本类型
对象?????????????????????????????????????????????????????? 32位大小?
new Object()???????????????????????????????????????????? ? 16?
new String("")??????????????????????????? 48?
new String(new char[] {'1'})???????????????????????? 56?
new String(new char[] {'1','2','3','4'})??????????? 56?
new String(new char[] {'1','2','3','4','5'})???????64?
new Integer(0)??????????????????????????????????????????? 16?
new Long(0)????????????????????????????????????????????? ?24?
new Float(0)?????????????????????????????????????????????? 16?
new Double(0)??????????????????????????????????????????? 24?
new BigDecimal(0)???????????????????????????????????? 40?
new Date()??????????????????????????????????????????????? ?24?
new java.sql.Timestamp()???????????????????????????32?
UUID????????????????????????????????????????????????????????? ?64?
GregorianCalendar??????????????????????????????????? 448?
new AtomicBoolean()???????????????????????????????? 16?
new AtomicInteger()?????????????????????????????????? 16?
new AtomicLong()????????????????????????????????????? 24

容器
对象??????????????????????????????????????????????????????? 大小
new TreeMap()??????????????????????????????????????? 48
new HashMap()?????????????????????????????????????? 136
new HashMap(1)????????????????????????????????????? 80
new Hashtable()?????????????????????????????????????? 120
new Properties()????????????????????????????????????? 120
new LinkedHashMap()?????????????????????????????120
new WeakHashMap()???????????????????????????????144
new ConcurrentSkipListMap()??????????????????104
new ConcurrentHashMap()???????????????????????224
new ConcurrentHashMap(1,0.75f,1)?????????168
new TreeSet()?????????????????????????????????????????? 64
new HashSet()????????????????????????????????????????? 160
new LinkedHashSet()????????????????????????????????200
new ArrayList()????????????????????????????????????????? 80
new ArrayList(1)??????????????????????????????????????? 48
new CopyOnWriteArrayList()???????????????????? 88
new CopyOnWriteArraySet()?????????????????????104
new Vector()????????????????????????????????????????????? 88
new LinkedList()??????????????????????????????????????? 32
new Stack()?????????????????????????????????????????????? 88
new PriorityQueue()????????????????????????????????? 96
new ConcurrentLinkedQueue()???????????????? 48

数组
对象 大小
new byte[0]???????????????????????????????????????? 16
new byte[1]???????????????????????????????????????? 24
new byte[8]???????????????????????????????????????? 24
new short[0]??????????????????????????????????????? 16
new short[1]??????????????????????????????????????? 24
new short[4]??????????????????????????????????????? 24
new short[5]??????????????????????????????????????? 32
new char[0]???????????????????????????????????????? 16
new char[1]???????????????????????????????????????? 24
new char[4]???????????????????????????????????????? 24
new char[5]???????????????????????????????????????? 32
new int[0]??????????????????????????????????????????? 16
new int[1]??????????????????????????????????????????? 24
new int[2]??????????????????????????????????????????? 24
new int[3]??????????????????????????????????????????? 32
new long[0]???????????????????????????????????????? 16
new long[1]???????????????????????????????????????? 24
new long[2]???????????????????????????????????????? 32
new Object[0]??????????????????????????????????????16
new Object[1]??????????????????????????????????????24
new Object[2]??????????????????????????????????????24
new Object[3]??????????????????????????????????????32

?

读书人网 >编程

热点推荐