JAVA数组所占内存大小的对比
1.两个数据模型
第一个是基本类型数组,第二个使用的是Float对象数组
public class SummaryModel{
private float[] summaryData;
public float[] getSummaryData() {
return summaryData;
}
public void setSummaryData(float[] summaryData) {
this.summaryData = summaryData;
}
}
public class SummaryModel1 {
private Float[] summaryData;
public Float[] getSummaryData() {
return summaryData;
}
public void setSummaryData(Float[] summaryData) {
this.summaryData = summaryData;
}
}
2.测试程序
public class Test {
public static void main(String[] args) throws Exception {
SummaryModel[] sms = new SummaryModel[100000];
SummaryModel1[] sm1s = new SummaryModel1[100000];
for(int i=0;i<100000;i++){
SummaryModel sm = new SummaryModel();
SummaryModel1 sm1 = new SummaryModel1();
float[] f = new float[100];
Float[] F = new Float[100];
for(int j=0;j<100;j++){
f[j] = 1000f;
F[j] = 1000F;
}
sm.setSummaryData(f);
sm1.setSummaryData(F);
sms[i] = sm;
sm1s[i] = sm1;
}
Thread.sleep(10000000);
System.out.println(sms.length);
System.out.println(sm1s.length);
}
}
3.所占内存对比
1).两个数组同时运行

2).只运行float数组

3).只运行Float数组

4.总结
可以看到在使用float数组的时候,内存使用大小基本就是float所占内存的大小即10W*100个float
而使用Float数组时,因为Float是个对象,包括它自己的属性值,每个Float对象所占大小为16字节,基本上是float的4倍
所以大数据量计算时,尽量使用基本数据类型,不要使用对象。
JAVA数组所占内存大小的对比的更多相关文章
- 4种方法教你如何查看java对象所占内存大小
摘要:本文讲述4种查看java对象所占内存大小的方法 本文分享自华为云社区<查看java对象所占内存大小>,作者:xiewenci. 计算java对象所占内存大小 1.使用jdk8自带AP ...
- 如何获取一个Java对象所占内存大小
新建一个maven工程 我们先在IDEA中新建一个名为ObjectSizeFetcherAgent的maven工程,如下图: 在maven项目中的pom.xml中新增一个打jar包的插件,如下: &l ...
- 复杂Java对象所占内存的大小
我们在Java单个对象内存布局中讲解了单个简单的Java对象所占内存的大小的计算.那么这篇文章主要是讲解复杂Java对象所占内存大小的计算,我们把继承.复合的对象称为复杂对象 继承对象 class P ...
- 如何计算Java对象所占内存的大小
[ 简单总结: 随便一个java项目,引入jar包: lucene-core-4.0.0.jar 如果是 maven项目,直接用如下依赖: <dependency> <groupId ...
- C++类所占内存大小计算
C++类所占内存大小计算 说明:笔者的操作系统是32位的. class A {}; sizeof( A ) = ? sizeof( A ) = 1明明是空类,为什么编译器说它是1呢? 空类同样可以实例 ...
- YUV和RGB格式单像素所占内存大小分析
图片的大小定 义为:w * h,宽高分别为w和h 一.YUV格式 1.1.YUV420格式存储方式:先Y,后V,中间是U.其中的Y是w * h,U和V是w/2 * (h/2)举例:如果w = 4,h ...
- 获取JAVA对象占用的内存大小
介绍两种获取JAVA对象内存大小的方法. 第一种:Instrumentation 简介: 使用java.lang.instrument 的Instrumentation来获取一个对象的内存大小.利用I ...
- sizeof strlen strncpy用法总结 结构体实际所占内存大小 以及memset用法
sizeof测类型(数组名除外) strlen测实际长度 strncpy返回指针类型 #include <stdio.h> #include <stdlib.h> #inclu ...
- C++之类成员所占内存大小问题总结
1.空类所占字节数为1,可见代码如下 #include <iostream> using namespace std; class Parent { }; class Child:publ ...
随机推荐
- Java语言环境(JDK的安装教学)
//此文档由徐浩军编写(32/64位系统都适用) 1.下载JDK安装包你 2.点击安装包开始安装 3.首先你要选择安装地址一般情况下,都会选择默认地址. (请记住这个地址,之后配置环境变量的时候需要用 ...
- Cobar-Client 实现策略总结
1. 数据源 DataSource CobarClient 的 DataSource 分为三层 ICobarDataSourceService: 封装了多个 DataSourceDescriptor, ...
- iOS.AppThinning-iOS9-new-feature-for-app-thinning-bitcode-odr-slicing
Bitcode 0. Introduction to Bitcode 1. Build static library or framework via Xcode 7, while user buil ...
- 使用GITHUB的体会
github的网页链接 https://github.com/zhangji123/test 学习总结 通过学习使用github软件使我掌握了其使用方法及其独特之处 1.github的网址: htt ...
- 代码中修改组件的margin属性
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_ ...
- ntp -q 输出说明
-bash-3.00# ntpq -p remote refid st t when poll reach delay offset ...
- 20145225《Java程序设计》 第4周学习总结
20145225<Java程序设计> 第4周学习总结 教材学习内容总结 第六章 继承与多态 6.1继承 继承共同行为:存在着重复,可把相同的程序代码提升(pull up)为父类.exten ...
- Spring AOP小结
一. AOP介绍 AOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善.OOP ...
- 在指定控件位置弹出popup window
先看效果图 黄色的就是弹出的popup window 首先自定义一个view用来显示,文件名为layout_my_view.xml <?xml version="1.0" e ...
- 新浪微博SDK的使用
花了两天时间研究了一下新浪微博SDK,遇到了不少问题,有必要整理一下 1.首先下载下weiboSdk,导入weiboSDKD和weiboSDKDemo两个项目,这时发现导入的weiboSDKDemo项 ...