2024年Java最全Java反射的简单入门,spring代理模式面试题

总结

总体来说,如果你想转行从事程序员的工作,Java开发一定可以作为你的第一选择。但是不管你选择什么编程语言,提升自己的硬件实力才是拿高薪的唯一手段。

如果你以这份学习路线来学习,你会有一个比较系统化的知识网络,也不至于把知识学习得很零散。我个人是完全不建议刚开始就看《Java编程思想》、《Java核心技术》这些书籍,看完你肯定会放弃学习。建议可以看一些视频来学习,当自己能上手再买这些书看又是非常有收获的事了。

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

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

import org.junit.Test;

/**

  • Class的简单使用方法

  • @author 70241

*/

public class ClassDemo {

@Test

public void classTest1() {

try {

Class class1 = Class.forName(“com.dingyu.User”);// 第一种获取Class对象的方法

User user = new User();

Class class2 = user.getClass();// 第二种获取Class对象的方法

Class class3=User.class;//第三种获取Class对象的方法

System.out.println(“接下来判断到底同一类的不同对象的Class对象是不是同一个:”

  • (class1.hashCode() == class2.hashCode()&&class1.hashCode() == class3.hashCode()));

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

@Test

public void classTest2() {

String[] s1 = new String[10];

String[] s2 = new String[30];

String[][] s3 = new String[3][30];

System.out.println(s1.getClass().hashCode()==s2.getClass().hashCode());

System.out.println(s1.getClass().hashCode()==s3.getClass().hashCode());

}

}

2.Class获取类的属性,构造器,方法和注解的简单使用

package com.dingyu;

import java.lang.annotation.Annotation;

import java.lang.reflect.Constructor;

import java.lang.reflect.Field;

import java.lang.reflect.Method;

import org.junit.Test;

/**

  • Class的简单用法

  • @author dingyu

*/

public class ClassDemo02 {

@Test

public void usingClass() throws Exception {

Class userClass = Class.forName(“com.dingyu.User”);

// 获得类名

System.out.println(userClass.getName());// 获得全类名

System.out.println(userClass.getSimpleName());// 获得类名

// 获得属性

Field[] fields = userClass.getDeclaredFields();// 获得所有的属性

for (Field field : fields) {

System.out.println(field.getName());

}

System.out.println(userClass.getDeclaredField(“id”).getName());// 获得指定的属性

// 获得方法

Method[] methods = userClass.getDeclaredMethods();// 获得所有的方法

for (Method method : methods) {

System.out.println(method.getName());

}

Method method = userClass.getDeclaredMethod(“setId”, int.class);// 获得指定的方法,前面方法名,后面方法的参数

System.out.println(method.getName());

// 获得构造器

Constructor[] constructors = userClass.getDeclaredConstructors();

System.out.println(constructors.length);

Constructor constructor = userClass.getDeclaredConstructor(int.class, String.class, int.class);// 获得指定的构造器,需要指定构造的参数

System.out.println(constructor.getName());

// 获得注解

Annotation[] annotations = userClass.getAnnotations();

for (Annotation annotation : annotations) {

System.out.println(annotation);

}

// 指定注解名

MyAnnotation annotation = (MyAnnotation)userClass.getDeclaredAnnotation(MyAnnotation.class);

System.out.println(annotation);

}

}

3.Class动态的调用构造器,方法,修改属性

package com.dingyu;

import java.lang.reflect.Constructor;

import java.lang.reflect.Field;

import java.lang.reflect.Method;

import org.junit.Test;

/**

  • 使用反射动态的调用构造器,方法,修改属性

  • @author 70241

*/

public class ClassDemo03 {

@Test

@SuppressWarnings(“all”)

public void usingClass() throws Exception {

Class class1 = Class.forName(“com.dingyu.User”);

//使用反射去调用构造器

User user1 = (User) class1.newInstance();//调用的是无参的

Constructor constructor = class1.getDeclaredConstructor(int.class,String.class,int.class);//获得有参的构造器

最后

面试是跳槽涨薪最直接有效的方式,马上金九银十来了,各位做好面试造飞机,工作拧螺丝的准备了吗?

掌握了这些知识点,面试时在候选人中又可以夺目不少,暴击9999点。机会都是留给有准备的人,只有充足的准备,才可能让自己可以在候选人中脱颖而出。

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

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

备,才可能让自己可以在候选人中脱颖而出。

[外链图片转存中…(img-QaBLCdbr-1714857708846)]

[外链图片转存中…(img-8Oyy5S5Z-1714857708846)]

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

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

  • 9
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值