涨薪关键之反射机制,引得项目经理对你的看重,加薪触手可及!!!

最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

最新整理面试题
在这里插入图片描述

上述的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题

最新整理电子书

在这里插入图片描述

最新整理大厂面试文档

在这里插入图片描述

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

5.Class类的常用方法


public Constructor<?>[] getConstructors() throws SecurityException //获取类的全部构造

public Field[] getDeclaredFields() throws SecurityException//获取类中全部的属性

public Field[] getFields() throws SecurityException //获取继承的全部属性

public Method[] getMethods() throws SecurityException//获取一个类中的所有方法

public Class<?>[] getInterfaces() //获取类实现的所有接口

public native Class<? super T> getSuperclass();//获取类的父类

//加入Java开发交流君样:593142328一起吹水聊天

6.Class应用


(1)通过无参构造实例化对象

String packageName =“com.jdy.bean.Dog”;

Class<?> aClass = Class.forName(packageName);

Dog dog = (Dog)aClass.newInstance(); //使用newInstance()必须保证实例化类中存在一个无参构造器

(2)调用有参构造器实例化对象

public int getModifiers()//获取构造方法的修饰符

public String getName()//获取构造方法的名称

public Class<?>[] getParameterTypes()//获取构造方法的参数类型

public T newInstance(Object … initargs)//像构造方法,传入参数实例化对象

constructor = (Constructor) aClass.getConstructor(String.class, String.class, String.class);

Dog dog1 = constructor.newInstance(“二狗子”, “黑背”, “8”);

(3)获取类结构

  • Constructor:表示类的构造器

  • Field:表示类的属性

  • Method:表示类的方法

取得所有实现的接口

[] interfaces = aClass.getInterfaces();

取得父类

Class<?> superclass = aClass.getSuperclass();

取得全部构造器

Constructor<?>[] constructors = aClass.getConstructors();

将访问修饰符由数字转化成可看懂的

int modifiers = declaredField.getModifiers();

System.out.println("modifiers = " + Modifier.toString(modifiers));

取得所有的方法

Method[] methods = aClass.getMethods();

取得全部属性

//得到实现的接口或父类中的公共属性

Field[] fields = aClass.getFields(); //得到本类当中的全部属性

Field[] declaredFields = aClass.getDeclaredFields();

Field的常用方法

//得到一个对象中属性的具体内容

public Object get(Object obj)throws IllegalArgumentException, IllegalAccessException

//设置指定对象中属性的具体内容

public void set(Object obj, Object value) throws IllegalArgumentException, IllegalAccessException

//得到属性的修饰符

public int getModifiers() //返回属性的名称

public String getName() //判断属性是否可悲外部访问

public boolean isAccessible() //设置一个属性是否可被外部方法

public void setAccessible(boolean flag) throws SecurityException

//加入Java开发交流君样:593142328一起吹水聊天

(4)通过反射待用类中的方法

Method destory_method = aClass.getMethod(“destory_method”); //invoke方法的参数是一个实例化的对象

Object invoke = destory_method.invoke(aClass.newInstance());

(5)通过方法操作属性

反射中通过Field类提供的set()/get()完成设置和取得属性内容的操作,但是类中的属性都设置成私有的访问权限,所以在使用set()/get()方法时首先要使用Field()中的setAccessible(true),方法将需要操作的属性设置成可被外部访问。

Field field0 = personClass.getDeclaredField(“address”); //todo 什么校验

field0.setAccessible(true);

field0.set(person,“xian”);

System.out.println(person);

一般给类的属性赋值,不建议使用以上方法,因为扩大了属性的访问权限,建议使用类中属性的getter/setter方法

5.ClassLoader:类的加载器 类的加载器是用来把类(class)装载进内存的,JVM规范定义了两种类型的类加载器: 启动类加载器(bootstrap) 用户类加载器(user-defind class loader) JVM 在运行时会产生3个类加载器组成的初始化加载器层次结构

image

Bootstrap ClassLoader:引导类加载器:用C++编写,时jVM自带的类加载器,负责JAVA平台核心类库的加载。该加载器无法直接获取资料

//3.引导类加载器不能直接获取

ClassLoader parent1 = parent.getParent();

System.out.println("引导类加载器 = " + parent1);//null

Extension ClassLoader:负责jre/lib/ext目录下的jar包或者 -D java.ext.dirs指定目录下的jar包装入工作库

//2.获取扩展类加载器

ClassLoader parent = loader.getParent();

System.out.println("扩展类加载器 = " + parent);

System ClassLoader:系统类加载器,负责java -classpath或者 -D java.class.path所知的目录下的类与jar包装入工作,是最常用的加载器

Java核心架构进阶知识点

面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Java核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、Spring相关、分布式、微服务、RPC、网络、设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的

image

image

image

内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

[外链图片转存中…(img-wrymoOwI-1715690363940)]

[外链图片转存中…(img-IbhzhJZh-1715690363940)]

内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 15
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值