面试题
A__loser
为人应当锐意进取,不为往事所羁
展开
-
Java 类加载过程
一个 Class 类在JVM 中的生命周期如下:类加载的过程包含了加载、验证、准备、解析、初始化五个阶段。有时候也会将验证、准备、解析这三个阶段称为链接阶段。其中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则则不一定,他在某些情况下可以初始化之后开始,这是为了支持 Java 语言的运行时绑定(也称为动态绑定或晚期绑定)这几个阶段是按顺序开始,而不是按顺序进行或完成的...转载 2019-12-05 20:21:30 · 345 阅读 · 0 评论 -
关于 equals() 和 hashCode()方法
Object 类作为 Java 中所有对象的超类提供了以下方法:我们来看一看 JDK1.8中对于 equals()方法的描述:可以看到提醒我们如果重写了 equals()方法一定要重写 hashCode 方法。我们再来看一看对于 hashCode() 方法的描述:这个地方说明了三个事:对同一个对象的多次 hashCode()方法调用应该返回同一个值一个对象的equals()方法...原创 2019-12-04 20:45:57 · 764 阅读 · 0 评论 -
关于快速失败(fail-fast)和安全失败(fail-safe)的区别
fail-fast和fail-safe比较Iterator 的安全失败是基于对底层集合做拷贝,因此,它不受集合上的修改的影响。java.util 包下面所有的集合类都是安全失败的。快速失败的迭代器会抛出 ConcurrentModificationException 异常,而安全失败的迭代器永远不会抛出这样的异常。快速失败示例import java.util.ArrayList;impor...原创 2019-11-26 20:59:52 · 497 阅读 · 0 评论 -
ArrayList 和 Vector 的区别
首先这两个类都实现了 List 接口,而实现 List 接口一共三个类,Vector、ArrayList 和 LikedList。List 用于存放多个元素,能够维护元素的次序,并且允许元素重复,这三个类之间的相同与不同如下:底层数据结构区别,ArrayList 和 Vector 底层都通过数组实现,而 LinkedList 则通过链表实现。不同的数据结构决定了他们的特性,利用数组实现的 Ar...原创 2019-11-21 21:02:11 · 169 阅读 · 0 评论