程序员的知识教程库

网站首页 > 教程分享 正文

名校内卷新趋势:简历都穿在身上了,985、211真的拼到这一步?

henian88 2025-02-24 16:31:30 教程分享 13 ℃ 0 评论

大家好,我是鸭鸭!

前两天深圳的全国高校毕业生秋季双选会上,有位同学把简历印在T恤上,吸引了在场许多目光。

为了避免大家看不清,鸭鸭复述一下这位同学的简历信息:本科是西工大飞行器设计与工程专业,研究生转码,求职方向是 AI 大模型或者算法工程师,期望薪资在20k??12。

这一幕多少有点让人想起美国经济萧条时期那张经典的照片:

现在985、211都这么卷了吗?

听说已经有 HR 联系他,看来还是勇敢的人能够先享受世界。

他不是选择这条求职野路子的第一人,鸭鸭在 7 月的时候就刷到另一位武大的同学把简历印在 T 恤上乘坐高铁,吸引了一波话题。

现在找工作,要实习,要项目,还要被面试官拷打,也难怪大家精神状态都如此超前。

为了更好通过面试,欢迎大家来找鸭鸭刷题。

面试鸭现在已经有 9000 多道面试题目,涵盖 200 多个题库,除了传统八股文,场景题、项目题、系统设计题也是应有尽有。

今天的面试题已经为大家准备好了。

使用过 Java 的反射机制吗?如何应用反射?

回答重点

Java 的反射机制是指在运行时获取类的结构信息(如方法、字段、构造函数)并操作对象的一种机制。反射机制提供了在运行时动态创建对象、调用方法、访问字段等功能,而无需在编译时知道这些类的具体信息。

反射机制的优点:

  • 可以动态地获取类的信息,不需要在编译时就知道类的信息。
  • 可以动态地创建对象,不需要在编译时就知道对象的类型。
  • 可以动态地调用对象的属性和方法,在运行时动态地改变对象的行为。

扩展知识

一般在业务编码中不会用到反射,在框架上用的较多,因为很多场景需要很灵活,不确定目标对象的类型,届时只能通过反射动态获取对象信息。

例如 Spring 使用反射机制来读取和解析配置文件,从而实现依赖注入和面向切面编程等功能。

反射的性能考虑:

反射操作相比直接代码调用具有较高的性能开销,因为它涉及到动态解析和方法调用。

所以在性能敏感的场景中,尽量避免频繁使用反射。可以通过缓存反射结果。例如把第一次得到的 Method 缓存起来,后续就不需要再调用 Class.getDeclaredMethod 也就不需要再次动态加载了,这样就可以避免反射性能问题。

反射基本概念:

Class 类:反射机制的核心,通过 Class 类的实例可以获取类的各种信息。

反射的主要功能:

  • 创建对象:通过 Class.newInstance()Constructor.newInstance() 创建对象实例。
  • 访问字段:使用 Field 类访问和修改对象的字段。
  • 调用方法:使用 Method 类调用对象的方法。
  • 获取类信息:获取类的名称、父类、接口等信息。

反射的使用:

1)获取 Class 对象:

Class clazz = Class.forName("com.mianshiya.MyClass");
// 或者
Class clazz = MyClass.class;
// 或者
Class clazz = obj.getClass();

2)创建对象:

Object obj = clazz.newInstance(); // 已过时
Constructor constructor = clazz.getConstructor();
Object obj = constructor.newInstance();

3)访问字段:

Field field = clazz.getField("myField");
field.setAccessible(true); // 允许访问 private 字段
Object value = field.get(obj);
field.set(obj, newValue);

4)调用方法:

Method method = clazz.getMethod("myMethod", String.class);
Object result = method.invoke(obj, "param");

反射的最佳实践:

  • 限制访问:尽量避免过度依赖反射,尤其是在性能关键的代码中。
  • 使用缓存:缓存反射获取的类、方法、字段等信息,减少反射操作的频率。
  • 遵循设计原则:在设计系统时,尽量使用更稳定和易于维护的设计方案,只有在确实需要时才使用反射。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表