今天面试了大搜车,面试官是一个很NICE人,主要问的问题都是JAVA基础。
1.多态的理解
1.1多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)
1.2 实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。
1.3多态的作用:消除类型之间的耦合关系。
1.4 多态存在的三个必要条件
一、要有继承;
二、要有重写;
三、父类引用指向子类对象。
2.权限
3.关键字volatile:确保应用中的可视性。
如果你将一个域申明为volatile的,那么只要对这个域产生的写操作,那么所有的读操作就都可以看到这个修改。即使使用了本地缓存,情况也是如此,volatile域会立即被写入到主存中,而读取操作也在主存中。在非volatile域上的原子操作不必刷新到主存中去,因此其他读取改域的任务也不必看到这个新值。如果有多个任务同时访问这个域,那么这个域应该是volatile。
4.集合认识,特别问了ConcurrentMap线程安全Map类
5.快速排序
6.设计模式,让我写了单例模式(加了同步)