1--我们写了一个java类,那么生成一个对象占用多大的内存?
public class Student {
private long id;
private long userId;
private byte state;
private long createMillis;
}
这是一个普通的java类,包含几个简单的字段,那么这个类生成一个对象占用多大的内存呢?
通常,说占40个字节就可以了。这是怎么算出来的呢?
1:拆分对象 对象头 对象数据 对象填充
2:分别计算
2.1:对象头 占12字节
对象头包含两个部分 :标记字 ,占用一个机器字,8字节; 类型指针,占一个机器字,8字节
特别说明:1:如果堆内存小于32GB,JVM会默认开启指针压缩,压缩后的指针占4个字节
2:如果是数组,对象头中还会多出一个 “数组长度”,int类型,占4字节。
2.2:对象数据 占 25字节
三个long数据 8*3=24字节,一个byte 1字节
2.3:对象填充
已经计算完的 合计 是37字节。那么填充多少字节?
java对象大小默认按8字节对齐,也就是是8的整数倍,那么需要填充3字节。
3:合计 12+25+3=40字节。
1--我们写了一个java类,那么生成一个对象占用多大的内存?的更多相关文章
- Java中的String到底占用多大的内存空间?你所了解的可能都是错误的!!
写在前面 最近小伙伴加群时,我总是问一个问题:Java中的String类占用多大的内存空间?很多小伙伴的回答着实让我哭笑不得,有说不占空间的,有说1个字节的,有说2个字节的,有说3个字节的,有说不知道 ...
- 我写了一个java实体类,implements了Serializable接口,然后我如何让serialversionUID自动生成
写了一个java实体类,implements了Serializable接口,让serialversionUID自动生成方法: 1.点击类旁边的警告符号: 2.选择Add generated seria ...
- 师兄写的一个JAVA播放器的源代码(转)
师兄写的一个JAVA播放器的源代码 MediaPlayer.java------------------------------------------------------------------ ...
- 分享:写了一个 java 调用 C语言 开发的动态库的范例
分享:写了一个 java 调用 C语言 开发的动态库的范例 cfunction.h 代码#pragma once#ifdef __cplusplusextern "C" {#e ...
- 如何唯一确定一个 Java 类?
今天偶然想起之前和朋友讨论过的一个问题:如何唯一确定一个 Java 类?我相信大多数朋友遇到这个问题的回答都是:类的全路径呗.但事实上,唯一确定一个 Java 类,单单靠类路径是不够的,还要多加上一个 ...
- 第一次尝试学习java 安装jdk 与配置环境变量 写第一个java程序 并运行
第一次学习java,今天知道了java之父叫 詹姆斯.高司令 其它的记不住太多,首先我们先来安装jdk 百度搜索jdk12 (现在的jdk为12版本)安装稳定版 找到javaSE12X.. 下 ...
- mac os intellij如何快路查看一个java类的所有方法,结构
如果是自己写的java类,点击点击导航的project-setting-show members 如果是系统库的,点击structure 再点一下lib中的类,或者快捷键 command+F12
- 自己写的一个 java swing 的闹钟
上一周新入职,把代码down下来之后,领导和我讲了一些大概的业务以及代码流程(领导是技术出身),领导让我自己先看看代码,然后我看了两天,觉得已经完全可以接任务了,但是领导却迟迟没有分配任务给我,虽然他 ...
- 很久以前写的一个 ShareRestrictedSD 类
代码中一开始的 几个 USES 单元,可能是多余的. unit ShareRestrictedSD; interface uses Windows, Messages, SysUtils, Class ...
- 【Java.Regex】使用正则表达式查找一个Java类中的成员函数
代码: import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; imp ...
随机推荐
- Day 11 11.2 文件操作
文件操作 引言 到目前为止,我们做的一切操作,都是在内存里进行的,这样会有什么问题吗?如果一旦断电或发生意外关机了,那么你辛勤的工作成果将瞬间消失.是不是感觉事还挺大的呢?现在你是否感觉你的编程技巧还 ...
- maven概述,maven依赖管理的概念,maven一键构建概念
maven概述 Maven在美国是一个口语化的词语,代表专家,内行的意思 一个对Maven比较正式的定义是这么说的,Maven是一个项目管理工具,它包含了一个项目对象模型(POM:Project O ...
- 写一个能快速删除文件的.bat图形化操作界面
用.bat文件,快速删除想要删除的文件 1.首先在桌面上新建一个TXT文件 在文件里面写如图命令 如下: del C:\result.jtl \*.*/f/s/q/a(C:\result.jtl是想要 ...
- jmeter非GUI模式运行-单节点
jmeter有自己的GUI页面,但是当线程数很多或者现在有很多的测试场景都是基于linux下进行压测,这时我们可以使用jmeter的命令行方式来执行测试,该篇文章介绍jmeter单节点命令运行方式. ...
- 进程间通信测试-signal
截图 代码 #include <stdio.h> #include <unistd.h> #include <signal.h> #include <stri ...
- 051_Lightning 定义 直接翻译来的
那么为什么要命名为"Lightning"?那么,想一想关于实际Lightning,你在暴风雨中看到的那种.想想它的速度有多快,如果你眨眼,你可能会想念它.想想它是多么美丽; Lig ...
- 专业家庭影音服务器-硬件平台x86+固态盘+sata机械盘
提到影音绕不开的就是大容量存储,就目前情况机械硬盘的海量存储还是唯一选择,所以实现起来总是绕不开NAS这个思路,比较起来,常规PC系统,固态和机械相结合,或许才是终极解决方案. 老式硬件 过失的产品在 ...
- Leetcode45 跳跃,贪心算法
leetcode 该题区别于动态规划,动态规划也能做,但是时间效率低
- 基于工业5G网关的建筑机器人应用
建筑行业是世界上数字化程度最低.自动化程度最低的行业之一.近百年来,虽然技术革新不断,建筑本身的形态和功能也大不相同,但建筑施工的业态形式却始终没有出现显著的变化. 随着人口红利的消失,中国的建筑业面 ...
- Jmeter添加BeanShell后置处理程序保存响应结果
对于某些请求,无法通过保存响应到文件这个组件来进行保存(会出现UNKNOW文件类型). 那么就可以通过BeanShell后置处理程序来进行将响应结果直接输出到文件,并可以直接指定文件名和后缀. imp ...