null

null

 

强软弱虚        定义                GC回收条件       引用状态

强:

软:

弱:

虚:

 

标准:被GC回收的可能性:从大到小

      强引用  一级引用       0级对象=引用     创建对象—指向—一级对象   

            OutOfMemory   永不回收   

            中断强引用和某个对象之间的关联,引用赋值为null,JVM在合适的时间就会回收该对象。比如Vector类的clear方法中就是通过将引用赋值为null来实现清理工作

      软引用  二级引用       一级对象=引用     创建对象—指向—二级对象

             OutOfMemoryError之前回收  内存不足时回收

             特点:一个实例保存对一个Java对象,妨碍一级对象

             软引用可用来实现内存敏感的高速缓存,比如网页缓存、图片缓存等。使用软引用能防止内存泄露,增强程序的健壮性。

       弱引用  三级引用       二级对象=引用     创建对象—指向—三级对象

             描述非必须对象,GC时,无论内存是否充足,都会回收被弱引用关联的对象

            只有弱引用与之关联,如果存在强引用同时与之关联,则进行垃圾回收时也不会回收该对象

虚引用

ReferenceQueue引用队列

垃圾收集线程

https://www.cnblogs.com/huajiezh/p/5835618.html

单例模式: 饿汉式、懒汉式

饿汉式

public class SingleTon{
  private SingleTon(){
}
  //实例化放在静态代码块里可提高程序的执行效率了,但也可能更占空间
  private final static SingleTon instance = new SingleTon();
  public static SingleTon getInstance(){
  return instance;
}
}

懒汉式

 

public class SingleTon{
 private SingleTon(){}
 private static instance = null; //new SingleTon();
 public static synchronized SingleTon getInstace(){
 if(instance == null)
 instance = new SingleTon();
 return instance;
}
}

 

代理模式

静态代理

JDK动态代理

Cglib代理

反射

对象:  object.getClass()

类名:  ClassforName()

过滤器与拦截器

               作用域         生命周期  

拦截器:   action          多次              反射

过滤器:  request        一次               函数回调

 

Dubbo、Spring  Cloud  

Dubbo               轻量       基于TCP  性能2倍

Spring  Cloud    重量       基于Http

你可能感兴趣的:(Interview)