雷军豪掷千万年薪!这位95后AI天才少女到底有多强?

科技   2025-01-02 15:14   上海  

最近国产大模型 DeepSeek V3 版本发布,在全球火了一把。

DeepSeek 是国内人工智能公司深度求索(DeepSeek)自主研发的大语言模型。它最新的 V3 版本各项数据已经和国外 AI 巨头不相上下。

而且这个 MoE 模型总参数量高达 671B,激活参数量 37B,使用了 14.8T token 进行训练,消耗了 278.8 万 H800 卡时,训练成本仅为 560 万美元!

随之火起来的是 DeepSeek 的“天才少女”罗福莉。她之前是 DeepSeek 的深度学习研究员,是 DeepSeek-V2 关键开发者之一

在职业生涯中,罗福莉曾在阿里巴巴达摩院担任机器智能实验室的研究员,主导开发了多语言预训练模型VECO,该模型被纳入阿里达摩院的深度语言模型体系AliceMind。

2022年,她离开阿里,加入DeepSeek,担任深度学习研究员,参与了DeepSeek-V2的开发直到现在的 V3 。

DeepSeek V3 爆火的同时,也传出她加入小米大模型实验室的消息。

早在 2019 年,罗福莉就曾经因为在自然语言处理顶级会议 ACL 2019 上发表 8 篇论文引起热议(8篇什么含金量?)。

罗福莉亲自在知乎回复了这个问题。只能说大佬不愧是大佬。

据说这次是小米创始人雷军亲自出手挖人,开出了千万年薪。这个年薪的真假,鸭鸭不好说,但百度百科上罗福莉的个人信息已经更新为小米 AI 实验室相关负责人。

最近 DeepSeek 的招聘也火起来,有兴趣的同学可以试着投一投。

……

回归今天的面试题:

什么是 Java 中的动态代理?

回答重点

Java 中的动态代理是一种在运行时创建代理对象的机制。动态代理允许程序在运行时决定代理对象的行为,而不需要在编译时确定。它通过代理模式为对象提供了一种机制,使得可以在不修改目标对象的情况下对其行为进行增强或调整。

代理可以看作是调用目标的一个包装,通常用来在调用真实的目标之前进行一些逻辑处理,消除一些重复的代码。

静态代理指的是我们预先编码好一个代理类,而动态代理指的是运行时生成代理类。

扩展知识

动态代理主要用途

  • 简化代码:通过代理模式,可以减少重复代码,尤其是在横切关注点(如日志记录、事务管理、权限控制等)方面。
  • 增强灵活性:动态代理使得代码更具灵活性和可扩展性,因为代理对象是在运行时生成的,可以动态地改变行为。
  • 实现 AOP:动态代理是实现面向切面编程(AOP, Aspect-Oriented Programming)的基础,可以在方法调用前后插入额外的逻辑。

Java 动态代理与 CGLIB 代理

  • Java 动态代理:只能对接口进行代理,不支持对类进行代理。
  • CGLIB 代理:通过字节码技术动态生成目标类的子类来实现代理,支持对类(非接口)进行代理。

JDK 示例代码

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

// 目标接口
interface MyService {
   void doSomething();
}

// 目标对象的实现
class MyServiceImpl implements MyService {
   @Override
   public void doSomething() {
       System.out.println("Doing something...");
   }
}

// 动态代理处理器
class MyInvocationHandler implements InvocationHandler {
   private final Object target;

   public MyInvocationHandler(Object target) {
       this.target = target;
   }

   @Override
   public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
       System.out.println("Before method call");
       Object result = method.invoke(target, args);
       System.out.println("After method call");
       return result;
   }
}

// 使用动态代理
public class Main {
   public static void main(String[] args) {
       MyService target = new MyServiceImpl();
       MyService proxy = (MyService) Proxy.newProxyInstance(
           target.getClass().getClassLoader(),
           target.getClass().getInterfaces(),
           new MyInvocationHandler(target)
       );

       proxy.doSomething();
   }
}

CGLIB 示例代码

import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;

// 目标类
class MyService {
   public void doSomething() {
       System.out.println("Doing something...");
   }
}

// CGLIB 代理处理器
class MyInterceptor implements MethodInterceptor {
   @Override
   public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {
       System.out.println("Before method call");
       Object result = proxy.invokeSuper(obj, args);
       System.out.println("After method call");
       return result;
   }
}

// 使用 CGLIB 动态代理
public class Main {
   public static void main(String[] args) {
       Enhancer enhancer = new Enhancer();
       enhancer.setSuperclass(MyService.class);
       enhancer.setCallback(new MyInterceptor());

       MyService proxy = (MyService) enhancer.create();
       proxy.doSomething();
   }
}


最后

再来推荐下我们的面试刷题网站和小程序:面试鸭!



咱们面试鸭立志成为一款题库全面、持续更新、题解优质的刷题神器,主要目的就是为了彻底解决所有你能想到的八股文学习痛点!


我们精选了近两年的高频面试真题,已经有 9000 多道面试题目啦,由大厂资深面试官手写答案,押题命中率超高!


不仅有传统八股文,场景题、项目题、系统设计题等等应有尽有,还在不断更新中!


现在邀请好友注册并成为会员,还可获得最高 50% 的分佣🧧!详情见面试鸭拉新邀请有赏规则(网页版面试鸭点击头像查看)

网页端网址:mianshiya.com


欢迎关注面试鸭,每日获取经典面试题和优质题解,我们下期见~



往期推荐

爆料!京东提前发放年终奖,是真有 20 薪啊!

腾讯阿里员工 39 岁被裁员后说自己财富自由,不上班了,所以得攒了多少钱才能躺平?

真·你码没了!

偷偷汇总了25届华为薪资情况!

互联网大厂春节假期盘点,怎么都开始卷起来了?

一个哥们在北京互联网大厂上班,压力大想躺平,我问他有躺的资格吗?然后他就把他的公积金截图发给我,这公积金水平在北京属于什么段位?

互联网大厂员工存款展示

程序员鱼皮
一手科技热点和编程干货 | 免费编程学习网 codefather.cn
 最新文章