java基础
一、集合容器。
1.各实现类比较类型:如:list/set/map/queue、ArrayList/LinkedList、HashMap/HashTable、HashMap/TreeMap/TreeSet/HashSet
2.各实现类上下继承实现关系:
3.各实现类扩容机制:ArrayList/HashMap
4.各实现类的存储数据结构及添加(删除)细节原理:HashMap(hash表数组+链表+红黑树)、ArrayList(数组)、LinkedList(链表)、TreeMap(红黑树)、LinkedHashMap(链表+数组+红黑树)、ConcurrentHashMap(分区数组+hashmap的结构)等等
5.线程安全和非安全的实现类举例和用法:ConcurrentHashMap/Vector/HashTable
6.如何保证集合类的线程安全:a.用sychronized修饰;b.用Collections类转换(set=Collections.synchronizedSet(set););c.直接使用线程安全类(java.util.concurrent包下的东西)
7.BlokingQueue阻塞式队列的理解及应用
8.Collections的理解及应用
二、常识知识点(面试题一大堆,只列举我不知道的,各位不要局限于此啊)
1.J2SE 提供的最后一个批注是 @SuppressWarnings。该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默
2.捋下“==”和equals
a.“==”两边参数是原始类型时,比较其jvm栈中或方法区常量池中的值是否相同;两边参数是自定义引用变量时,效果同equals,比较的是变量引用的实例对象是否是一个东西(即实例对象的地址是否相同)
b.比较自定义对象应用中,equals只是比较是否相同,可以延伸到比较大小。因此要对两个自定义对象比较大小或排序,则需:(i)要将该类实现comparable接口重写obj1.compareTo(obj2)方法;(ii)外部或匿名内部类定义比较器类实现Comparator并重写compare(obj1,obj2)。注意:重写这两方法时需要按定义选取比较因素,若为字符串型直接取取hashcode
c.实际业务中,通常要比较两个自定义对象的属性值是否相同,而Object.equals()默认比较的是否为指向同一地址,所以此时需要重写equals方法。重写时,必须重写Object.hashcode()方法,因为equals满足true的前提是hashcode值也相同。注意:String类重写了equals方法。
JVM
1.jvm内存区域:方法区、堆、jvm栈、native栈(理解native方法,如hashacode、wait(long)、notify、notifyAll、clone等)
2.jvm垃圾回收机制gc:什么时候(miniorGC/majorGC)、对谁(目标不可达对象、空间分配担保)、做了什么(分代回收算法、复制算法、标记-清除算法、标记-整理算法、根搜索算法、引用计数算法)
3.jmm理解及如何避免其引起的并发时变量共享问题(用volient修饰,将变量相对于应用游离化)
4.指令重排序
5.java执行过程
算法
1.常见的数据结构及应用:数组、散列表、链表、队列、栈、树(二叉树、平衡树、b树、b+树、b-树、红黑树等)、无向图、有向图(gc的根搜索算法应用)
2.排序算法:插入排序、希尔排序、冒泡排序、选择排序等(搞懂常见的就ok)
设计模式
1.单例:懒汉、饿汉、登记
2.观察者:zookeeper的监听节点特点
3.工厂:简单工厂、工厂方法
4.门面/外观:socket编程的设计、shiro中subject的设计等
5.代理模式
6.。。。。。
数据库
1.mysql数据库引擎:innodb、myisam、memory了解这三个应该就够了,从区别回答
2.索引类型+实现原理+创建选型
3.mysql数据库优化方向:sql优化+集群+主从复制读写分离+分库分表依据
4.事务理解及管理
开发框架
1.spring框架作用+ioc+aop原理及应用场景,要能给出具体编码配置肯定加大分
2.springMVC具体的工作流程
3.mybatis关键的配置+与hibernate的区别。(真有一个面试官问我Mybatis中参数为集合时在xml中如何处理)
4.spring如何管理事务的:通过aop。类比:分布式应用中如何管理事务的(代码级别):面试官给的答案是可以把拆分的流程封装并装入缓存里保证事务的ACID。
5.dubbo实现原理(若没用过可不用了解):五个组件需要理解。面试官:provider一个节点挂掉后是如何通知注册中心的?答:注册中心zookeeper与provider之间保持长连接,通过ticktime心跳。
6.zookeeper实现原理(若没用过可不用了解):实用场景、节点类型、实现原理机制(主要就是长连接心跳监测)
7.springboot(若没用过可不了解):springboot的好处、如何工作的流程。
中间件
1.kafka
2.rabitMQ
未完待续。。。。