1.Collection和Collections区别
Collection(接口):是集合类的上层接口,继承与他的接口有set,list
Collections(接口类):是一个集合框架的帮助类,提供一系列的静态方法实现对各种集合的搜索,排序等操作
2.Error与Exception的区别
Error(错误):是系统中的错误,程序员是不能改变的和处理的,是在程序编译时出现的错误,只能通过修改程序才能修正。例如:内存空间不足,系统崩溃
Exception(异常):表示程序可以处理的异常,可以捕获且可能恢复。
异常分为:
checkedException(编译异常):编写程序过程中try——catch捕获到的一场都是CheckedException。io包中的IOExecption及其子类,都是CheckedException。
RunTimeException(运行时异常):如indexOutOfBoundsException(索引超出范围异常),NullpointerException:空指针异常
3.同步与异步有何异同?在什么情况下使用他们?
同步:指发送一个请求,需要等待返回,然后才能够发送下一个请求,有个等待过程;
异步:指发送一个请求,不需要等待返回,随时能够发送下一个请求,不需要等待;
相同点:都属于交互方式,都是发送请求
不同点:同步有一个等待的过程,异步没有
同步相当于打电话,异步相当于广播
4.多线程面试题之启动一个线程是run()还是start()?他们有什么区别?
启动一个线程是start() 方法,是线程所代表的虚拟机处理处于可运行状态,由JVM自动调用run()方法,run()方法可以产生 必须退出的标志来停止一个线程 ,run()方法封装了被线程执行的代码,直接调用仅仅是普通方法的调用
5.重写与重载的区别:
方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。
重写(Override):发生于父类与子类之间,子类被重写方法与父类被重写方法有相同的参数列表,有兼容的返回类型,比父类被重写方法更好访问,
重载(Overload):发生在一个类中,要求同名方法的参数列表不同,返回值类型可以相同也可以不相同。
6.int和Integer有什么区别
int是基本数据类型,integer是引用数据类型,是int的包装类,
integer必需实例化后才能使用,int不用
integer默认值是null,int默认值为0
7.char 型变量中能不能存贮一个中文汉字?为什么?
char 类型可以存储一个中文汉字,因为 Java 中使用的编码是 Unicode, 一个 char 类型占 2 个字节(16bit),所以放一个中文是没问题的。
8.什么是java序列化,如何实现java序列化,Serializable接口的作用
序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。
必须实现Serializable接口,但是不同实现该接口的方法,此接口只是为了标注对象可以被序列化,然后使用输出流(如FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,使用该对象流对象的write()方法将参数obj的对象写出