JavaSE反射面试题有哪些

发布时间:2021-12-03 14:10:39 作者:iii
来源:亿速云 阅读:167

本篇内容主要讲解“JavaSE反射面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaSE反射面试题有哪些”吧!

说说你对 Java 中反射的理解

在运行状态,对于任意一个类,都能获取这个类的所有属性和方法,对任意一个对象,都能调用它的任意属性和方法。这种动态获取的信息及动态调用对象的方法即为Java的反射。

反射能做什么

在运行时判断一个类所具有的成员变量和方法在运行时判断任意一个对象所属的类在运行时构造一个类的对象在运行时调用任意一个对象的方法

class.forName和classLoader的区别

class.forName:

classLoader:

Class.forName(className):内部调用的方法是 Class.forName(className,true,classloader);第2个boolean参数表示类是否需要初始化, Class.forName(className)默认是需要初始化。一旦初始化,就会触发目标对象的static块代码执行,static参数也也会被再次初始化。

ClassLoader.loadClass(className):内部调用的方法是ClassLoader.loadClass(className,false);第2个 boolean参数,表示目标对象是否进行链接,false表示不进行链接,不进行链接意味着不进行包括初始化等一些列步骤,那么静态块和静态对象就不会得到执行

动静态代理的区别,什么场景使用?

静态代理通常只代理一个类,动态代理是代理一个接口下的多个实现类。

静态代理事先知道要代理的是什么,而动态代理不知道要代理什么东西,只有在运行时才知道。

动态代理是实现 JDK 里的 InvocationHandler 接口的 invoke 方法,但注意的是代理的是接口,也就是你的业务类必须要实现接口,通过 Proxy 里的 newProxyInstance 得到代理对象。还有一种动态代理 CGLIB,代理的是类,不需要业务类继承接口,通过派生的子类来实现代理。通过在运行时,动态修改字节码达到修改类的目的。

AOP 编程就是基于动态代理实现的,比如著名的 Spring 框架、Hibernate 框架等等都是动态代理的使用例子。

Java 的类加载器的种类都有哪些?

1、根类加载器(Bootstrap) --C++写的 ,看不到源码

2、扩展类加载器(Extension) --加载位置 :jre\lib\ext 中

3、系统(应用)类加载器(System\App) --加载位置 :classpath 中

4、自定义加载器(必须继承 ClassLoader)

类什么时候被初始化?

类的初始化步骤:

获得一个类对象有哪些方式?

到此,相信大家对“JavaSE反射面试题有哪些”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. javaSE知识点有哪些
  2. JavaSE指的是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

javase

上一篇:Xamarin Essentials中如何打开文件

下一篇:tk.Mybatis插入数据获取Id怎么实现

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》