1.final,finally,finalize的区别?

Final声明类不可被继承,声明方法不可被重写,声明变量为常量必须赋值
Finally try catch finally中的,表示不论是否有异常,都执行finally语句段
Finalize表示垃圾回收机制中自动被调用的方法

2.运行时异常和编译时异常有什么区别?

运行时异常:代码运行过程中产生的异常,程序可以通过编译,不需要强制throws或者try catch捕获异常
JVM自动处理捕获异常
非运行时异常(编译时异常):程序编译过程中产生的异常,如果产生异常,程序无法通过编译,需要程序员手动try catch捕获或者继续抛出
例如:SimpleDateFormatparse方法抛出的ParseException异常

3.throw和throws的区别?

throw:
方法体中使用,抛出一个具体的异常,即抛出一个异常对象
throws:
方法声明时候使用,表示该方法可能抛出的异常,如果抛出多个异常用逗号隔开,谁调用谁处理

4.String,StringBuffer,StringBuild的区别?

String:不可变长度字符串
StringBuffer:是可变长度字符串,默认有16位缓冲区,通过append方法追加字符串;真实长度通过capacity()方法获取。线程安全,效率低
StringBuilder:线程不安全,效率高

5.说出你用过哪些类,哪些接口?哪些抽象类?

类:Math,System,String,Integer,Byte,Double,Short,Hash Map,TreeMap,HashSet,ArrayList,LinkedList
接口:List,Map,Set,Conllection
抽象类:Calendar

6.说出String的常用方法5个?

length()
indexOf(String abc,int index)
charAt(int index)
toCharArray()
valueOf(Object obj)
lastIndexOf(String str)
compareTo(String str)
toLowerCase()
toUpperCase()
equals(String str)
replace(String str)
split(String str)
trim()

7.如何获取随机整数?如何获取随机小数?

java.util.Random://获取随机整数:nextint(int i)
java.lang.Math.random();获取0-1之间的随机小数

8.线程和进程的区别?

线程:一段可执行的代码块,他的执行过程,即一个线程:或者说进程中的一个执行路径
进程:一个可执行的应用程序,一个进程中包括一个或多个线程共同完成多个任务

9.如何开启一个线程?

开启一个线程通过start方法开启,,表示该线程准备就绪

10.启动线程为何不调用run方法?

调用start方法启动线程表示该线程准备就绪,该线程会作为当前主线程的一个子线程运行,虚拟机会自动调用run方法