java面试题
### 单例模式
```java
public class demo1 {
/*
饿汉式 :
优点 先天性线程安全 当类初始化的时候 该对象就会被创建
缺点 如果项目中使用过多的饿汉式就会发生问题,项目启动会很慢,存放在方法区中占用内存较大
*/
private static demo1 singleTon = new demo1();
private demo1(){
}
public static demo1 getInstance(){
return singleTon;
}
}
public class demo2 {
private static demo2 singleTon;
//懒汉式的单例模式
private demo2(){
}
public static demo2 getInstance(){
if(singleTon==null){
singleTon = new demo2();
}
return singleTon;
}
}
```
### Spring Bean 的生命周期
```
实例化 Instantiation
属性赋值 Populate
初始化 Initialization
销毁 Destruction
作用域
singleton : 唯一 bean 实例,Spring 中的 bean 默认都是单例的。
prototype : 每次请求都会创建一个新的 bean 实例。
request : 每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP request 内有效。
session : 每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP session 内有效。
global-session: 全局 session 作用域,仅仅在基于 Portlet 的 web 应用中才有意义,Spring5 已经没有了。
```
### 双亲委派 向上委派向下查找
