面试题简单整理-JavaSE高级

面试题整理-JavaSE高级

反射

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。

获取字节码的常用方法
  1. Class.forName
  2. 类名.class
  3. this.getClass()

类加载器

  1. 根类加载器(Bootstrap)
  2. 扩展类加载器(Extension)
  3. 系统(应用)类加载器(System\App)
  4. 自定义加载器(必须继承 ClassLoader)
双亲委托机制

当类加载器加载一个 class 时,它首先不会自己去尝试加载这个类,而是把类加载请求委派给父类加载器去完成,若父类加载器加载失败,在让父类的父类去加载

类的几种初始化
  1. 创建类的实例,也就是 new 一个对象
  2. 访问某个类或接口的静态变量,或者对该静态变量赋值
  3. 调用类的静态方法
  4. 反射
  5. 初始化一个类的子类(会首先初始化子类的父类)
  6. JVM 启动时标明的启动类,即文件名和类名相同的那个类

内存模型

  • 堆(可以通过代码分配内存)
  • 栈(后进先出,由系统分配内存)
  • 方法区
    • 常量池
  • 程序计数器

设计模式

  • 创建型
    • 工厂方法模式
    • 抽象工厂模式
    • 单例模式
      • 懒汉式
        	public class Singleton{
        		private static volatile Singleton singleton = null;
        		private Singleton(){}
        		public static Singleton getInstance(){
        			if(singleton == null){
        					return new Singleton();
        			}
        		}
        	}
        
      • 饿汉式
         public class Singleton{
         	public static Singleton instance = new Singleton();
         	private Singleton(){}
         	public static Singleton getInstancce(){
         		return instance;
         	}
         }
      
    • 建造者模式
    • 原型模式
  • 结构型模式
    • 适配器模式
    • 装饰器模式
    • 代理模式
    • 外观模式
    • 桥接模式
    • 组合模式
    • 享元模式
  • 行为型模式
    • 策略模式
    • 模板方法模式
    • 观察者模式
    • 迭代子模式
    • 责任链模式
    • 命令模式
    • 备忘录模式
    • 状态模式
    • 访问者模式
    • 中介者模式
    • 解释器模式

JVM

GC

主要回收JVM 中的方法区和堆

GC算法
  1. 标记—清除算法
  2. 复制算法
  3. 标记—整理算法
  4. 分代收集
  5. 根搜索算法

根搜索算法是通过一些“GC Roots”对象作为起点,从这些节点开始往下搜索,搜索通过的路径成为引用链(Reference Chain),当一个对象没有被 GC Roots 的引用链连接的时候,说明这个对象是不可用的。
GC Roots:
a) 虚拟机栈(栈帧中的本地变量表)中的引用的对象。
b) 方法区域中的类静态属性引用的对象。
c) 方法区域中常量引用的对象。
d) 本地方法栈中 JNI(Native 方法)的引用的对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值