5分钟彻底理解-Java自动装箱、拆箱 面试资料 什么是自动装箱,拆箱先抛出定义,Java中基础数据类型与它们的包装类进行运算时,编译器会自动帮我们进行转换,转换过程对程序员是透明的,这就是装箱和拆箱,装箱和拆箱可以让我们的代码更简洁易懂Java中基础数据类型与它们对应的包装类见下表(共8种):原始类型包装类型booleanBooleanbyteBytecharCharacterfloatFloatintIntegerlongLongshortS...
说说JVM垃圾回收和回收算法 面试资料 首先如何判断一个对象是否还被引用?引用计数法 对象头维护一个count,当对象被引用+1,引用失效-1,等到count=0就回收,但是两个对象相互引用会造成资源浪费可达性分析 通过GC Roots的对象作为起点,从这些起点开始乡向下搜索,搜索做过的路称为引用链,当一个对象到GC Roots没有任...
面向切面编程(Aspect-oriented Programming,俗称AOP) 面试资料 关于AOP面向切面编程(Aspect-oriented Programming,俗称AOP)提供了一种面向对象编程(Object-oriented Programming,俗称OOP)的补充,面向对象编程最核心的单元是类(class),然而面向切面编程最核心的单元是切面(Aspects)。与面向对象的顺序流程不同,AOP采用的是横向切面的方式,注入与主业务流程无关的功能,例如事务管理和日志管理。S...
分布式系统的CAP理论 面试资料 1. CAP理论的历史 2000年7月,Eric Brewer教授提出CAP猜想;2年后,Seth Gilbert和Nancy Lynch从理论上证明了CAP;之后,CAP理论正式成为分布式计算领域的公认定理。2. CAP的背景和定义 CAP理论讨论的对象是分布式场景。一个分布式系统需要满足三个...
String,StringBuffer与StringBuilder的区别 | 线程安全与线程不安全 面试资料 String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指...
面试官:说说双亲委派模型? 面试资料 在说双亲委派模型之前首先得先了解一下类加载阶段。类的加载阶段类加载阶段分为加载、连接、初始化三个阶段,而加载阶段需要通过类的全限定名来获取定义了此类的二进制字节流。Java特意把这一步抽出来用类加载器来实现。把这一步骤抽离出来使得应用程序可以按需自定义类加载器。并且得益于类加载器,OSGI、热部署等领域才得以在JAVA中得到应用。在Java中任意一个类都是由这个类本身和加载这个类的类加载器来确定这...