1、equals和==和hashcode “==”是运算符,比较两个变量的值是否相等 equals是Object类的方法。比较两个对象是否相等 hashcode是Object类的方法,返回一个哈希值。(数值)2、string、 stringbuilder、 stringbuffer区别 string:不可变序列 stringbuilder:可变的字符序列,线程安全。(单线程情况下,有大量的字符串操作使用) stringbuffer:可变的字符序列,线程不安全,效率高。(单线程情况下,有大量的字符串操作使用)3、list set map区别Array List,linklist区别,hashmap和hashtable区别 list:可重复的集合 set:不可重复的集合 map:键值对,key不能重复,值可以重复,存储的数据是没有顺序 arraylist:若是批量随机的插入删除数据,LinkedList的速度大大优于ArrayList. 因为ArrayList每插入一条数据,要移动插入点及之后的所有数据。 linklist:对于新增和删除操作add和remove,若只对单条数据插入或删除,ArrayList的速度反而优于LinkedList hashmap:线程不安全的,不是同步的。HashMap允许存在一个为null的key,多个为null的值 hashtable:线程安全的,是同步的。hashtable的key和value都不允许为null。4、面向对象特征,多态(实现方法),重写重载区别 封装:把描述一个对象的属性和行为封装成一个类 继承:实现代码的复用,所有子类继承父类的属性和行为,继承具有单一性和传递性 多态:就是重载和重写。(强制类型转换和向上、向下转型)(行为多态和对象多态) 重写:发生在继承类中,方法名、参数类型、返回类型都相同 重载:发生在类中,同名不同参。5、接口和抽象类 (1)接口中的方法都是抽象的,抽象类可以是抽象和非抽象的 (2)类可以实现多个接口,只能继承一个抽象类 (3)接口都是public,抽象类可以是private,protected,public (4)都不能被实例化6、静态变量和实例变量的区别 静态方法不能调用非静态方法,静态方法在首次调用类的时候加载 静态变量:可以直接调用类名引用 实例变量:必须创建对象后通过它调用此对象来使用7、线程创建方式 (1)继承Thread类创建线程 (2)实现Runnable接口创建线程 (3)使用Callable和Future创建线程 (4)使用线程池例如用Executor框架8、线程常用方法 1)、start()启动线程 2)、run()执行 3) 、sleep()休眠 4)、isAlive()死亡状态 5)、currentThread()返回当前CPU资源的线程 6)、interrupt()导致休眠的线程发生InterruptedException异常,从而结束休眠,重新排队等待CPU资源。9、线程的生命周期 1)、 New(初始化状态) 2)、 Runnable(可运行/运行状态) 3)、 Blocked(阻塞状态) 4)、Waiting(无时间限制的等待状态) 5)、Timed_Waiting(有时间限制的等待状态) 6)、Terminated(终止状态)10、Synchronized的理解 互斥锁,锁住一块代码区
转载于:https://www.cnblogs.com/caiwx/p/11188429.html