这两年东哥为了招人,真是没少下猛药。这两天秋招开奖,一眼望去,都是大包。

汇总了一下研发和其他一些岗位的开奖反馈:

  • 后端开发,base 北京,24~30k * 20

  • 后端开发,base 成都,29k * 20

  • 前端开发,京东零售,base 北京,25~30k * 20

  • 客户端开发,base 北京,26k * 20

  • 测开,base 北京,29k * 20

  • 数据开发,base 北京,28k * 20

  • 算法,base 北京,35k * 20

  • 大模型算法,base 北京,50k * 20

  • 产品经理,base 北京,21.5~25k *20

  • 采销,base 北京/上海,15~19k * 20

目前反馈里,京东零售和京东科技的研发岗开奖比较多。拿到其他意向的同学可以再等等。不过和美团开奖类似的是,今年京东也很难议价,基本只给 1~3 天考虑是否接受 offer。

另外公积金比例,北京按 12%交,上海是按 7% 来交,但也分具体部门,拿到 offer 的同学也可以和 HR 再确认一下。

整体来看,东哥这波诚意还是很足的。后端白菜价,年包也接近 50w,对刚刚毕业的同学来说,是个非常不错的开始。

有同学担心绩效的 20 薪拿不满,HR 给的答复是,应届的同学有绩效保护,拿 B+ 就能拿满。而且最基础的 14 薪是 100% 能拿到的。这个不用太担心。

当然,东哥给的大方,现在的京东工作强度也不小,之前看到京东的同学的帖子:

image-20251105162102931

只能说收入和付出是成正比的。

如果想要 work-life balance 的同学,还是需要更慎重考虑一下。

至于京东校招的难度如何?我们今天就来分享一篇京东校招面经:

在这里插入图片描述

篇幅有限,完整答案可以进入面试鸭 - 程序员求职面试刷题神器,高频编程题目免费刷进行查阅。

Java创建线程的几种方式有哪些?

常见有以下五种方式创建使用多线程:

1)实现 Runnable 接口

  • 实现 Runnable 接口的 run() 方法,使用 Thread 类的构造函数传入 Runnable 对象,调用 start() 方法启动线程。
  • 例子:Thread thread = new Thread(new MyRunnable()); thread.start();

2)继承 Thread

  • 继承 Thread 类并重写 run() 方法,直接创建 Thread 子类对象并调用 start() 方法启动线程。
  • 例子:MyThread thread = new MyThread(); thread.start();

3)使用 CallableFutureTask

  • 实现 Callable 接口的 call() 方法,使用 FutureTask 包装 Callable 对象,再通过 Thread 启动。
  • 例子:FutureTask<Integer> task = new FutureTask<>(new MyCallable()); Thread thread = new Thread(task); thread.start();

4)使用线程池(ExecutorService

  • 通过 ExecutorService 提交 RunnableCallable 任务,不直接创建和管理线程,适合管理大量并发任务。
  • 例子:ExecutorService executor = Executors.newFixedThreadPool(10); executor.submit(new MyRunnable());

5)CompletableFuture(本质也是线程池,默认 forkjoinpool)

  • Java 8 引入的功能,非常方便地进行异步任务调用,且通过 thenApplythenAccept 等方法可以轻松处理异步任务之间的依赖关系。
  • CompletableFuture<Void> future1 = CompletableFuture.runAsync(() -> {});

类加载过程是什么?

类加载指的是把类加载到 JVM 中。把二进制流存储到内存中,之后经过一番解析、处理转化成可用的 class 类。

二进制流可以来源于 class 文件,或通过字节码工具生成的字节码或来自于网络。只要符合格式的二进制流,JVM 来者不拒。

类加载流程分为:

  1. 加载
  2. 连接
  3. 初始化

连接还能拆分为:验证、准备、解析三个阶段。

所以总的来看可以分为 5 个阶段:

1)加载

将二进制流读入内存中,生成一个 Class 对象。

2)验证

主要是验证加载进来的二进制流是否符合一定格式,是否规范,是否符合当前 JVM 版本等等之类的验证。

3)准备

为静态变量(类变量)赋初始值,也即为它们在方法区划分内存空间。这里注意是静态变量,并且是初始值,比如 int 的初始值是 0。

4)解析

将常量池的符号引用转化成直接引用。

符号引用可以理解为只是个替代的标签,比如你此时要做一个计划,暂时还没有人选,你设定了个 A 去做这个事。然后等计划真的要落地的时候肯定要找到确定的人选,到时候就是小明去做一件事。解析就是把 A(符号引用) 替换成小明(直接引用)。符号引用就是一个字面量,没有什么实质性的意义,只是一个代表。

直接引用指的是一个真实引用,在内存中可以通过这个引用查找到目标。

5)初始化

这时候就执行一些静态代码块,为静态变量赋值,这里的赋值才是代码里面的赋值,准备阶段只是设置初始值占个坑。

MySQL索引有哪些类型?

数据结构角度来看,MySQL 索引可以分为以下几类:

  • B+树索引
  • 哈希索引
  • 倒排索引(即全文索引 Full-Text)
  • R-树索引(多维空间树)

常见的基于 InnoDB B+ 树索引角度来看,可以分为:

  • 聚簇索引(Clustered Index)
  • 非聚簇索引(Non-clustered Index)

索引性质的角度来看,可以分为:

  • 普通索引(二级索引、辅助索引)
  • 主键索引
  • 联合索引
  • 唯一索引
  • 全文索引
  • 空间索引

更多

💻 编程学习交流:编程导航
📃 简历快速制作:老鱼简历
✏️ 面试刷题神器:面试鸭
📖 AI 学习指南:AI 知识库

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐