1.用接口创建对象和用实现类创建对象的区别
//用接口创建对象
UserService userService = new UserServiceImpl();
//用实现类创建对象
UserServiceImpl userService = new UserServiceImpl();
接口的设计主要是为了实现多态的。
public interface UserService {
// 注册
public void regist();
}
//实现类:
public class UserServiceImpl implements UserService {
@Override
public void regist() {
System.out.println("区别");
}
}
当接口只有一个实现类的时候,没有区别,但是当一个接口有多个实现类且都实现了regist()方法的时候,此时我们就需要用不同的实现类给每一个实现类创建一个对象,但如果我们使用接口就可以之创建一个接口实现类。这就是多态。
你创建了一个接口对象,就可以用所有实现了该接口函数的类对象去实例化这个对象。
2.代理和动态代理
转到AOP与动态代理理解
3.try和catch
首先要清楚,如果没有try的话,出现异常会导致程序崩溃。
而try则可以保证程序的正常运行下去,比如说:
try{
int i = 1/0;
}catch(Exception e){
........
}
一个计算的话,如果除数为0,则会报错,如果没有try的话,程序直接崩溃。用try的话,则可以让程序运行下去,并且输出为什么出错!
try的话,配合log4j使用会对程序的日后维护帮助很大。