1.接口和抽象类的区别
- 接口的方法默认是 public,所有方法在接口中不能有实现
- 接口中都是抽象方法,抽象类中还可以有普通方法
- 抽象类中可以有构造器,接口中没有
- 接口中的实例变量默认是 final 类型的,而抽象类中则不一定
- 一个类可以实现多个接口,但最多只能实现一个抽象类
- 一个类实现接口的话要实现接口的所有方法,而抽象类不一定
- 接口中变量一定是静态的常量
2.抽象方法不能和哪些关键词共存?
1.private:修饰的方法只能在本类中使用,而抽象方法要求必须让子类实现,两者互相矛盾
2.final:修饰的方法不能被重写,而且只能赋值一次,而抽象方法必须要被重写,互相矛盾
3.static:修饰的方法可以通过类名直接调用,而抽象方法是没有方法体的,调用没有意义
3.接口中的方法不能和哪些关键词同时存在
- final修饰的方法为最终方法不能被重写的,但是接口中的方法都是抽象方法必须被重写,两者矛盾
- private修饰的方法或属性只能在本类中使用,抽象方法是需要被继承或实现类进行重写的
- static修饰的方法或变量可以直接通过类名进行调用,抽象方法是没有方法体的,调用无意义
4.==和equals的区别
1.==用于基本数据类型时 比较的是值 , 用于引用数据类型时 比较的是地址
2.equals 在字符串中是先比较地址后比较内容
5.final、finally、finalize的区别
final修饰的变量叫常量,只能赋值一次
final修饰的放大叫最终方法,不能被重写
final修饰的类叫最终类,不能被继承
finally是异常汇总的一部分,最终必然会执行的代码块
finalize是垃圾回收机制的执行方法
6.sleep和wait的区别
sleep是线程Thread类中提供的用于暂停线程的方法
wait是Object类中提供的用于让线程等待的方法
7.get与post请求的区别
1.get重点在从服务器上获取资源,post重点在向服务器发送数据
2.Get传输的数据量小,因为受URL长度限制,但效率较高;Post可以传输大量数据,所以上传文件时只能用Post方式;
3.Get不安全,因为URL是可见的,可能会泄露私密信息,如密码等;Post安全性较高;
4.get方式只能支持ASCII字符,向服务器传的中文字符可能会乱码。post支持标准字符集,可以正确传递中文字符。
8.http中重定向和请求转发的区别
1.重定向特点:至少两次请求,浏览器地址发生变化,可以访问自己web之外的资源,传输的数据会丢失
2.请求转发特点:只有一次请求,浏览器地址不变,访问的是自己本身的web资源,传输的数据不会丢失