1、== 与 equals 的区别
==在比较基本类型数据时,比较的是值;在比较内存中的对象地址,即是否指向同一个对象,相当于指针的操作
equals在没有重写方法时,在一定意义上相当于==,但我们一般都是自己重写
2、throwable有哪些子类,你遇到过哪些运行时的异常
Error与Exception
NullPointerException、SQLException、IndexOutOfBoundsException、ClassCastException、IllegalArgumentException
3、创建线程的方法
(1)继承Thread类创建线程
(2)实现Runnable接口创建线程
(3)使用Callable和Future创建线程
4、关于i++多线程访问的问题
由于是多线程操作,我们需要采用线程安全,即synchornized来限制同一时间内对同一变量的访问,但由于i++不是原子操作,具有偶然性,会导致重复情况的出现,所以我们使用i.getAndIncrement()
5、对关于java中的垃圾回收机制的理解
首先我们将对象分为可达与不可达对象,其中可达是指对象中有值,而不可达是对象=null,系统的垃圾回收器将会负责回收所有不可达的对象空间。但我们需要注意的一点是在Java中,程序员是无权调用回收器的,可以通过system.gc(),通知GC运行回收。然而存在 finalize方法,它是Java提供给程序员用来释放对象或者资源的方法,建议少用获取不用。