基础篇
基本功
面向对象的特征
- 抽象
抽象使我们更接近于事物的本质。抽象的过程就是一个提炼存在于事物之间共同拥有的元素,而这些事务之间共同拥有的元素往往是这一事物区别于其他事物关键的东西,这些元素就构成了事物的本质. - 继承
既是拓展的过程,也是归类的过程。 - 封装
私有化的一个过程。 - 多态性
多种表达形式。
final, finally, finalize 的区别
- final,修饰变量,常量;修饰Class,不运行被继承;修饰方法,拒绝重载;总之就是只能这样了的意思。
- finally,抛出异常继续执行的代码块。
- finalize,是一个清理方法。
int 和 Integer 有什么区别
int是基础类型,Integer是int的包装类;Integer是一个对象。
重载和重写的区别
- 重载同一方法名称,但是不同参数,已达到多态的效果。
- 重写,也称覆盖,覆盖父类的方法。
抽象类和接口有什么区别
- 个人理解:抽象类有具体方法实现;接口中的方法,都是由继承类实现。
- 接口是对动作的抽象,而抽象类是对根源的抽象。
- 接口和抽象类都是继承树的上层,他们的共同点如下:
1.1 都是上层的抽象层。
1.2 都不能被实例化
1.3 都能包含抽象的方法,这些抽象的方法用于描述类具备的功能,但是不比提供具体的实现。 - 它们的区别如下:
2.1 在抽象类中可以写非抽象的方法,从而避免在子类中重复书写它们,这样可以提高代码的复用性,这是抽象类的优势;接口中只能有抽象的方法。
2.2 一个类只能继承一个直接父类,这个父类可以是具体的类也可是抽象类;但是一个类可以实现多个接口。
说说反射的用途及实现
用途:获取当前对象几乎所有的信息,属性,方法,注解等。
参考:反射理解基础
说说自定义注解的场景及实现
HTTP 请求的 GET 与 POST 方式的区别
- GET的语义是请求获取指定的资源。GET方法是安全、幂等、可缓存的(除非有 Cache-ControlHeader的约束),GET方法的报文主体没有任何语义。
- POST的语义是根据请求负荷(报文主体)对指定的资源做出处理,具体的处理方式视资源类型而不同。POST不安全,不幂等,(大部分实现)不可缓存。为了针对其不可缓存性,有一系列的方法来进行优化,以后有机会再研究(FLAG已经立起)。
参考:get和post区别
session 与 cookie 区别
session保存在服务器端的值;cookie是保存在客户端的值。
参考:COOKIE和SESSION有什么区别
session 分布式处理
JDBC 流程
MVC 设计思想
equals 与 == 的区别
集合
List 和 Set 区别
- List特点:元素有放入顺序,元素可重复。
实现类:ArrayList、LinkedList、Vector - Set特点:元素无放入顺序,元素不可重复
实现类:HashSet、LinkedHashSet、TreeSet
List 和 Map 区别
- Map不是collection的子接口或者实现类。Map是一个接口。
- Map 的 每个 Entry 都持有两个对象,也就是一个键一个值,Map 可能会持有相同的值对象但键对象必须是唯一的。
- TreeMap 也通过 Comparator 或者 Comparable 维护了一个排序顺序。
- Map 里你可以拥有随意个 null 值但最多只能有一个 null 键。
- Map 接口最流行的几个实现类是 HashMap、LinkedHashMap、Hashtable 和 TreeMap。(HashMap、TreeMap最常用)
参考:List、Set、Map的区别