1. 你了解哪些排序算法?请说明二分查找法的基本思路。
冒泡排序,堆排序,选择排序,希尔排序,直接插入,二分插入,快速排序
2. error和exception的区别是什么?
error都是继承自父类java.lang.Error,Error是Throwable的子类,用于标记严重错误。合理的应用程序不应该去try/catch这种错误。绝大多数的错误都是非正常的,就根本不该出现的。
而exception都继承自java.lang.Exception.是Throwable的一种形式的子类,用于指示一种合理的程序想去catch的条件。即它仅仅是一种程序运行条件,而非严重错误,并且鼓励用户程序去catch它。
3. 运行时异常和检查期异常有什么区别
健壮性:指程序在多数情况下能够正常运行,返回预期的正确结果;如果偶尔遇到异常情况,程序也能采取周到的解决措施。
受检查异常:程序可以处理的异常,如果抛出异常的方法本身不能处理它,那么方法调用者应该去处理它,从而使程序恢复运行,不至于终止程序。
运行时异常:无法让程序恢复运行的异常,导致这种异常的原因通常是由于执行了错误操作。一旦出现了错误操作,建议终止程序,因此Java编译器不检查这种异常。
4. 什么是线程?线程和进程有什么区别?
一个正在运行的程序,可以理解为轻量级的进程,和进程一样有独立的地址空间和执行路径
进程有独立的代码和数据空间,切换内存开销大
线程是轻量级的进程,同一个线程共享代码和数据空间,切换内存开销小