赞
踩
这次面试我也做了一些总结,确实还有很多要学的东西。相关面试题也做了整理,可以分享给大家,了解一下面试真题,想进大厂的或者想跳槽的小伙伴不妨好好利用时间来学习。学习的脚步一定不能停止!
Spring Cloud实战
Spring Boot实战
面试题整理(性能优化+微服务+并发编程+开源框架+分布式)
其实就是动态加载一个指定的类,并获取该类中的所有的内容。而且将字节码文件封装成对象,并将字节码文件中的内容都封装成对象,这样便于操作这些成员。简单说:反射技术可以对一个类进行解剖。
反射就是把java类中的各种成分映射成一个个的Java对象
例如:一个类有:成员变量、方法、构造方法、包等等信息,利用反射技术可以对一个类进行解剖,把个个组成部分 映射成一个个对象。
反射的好处:大大的增强了程序的扩展性。
反射的基本步骤:
1、获得Class对象,就是获取到指定的名称的字节码文件对象。
2、实例化对象,获得类的属性、方法或构造函数。
3、访问属性、调用方法、调用构造函数创建对象。
可以节省很多资源,动态加载
我们的项目底层有时是用mysql,有时用oracle,需要动态地根据实际情况加载驱动类,
这个时候反射就有用了,
假设 com.java.dbtest.myqlConnection,com.java.dbtest.oracleConnection这两个类我们要用,
这时候我们的程序就写得比较动态化,通过Class tc =Class.forName(“com.java.dbtest.TestConnection”);
通过类的全类名让jvm在服务器中找到并加载这个类,而如果是oracle则传入的参数就变成另一个了。
这时候就可以看到反射的好处了,这个动态性就体现出java的特性了!
Java中使用反射获取一个类的全部信息
public static void getFunctionAllMessages(String className) throws ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { // className为类的全名 Class c = Class.forName(className); // 获取类名 System.out.println("类名:" + c.getSimpleName()); // 获取父类名 System.out.println("父类名:" + c.getSuperclass().getSimpleName()); // 获取这个类的全部方法 Method[] methods = c.getMethods(); System.out.println("方法有:"); for (int i = 0; i < methods.length; i++) { // 打印这个方法的修饰符 返回类型 方法名 System.out.println(Modifier.toString(methods[i].getModifiers()) + " " + methods[i].getReturnType().getName() + " " + methods[i].getName() + "();"); // 反射调用特定方法 // if(methods[i].getName().equals("isEmpty")) { // Object ob = c.newInstance(); // System.out.println("===="+methods[i]); // System.out.println(methods[i].invoke(ob)); // } } System.out.println("属性有:"); // 获取这个类的全部属性 Field[] fields = c.getDeclaredFields(); for (int i = 0; i < fields.length; i++) { // 打印属性的 修饰符 类型 名称 System.out.println(Modifier.toString(fields[i].getModifiers()) + " " + fields[i].getGenericType() + " " + fields[i].getName()); }
//类加载
Class clazz = Class.forName(“cn.itcast.bean.Person”);
// 直接获得指定的类型
clazz = Person.class;
// 根据对象获得类型
Object obj = new Person(“zhangsan”, 19);
clazz = obj.getClass();
互联网大厂比较喜欢的人才特点:对技术有热情,强硬的技术基础实力;主动,善于团队协作,善于总结思考。无论是哪家公司,都很重视高并发高可用技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。其实我写了这么多,只是我自己的总结,并不一定适用于所有人,相信经过一些面试,大家都会有这些感触。
**另外本人还整理收藏了2021年多家公司面试知识点以及各种技术点整理 **
下面有部分截图希望能对大家有所帮助。
CNTl2-1715149877887)]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。