摘要:
Runnable和Callable的区别 Runnable接口的run方法无返回值;Callable接口call方法有返回值,支持泛型 Runnable接口的run方法只能抛出运行时异常,且无法捕获处理;Callable接口Call方法允许抛出异常,可以获取异常信息 阅读全文
摘要:
创建线程的几种方式 ①、继承Thread类,并重写run方法创建线程,实现简单但不可以继承其他类 ②、实现Runnable接口,并重写run方法。避免了单继承局限性,编程更加灵活,实现解耦 ③、实现Callable接口,并重写call方法创建线程。可以获取线程执行结果的返回值,并且可以抛出异常 ④、 阅读全文
摘要:
List和Map、Set的区别 List和Set是存储单列数据的集合;Map是存储键值对这样的双列数据的集合 List中存储的数据是有序的,并且值可重复 Map中存储的数据是无序的,它的键不允许重复,但是值允许重复 Set中存储的数据是无序的,并且不允许重复,HashSet是靠hashCode和eq 阅读全文
摘要:
冒泡排序的实现 冒泡排序比较简单,如下所示 import java.util.Arrays; import java.util.Random; import java.util.Scanner; public class BubbleSort { public static void main(St 阅读全文
摘要:
单例模式的概念 在程序运行时,同一个类只有一个实例 单例模式的类型 饿汉式 public class Singleton { private static Singleton instance = new Singleton(); private Singleton(){} public stati 阅读全文
摘要:
接口和抽象类的区别 抽象类要被子类继承,接口要被类实现 接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量 接口可继承接口,并可多继承接口,但是类只能单继承 阅读全文