基础
Overload 和 Override 的区别?
方法的重写 Overriding 和重载 Overloading 是 Java 多态性的不同表现。重写 Overriding 是
父类与子类之间多态性的一种表现,重载 Overloading 是一个类中多态性的一种表现。如果
在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子
类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。
如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则
称为方法的重载(Overloading)。
多线程
1.进程和线程的区别是什么?
进程是执行着的应用程序,而线程是进程内部的一个执行序列。一个进程可以有多个线程。
线程又叫做轻量级进程。
2.创建线程有几种不同的方式?
有三种方式可以用来创建线程:
继承 Thread 类
实现 Runnable 接口
应用程序可以使用 Executor 框架来创建线程池
实现 Runnable 接口这种方式更受欢迎,因为这不需要继承 Thread 类。在应用设计中已经继
承了别的对象的情况下,这需要多继承(而 Java 不支持多继承),只能实现接口。同时,线
程池也是非常高效的,很容易实现和使用。
3.什么是死锁(deadlock)?
两个线程或两个以上线程都在等待对方执行完毕才能继续往下执行的时候就发生了死锁。结
果就是这些线程都陷入了无限的等待中。
集合
1.Java 集合类框架的基本接口有哪些?
Java 集合类提供了一套设计良好的支持对一组对象进行操作的接口和类。Java 集合类里面
最基本的接口有:
Collection:代表一组对象,每一个对象都是它的子元素。
Set:不包含重复元素的 Collection。
List:有顺序的 collection,并且可以包含重复元素。
Map:可以把键(key)映射到值(value)的对象,键不能重复。
2.hashCode()和 equals()方法的重要性体现在什么地方?
Java 中的 HashMap 使用 hashCode()和 equals()方法来确定键值对的索引,当根据键获取值
的时候也会用到这两个方法。如果没有正确的实现这两个方法,两个不同的键可能会有相同
的 hash 值,因此,可能会被集合认为是相等的。而且,这两个方法也用来发现重复元素。
所以这两个方法的实现对 HashMap 的精确性和正确性是至关重要的。
1149

被折叠的 条评论
为什么被折叠?



