您当前位置:首页 > 资源优势 > 平台资源 >

平台资源

谈谈 Java 反射机制,动态代理是基于什么原理?

发布时间:06-16    点击数:

请注意:本文为编辑制作专题转载的资讯,页面显示的时间仅为生成静态页面时间而非具体内容事件发生的时间,由此给您带来的不便敬请谅解!

工作多年以及在面试中,我经常能体会到,有些面试者确实是认真努力工作,但坦白说表现出的能力水平却不足以通过面试,通常是两方面原因:

1、“知其然不知其所以然”。 做了多年技术,开发了很多业务应用,但似乎并未思考过种种技术选择背后的逻辑。坦白说,我并不放心把具有一定深度的任务交给他。

2、知识碎片化,不成系统。 在面试中,面试者似乎无法完整、清晰地描述自己所开发的系统,或者使用的相关技术。平时可能埋头苦干,或者过于死磕某个实现细节,并没有抬头审视这些技术。

前人已经掉过的坑,后来的同学就别再“前仆后继”了!

那么我们就来谈谈 Java 反射机制,动态代理原理吧。

这个面试题目给我的第一印象是稍微有点诱导的嫌疑,可能会下意识地以为动态代理就是利用反射机制实现的,这么说也不算错但稍微有些不全面。

功能才是目的,实现的方法有很多。

总的来说,这道题目考察的是 Java 语言的另外一种基础机制: 反射,它就像是一种魔法,引入运行时自省能力,赋予了 Java 语言令人意外的活力,通过运行时操作元数据或对象,Java 可以灵活地操作运行时才能确定的信息。 而动态代理,则是延伸出来的一种广泛应用于产品开发中的技术,很多繁琐的重复编程,都可以被动态代理机制优雅地解决。

从考察知识点的角度,这道题涉及的知识点比较庞杂,所以面试官能够扩展或者深挖的内容非常多,比如:

考察你对反射机制的了解和掌握程度。

动态代理解决了什么问题,在你业务系统中的应用场景是什么?

JDK 动态代理在设计和实现上与 cglib 等方式有什么不同,进而如何取舍?

上一篇:Oracle:相信我,Java 仍然是免费的!
下一篇:java程序员面试必备知识:java的动态代理