1 D^-^L

学生身份

我要认证

你好

等级
TA的排名 12w+

Java一个对象占用多少字节

原文:https://www.cnblogs.com/zhi-leaf/p/11589711.html虚拟机:Java HotSpot™ 64-Bit Server VM对象的内存以字节为单位,必须是8的倍数,它的构成由3部分组成:对象头+实例数据+对齐内存。对象头主要包括对象的运行行元数据,比较哈希码、GC分代年龄、锁状态标志还有类型指针,类型指针指向类元数据,表明该对象所属类型。实例数据包括自身数据和所有父级数据,所有父级占内存大小都是8的倍数,没有就需要补齐。类型指针一般为4字节,在关闭压缩普.

2020-07-05 23:00:07

对于堆栈中,基本数据类型和引用数据类型到底存放在哪里?是线程私有还是线程共享?

变量位于方法中如果是基本数据类型,放置在栈中,如果是引用类型,引用存在在栈中,new出的对象存储在堆中变量位于类中(作为成员变量)1.常量:如果是字符串的,则存放在堆中的字符串常量池,如果是其他类型,则存放在元空间中即本地内存中2.static 变量 存放在Class对象的末尾,即在堆中3.其他变量 存储在堆中,无论是基本数据类型还是引用类型,都作为new出的对象的属性一起存储在堆中另外另外对于方法区:1.7之前是使用永久代实现的1.8之后使用元空间将其分为两部分:字符串常量池和静态变量放

2020-07-02 23:32:08

JDK8的JVM内存结构,元空间替代永久代成为方法区及常量池的变化

JVM的知识这里总结的很详细:https://github.com/doocs/jvm/blob/master/README.md,因此在本博客也不会再对其中的东西重复总结了。现在很多文章关于JVM内存结构的说法模糊不清,这里记录一下以前的一些比较模糊的JVM相关概念的重新认识。都是经过多处考证对比的。MetaSpace代替Perm Gen即元空间代替了永久代,所以JVM关于永久代的参数也都作废了,取而代之的是关于MetaSpace空间的参数。而且Mete Space是属于直接内存。示意图:为什么

2020-07-02 23:21:35

idea 新建module类找不到maven引入的包

今天,在新建的module下面新建新的java类,可是java怎么也看不到maven引入的spring,搞了好久,还以为是项目设置的问题,最后,查到是因为ignore project的问题:https://www.cnblogs.com/jimisun/p/9059728.html至于为啥自己新建的module会是ignore,可能是因为自己有删除了重新建的原因...

2020-06-24 16:50:11

分布式系统唯一ID生成方案汇总

系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。下面就介绍一些常见的ID生成策略。1. 数据库自增长序列或字段最常见的方式。利用数据库,全数据库唯一。优点1)简单,代码方便,性能可以接受。2)数字ID天然排序,对分页或者需要排序的结果很有帮助。缺点1)不同数据库语法和实现不同,数据库迁移的时候或多数据库版本支持的时候需要处理。2)在单个数据库或读写分离或一主多

2020-06-20 16:46:26

前中后缀表达式小记

已知中缀表达式如a+b+ca(a+b)/e+f怎样求后缀表达式或前缀?先确认一个点,如果是选择题,可以通过中缀表达式转后缀表达式时其操作数的相对顺序是不会发生改变的。下面介绍的是使用辅助栈的方式的,如果遇到“(”直接入栈,如果是“)”就将栈元素弹出并加到后缀表达式尾端,但左右括号并不输出。转化为后缀:从左到右遍历中缀表达式,遇到操作数,输出,遇到操作符,当前操作符的优先级大于栈顶操作符优先级,进栈,否则,弹出栈顶优先级大于等于当前操作符的操作符,当前操作符进栈。转化为前缀:从右到左遍历中缀表达式,遇

2020-06-13 21:14:44

详解布隆过滤器的原理、使用场景和注意事项

原文:https://www.jianshu.com/p/2104d11ee0a2在进入正文之前,之前看到的有句话我觉得说得很好:Data structures are nothing different. They are like the bookshelvesof your application where you can organize your data. Different datastructures will give you different facility and .

2020-06-13 20:33:01

块级元素和内联元素的宽高是如何确定的

在刚接触CSS的时候,每次给元素添加样式,都习惯性的写上宽是多少,高是多少,为自己挖坑无数,还暗自抱怨说CSS好烦,不过它真的是好烦,脾气很怪。好,言归正传。在讨论元素的宽高是如何确定的之前,我们先明确一下文档流的概念:对于内联元素,是从左到右排列的,当宽度不够时换行;对于块级元素,是从上到下排列的,每一个元素都另起一行。一、内联元素宽高的确定宽度:不受width的限制,有文字内容决定的,padding 和 margin 可以改变宽度。高度:不受height的限制,padding 和margin 也

2020-06-01 17:42:20

谈一谈多线程中的双重检查锁定

前言: 之前看到介绍单例模式的一种线程安全的模式,后面看并发书籍时发现这个线程安全的模式如果修改一下则会有一些隐患,故记录下来。参考书籍:《Java并发编程的艺术》先看下这个单例吧双重校验锁先判断 uniqueInstance 是否已经被初始化了,如果没有被实例化,那么才对实例化语句进行加锁。 public class Singleton { private volatile static Singleton uniqueInstance; private .

2020-05-17 22:33:52

JVM中一个小知识点:深堆和浅堆

原文:http://baijiahao.baidu.com/s?id=1655952977584580761&wfr=spider&for=pcjava中的堆内存算是整个内存区域中最重要的一块,几乎所有的对象都分配在堆内存。在堆内存中有两个主要的概念需要我们理解,这对分析java堆内存的故障有着重要的作用,分别是深堆和浅堆。一、概念我们先给出概念,然后再分析。(1)浅堆表示一个java对象结构所占用内存的大小,这个java对象内部包含了三部分数据:对象头、实例数据和对齐填充。(.

2020-05-15 11:45:38

稳定排序和不稳定排序

原文:https://www.cnblogs.com/codingmylife/archive/2012/10/21/2732980.html这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定的人准备的。首先,排序算法的稳定性大家应该都知道,通俗地讲就是.

2020-05-13 19:58:16

常见UML

记录一下常见得UML的画法。

2020-05-03 08:59:09

乔帮主告诉你什么是面向对象

对于面向对象编程(OOP)这个概念,至今为止我还未见过有人能比乔布斯诠释得更加透彻。乔布斯从来没有接受过正式的工程训练,但是他对于自己所做的和所说的都有非常清晰的思路,无论是技术、设计还是艺术。早在1994年,Rolling Stone对乔布斯有一个采访。在那个年代,面向对象仍然是一个很潮的概念,能够理解并付出实践的人并不多,而乔布斯却给公众定义了什么是面向对象。Jeff Goodell:...

2020-05-01 10:05:44

引用传递和值传递有什么区别

1、什么是值传递值传递,是将内存空间中某个存储单元中存放的值,传送给另一个存储单元。(java中的存储单元并不是物理内存的地址,但具有相关性)例如://定义了一个改变参数值的函数public static void changeValue(int x) {  x = x *2;}public class TestMain{//调用该函数int num = 5;System.ou...

2020-05-01 10:04:23

运行时常量池是什么

前言:记录一下常量池。

2020-05-01 09:15:04

用二进制如何表示浮点型数值

前言:大学期间计组没有学习好,导致怎么用浮点数表示二进制一直有点蒙,今天看到一篇不错的博文介绍这方面的,故转载记录一下。

2020-05-01 08:50:50

计操小记

前言:记一下小知识点。

2020-04-28 20:13:50

String的抽丝剥茧

先放一个我觉得有点用的图,害:然后我直接上我的String源码吧,对一些重要方法进行了注释:package java.lang;import java.io.ObjectStreamField;import java.io.UnsupportedEncodingException;import java.nio.charset.Charset;import java.util.A...

2020-04-25 21:27:10

Java 重载、重写和隐藏的区别

前言:最近复习Java基础时,发现之前有个知识点(隐藏)被我忽略了,一直弄成了覆盖的意思,害,说明基础不够牢固。自己测试了一遍果然发现了隐藏的不一样的地方,这里自己就懒得写总结了,转载别人写的比较好的一篇。

2020-04-24 20:32:31

HashMap的抽丝剥茧

前言:对于HashMap的一些重点方法进行了注释。还有大多数没有进行注释的部分就尽量不弄进来了,以免影响观看。

2020-04-24 20:02:08

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到王者
    签到王者
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力探索
    原力探索
    参与《原力计划【第二季】——打卡挑战》的文章入选【每日精选】的博主将会获得此勋章。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。