大家好,我是二哥呀。传统美德不能丢,屏幕下方记得点赞👍再看养成习惯哈~
作为一名正儿八经的米粉,一直关注着小米公司的动态,这不,雷军又添一员猛将,DeepSeek V2 大模型的主要开发者罗福莉将加盟小米。
DeepSeek 是一家国内的大模型初创公司,中文寓意是深度求索,与国内很多烧钱的公司不同,DeepSeek 是有盈利的。
DeepSeek V2 模型在 GitHub 上已有近 4k star,它的推理成本降到了每百万 token 仅 1 块钱,约等于 GPT4 Trubo 的七十分之一。
点开 DeepSeek V2 的核心贡献者,就可以看到罗福莉的身影。
看了看小姐姐 star 的项目,基本上都是清一色的大模型相关。她的签名“Love coding, love life.”我非常喜欢,这才是人生该有的态度啊。
小姐姐非常牛,北京大学的硕士,曾发表过多篇顶会,毕业后加入阿里达摩院,当时还有幸加到了小姐姐的微信。
我就不截图自证清白了,你们说我在吹牛皮也行。总之,小姐姐最新的朋友圈停留在 10 月 31 日,我记得她说,或许没有一个最好的 timing 离开自己珍视的地方,但现在还不错。
2022 年,小姐姐离开阿里加入 DeepSeek,担任深度学习研究员。时隔两年加盟小米后,据说小姐姐将领导小米 AI 实验室的大模型团队。
有句名言怎么说来着?“
得开发者者得天下
。”罗福莉的加入,意味着小米的大模型业务要更上一层楼了。
恭喜雷总!
说起来,和小米也真的非常有缘,技术派团队的核心开发者,楼仔、一灰、小超,都是小米的员工。
技术派首页
时至今日,技术派在 GitHub 上也有 2.2k 的 star 了,代码提交次数更是来到了 1179 次。
很多 24 届、25 届的小伙伴都是靠这个项目拿到大厂 offer 的,比如说下面这位球友,直言实习靠技术派拿到了蚂蚁金服中间件的 offer,秋招更是拿到了四五个大厂的 offer。
也算是兑现了我当初的一个承诺吧,给大家在工作的时候提供一个可以写到简历上的实战项目。
最近有不少小伙伴已经开始筹备暑期实习和春招了,那我们就以《Java 面试指南》中收录的同学 D 小米一面为例,来看看小米的面试官都喜欢问哪些八股。
背八股就认准三分恶的面渣逆袭
能看得出来,小米这次的八股还是比较简单的,主要集中在 Java 基础、并发编程、JVM 上,大家在准备面试的时候也一定要注意每家公司的特点,好针对性地去复习。
同学 D 小米一面
java支持多继承吗
Java 不支持多继承,一个类只能继承一个类,多继承会引发菱形继承问题。
class A {
void show() { System.out.println("A"); }
}
class B extends A {
void show() { System.out.println("B"); }
}
class C extends A {
void show() { System.out.println("C"); }
}
// 如果 Java 支持多继承
class D extends B, C {
// 调用 show() 方法时,D 应该调用 B 的 show() 还是 C 的 show()?
}
线程的生命周期
线程的生命周期可以分为五个主要阶段:新建、可运行、运行中、阻塞/等待、和终止。线程在运行过程中会根据状态的变化在这些阶段之间切换。:
三分恶面渣逆袭:Java线程状态变化
线程和进程的区别
进程说简单点就是我们在电脑上启动的一个个应用。它是操作系统分配资源的最小单位。
线程是进程中的独立执行单元。多个线程可以共享同一个进程的资源,如内存;每个线程都有自己独立的栈和寄存器。
三分恶面渣逆袭:进程与线程关系
单例模式有几种
单例模式有 5 种实现方式,常见的有饿汉式、懒汉式、双重检查锁定、静态内部类和枚举。
写一下双重锁的单例
双重检查锁用 synchronized 同步代码块替代了 synchronized 同步方法。并且在 instance 前加上 volatile 关键字,防止指令重排,因为
instance = new Singleton()
并不是一个原子操作,可能会被重排序,导致其他线程获取到未初始化完成的实例。
class Singleton {
private static volatile Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
gc中判断对象可回收的方式有哪些
Java 通过可达性分析算法来判断一个对象是否还存活。
通过一组名为 “GC Roots” 的根对象,进行递归扫描,无法从根对象到达的对象就是“垃圾”,可以被回收。
三分恶面渣逆袭:GC Root
gc垃圾回收算法有哪些
垃圾收集算法主要有三种,分别是标记-清除算法、标记-复制算法和标记-整理算法。
那些对象可以作为gc root
在 Java 中,GC Roots 包括以下几种:
-
-
-
-
运行时常量池中的常量(String 或 Class 类型)
二哥的 java 进阶之路:GC Roots
gc中的引用计数法有哪些缺陷
三分恶面渣逆袭:引用计数法
引用计数法无法解决循环引用的问题。例如,两个对象互相引用,但不再被其他对象引用,它们的引用计数都不为零,因此不会被回收。
抽象类和接口的区别