电话:
关闭
您当前的位置:首页 > 职场资讯 > 企业招聘

中科院研究所招聘Java后端工程师,北京15-30k高薪岗位等你来投

来源:网络整理 时间:2025-01-12 作者:佚名 浏览量:

大家好,我是二哥。

一位微信读者请求帮忙发布招聘帖子,帮助公司招聘人员。中科院的一个研究所作为大家找工作的工具,我就爽快地答应了。

我问了工资,但不知道具体多少,但范围确定是15-30k,我觉得还可以。

招人去哪个平台_招人_招人文案

尤其是年后打算跳槽的(或者已经被团队紧缩的),可以尝试:基地北京,Java后端岗位,集团内直接晋升。

我还将向您发送职位描述。

招人文案_招人去哪个平台_招人

您可以点击图片查看放大图

我用文字描述一下,方便大家快速了解关键信息:

基本上,这就是我一直向大家强调的。这几乎是 Java 后端工程师的标配,除了大数据。

如果符合要求,可直接将简历发送至读者邮箱:puc624@aliyun.com

如果要发到二哥的邮箱也可以给你查一下:@163.com

邪面渣逆袭三点

这是一组在 GitHub 上开源的刻板印象。相信很多朋友都已经记住了。面试时与面试官交谈过的朋友可以进行口碑传播。今天我们整理了JVM章节的第9题。这道题涉及到一个新的知识点,叫做TLAB。有兴趣的朋友可以研究一下。

招人文案_招人_招人去哪个平台

关注即可获取 GitHub 上拥有 13,000+ 颗星的渣男逆袭 PDF 版本(深色、浅色和 epub)。

9. 你能告诉我对象的内存布局吗?

好的

对象的内存布局是由Java虚拟机规范定义的,但具体实现细节各不相同,例如HotSpot和OpenJ9。

以我们常用的HotSpot为例。

对象在内存中包括三部分:对象头、实例数据和对齐填充。

招人去哪个平台_招人文案_招人

三点邪面渣男逆袭:物体的存储布局是怎样的?请介绍一下对象头的作用?

对象头是对象在内存中存储的元信息,包括Mark Word、类型指针等信息。

Mark Word 存储对象的运行时状态信息,包括锁、哈希值、GC 标记等,在 64 位操作系统下占用 8 个字节,在 32 位操作系统下占用 4 个字节。

类型指针指向对象所属类的元数据,即Class对象,用于支持多态、方法调用等功能。

除此之外,如果对象是数组类型,还会有一个额外的数组长度字段。占用4个字节。

类型指针会被压缩吗?

类型指针可以被压缩以节省内存空间。例如,当压缩指针开启时,占用4个字节,否则占用8个字节。在 JDK 8 中,默认启用压缩指针。

您可以使用 java -XX:+PrintFlagsFinal -version | grep UseCompressedOops 命令检查 JVM 是否启用了压缩指针。

招人_招人文案_招人去哪个平台

二哥的Java进阶之道:检查JVM是否开启了压缩指针

如果启用压缩指针,则输出结果中的 bool UseCompressedOops 值为 true。

你了解实例数据吗?

学习一些东西。

实例数据是对象的实际字段值,即成员变量的值,按照类中声明字段的顺序存储。

class ObjectDemo {
    int age;
    String name;
}

JVM 将对齐/重新排列这些数据以提高内存访问速度。

你了解对齐填充吗?

由于JVM的内存模型要求对象的起始地址是8字节对齐的(在64位JVM中),因此对象的总大小必须是8字节的倍数。

如果对象头和实例数据的总长度不是8的倍数,JVM将填充额外的字节以对齐。

例如,对象头+实例数据=14字节,则需要填充2字节,使总长度为16字节。

为什么要进行8字节对齐呢?

因为CPU进行内存访问时,一次寻址的指针大小为8字节,这正是L1缓存行的大小。如果不进行内存对齐,可能会发生跨Cache Line访问,导致额外的Cache Line负载,CPU访问效率会降低。

招人文案_招人_招人去哪个平台

rickiyang:缓存线污染

例如上图中,obj1占用6个字节。由于缺乏对齐,这一行缓存中多了2个字节的obj2数据。当CPU访问obj2时,缓存行将被刷新。

换句话说,8字节对齐是一种提高效率、以空间换时间的解决方案。

招人_招人去哪个平台_招人文案

rickiyang: 000 结束 new Object() 对象的内存大小是多少?

一般来说,当前的操作系统都是64位的,JDK 8中默认启用压缩指针。因此,在 64 位 JVM 上,new Object() 的大小为 16 字节(12 字节对象头 + 4 字节对齐填充)。

招人去哪个平台_招人文案_招人

rickiyang:Java 对象模型

对象头的大小是固定的,32位JVM上为8字节,64位JVM上为16字节;如果启用压缩指针,则为 12 字节。

实例数据的大小取决于对象的成员变量及其类型。对于new Object()来说,由于默认没有成员变量,所以我们可以认为此时的实例数据大小为0。

如果MyObject对象有3个成员变量,分别是int、long和byte类型,那么它们占用的内存大小分别是4字节、8字节和1字节。

class MyObject {
    int a;        // 4 字节
    long b;       // 8 字节
    byte c;       // 1 字节
}

考虑到对齐填充,MyObject 对象的总大小为 12(对象头)+ 4(a) + 8(b) + 1(c) + 7(填充)= 32 字节。

你用过JOL来查看对象的内存布局吗?

用过的。

JOL是一个分析JVM对象布局的工具。

第一步,在pom.xml中引入JOL依赖:

<dependency>
    <groupId>org.openjdk.jolgroupId>
    <artifactId>jol-coreartifactId>
    <version>0.9version>
dependency>

第二步,使用JOL编写代码示例:

public class JOLSample {
    public static void main(String[] args) {
        // 打印JVM详细信息(可选)
        System.out.println(VM.current().details());

        // 创建Object实例
        Object obj = new Object();

        // 打印Object实例的内存布局
        String layout = ClassLayout.parseInstance(obj).toPrintable();
        System.out.println(layout);
    }
}

第三步是运行代码并查看输出:

招人去哪个平台_招人文案_招人

二哥的Java进阶之路:JOL运行结果

您可以看到信息“偏移量”、“大小”、“类型描述”和“值”。

从上面的结果可以看出,对象头为12字节,有4字节的padding。 New Object()总共有16个字节。

你知道物体的参考尺寸吗?

在64位JVM上,未启用指针压缩时,对象引用占用8个字节;当启用指针压缩时,对象引用被压缩为 4 个字节。 HotSpot虚拟机默认启用压缩指针。

招人去哪个平台_招人文案_招人

dijia478:对象头

我们来验证一下:

class ReferenceSizeExample {
    private static class ReferenceHolder {
        Object reference;
    }

    public static void main(String[] args) {
        System.out.println(VM.current().details());
        System.out.println(ClassLayout.parseClass(ReferenceHolder.class).toPrintable());
    }
}

运行代码并查看输出:

招人文案_招人去哪个平台_招人

二哥的Java进阶之路:对象的引用有多大?

ReferenceHolder.reference 的大小为 4 个字节。

范阮的3 Java后端原问题包括:Object a = new object()的大小,对象引用占用多少大小?

结束

一个人可以走得快,但一群人可以走得更远。已有超过 6,900 名高尔夫球手加入。如果您也需要优质的学习环境,请加入我们。你可以阅读星球专栏(,,),向二哥提问,帮助你制定学习计划,与球友一起打卡成长。

如果您觉得有帮助,请随意关注。这将是我继续更新的最强烈动力()。

最后,我想向大家传达我二哥的座右铭:没有什么能让我留下来——除了我的目的。即使岸边有玫瑰,有绿荫,有安静的港湾,我也没有被拴在船上。

分享到:
相关推荐
暂无相关推荐
客服服务热线
7x24小时服务
关于我们
产品与服务
收费与推广
网站特色
咨询反馈
微信公众号
手机浏览

Copyright C 2018All Rights Reserved 版权所有 丽水招聘网 鄂ICP备2025091810号-6

地址:丽水市经济开发区生态产园集聚区 EMAIL:

Powered by PHPYun.

用微信扫一扫