![](https://csdnimg.cn/release/download_crawler_static/88844507/bg1.jpg)
面试题一:Java 是值传递还是引用传递?
Java 是值传递。这意味着当将一个变量传给一个方法的时候,我们实际上是传递
的是这个变量的的副本。
但是对于对象来说,我们传递的是其的副本,我们不可以改变对象的引用本身,
但是我们可以调用其方法和修改其字段
class Person {
String name;
Person(String name) {
this.name = name;
}
}
void changeName(Person person, String newName) {
person.name = newName;
}Person john = new Person("John");
changeName(john, "Jack");
System.out.println(john.name); // 输出 "Jack"void changeName(Person
person, String newName) {
person = new Person(newName);
}
Person john = new Person("John");
changeName(john, "Jack");
System.out.println(john.name); // 输出 "John"
面试题二:反射的使用场景有哪些?如何实现反射?
在 Java 中,反射一种特性,它允许运行中的 Java 代码对自身进行检查,并对类,
字段,方法进行操作。以下是反射的常见使用场景:
1. Spring AOP 功能:Spring 是一个功能强大的企业级开发框架,它广泛使用反射来实
现依赖注入,AOP(面向切片编程)等功能。通过反射,Spring 能够在运行时动态地
构建和管理对象,并且依赖注入到对象中
2. MyBaits Plus 框架:MyBatis Plus 是一个强大的 ORM (对象关系映射)架,它是基于
MyBatis 架的增强框架,MyBatis Plus 中大量使用了反射机制,例如 MyBatis Plus
通过反射来分析实体类的字段和方法,从而动态地生成 SOL 语句和处理数据库操作。
通过反射,可以获取实体类的属性、字段名称、数据类型等信息,并将其映射到数
据库表的列。