一、前言
通过Java代码实现对象、List类集、数组、Map及常用数据类型等占用字节大小的代码示例,详情参见代码示例部分。
二、代码示例package com.xwood.demo.util;@b@@b@import java.io.ByteArrayOutputStream;@b@import java.io.ObjectOutputStream;@b@import java.util.LinkedList;@b@import java.util.List;@b@@b@public class ByteSizeUtil {@b@@b@public static int getByteSize(List> datas) {@b@int byteSize=0;@b@try {@b@ByteArrayOutputStream baos = new ByteArrayOutputStream(); @b@ObjectOutputStream os = new ObjectOutputStream(baos); @b@os.writeObject(datas); @b@os.close(); @b@byteSize=baos.size();@b@System.out.println("ByteSizeUtil_getByteSize_datas>>>>>>>>>>>>【"+byteSize+"】字节");@b@baos.close();@b@} catch (Exception e) {@b@e.printStackTrace();@b@} @b@return byteSize;@b@}@b@@b@public static int getByteSize(Object data){@b@int byteSize=0;@b@try {@b@ByteArrayOutputStream baos = new ByteArrayOutputStream(); @b@ObjectOutputStream os = new ObjectOutputStream(baos); @b@os.writeObject(data); @b@os.close(); @b@byteSize=baos.size();@b@System.out.println("ByteSizeUtil_getByteSize_datas>>>>>>>>>>>>【"+byteSize+"】字节");@b@baos.close();@b@} catch (Exception e) {@b@e.printStackTrace();@b@} @b@return byteSize;@b@}@b@@b@public static void main(String[] args) throws Exception{@b@int n = 2000; @b@ List list = new LinkedList(); @b@ for (int i = 0; i
控制台打印结果ByteSizeUtil_getByteSize_datas>>>>>>>>>>>>【20115】字节@b@