蜗牛君的NoteBook

剑指offer

java基础知识:

  • 1.1常用api;

  • 1.2 java数据结构:ArrayList扩容,HashMap结构,Hashset/Hashtable原理,Collection.sort用法,BlockingQueue用法,单链表结构,红黑树;

  • 1.3算法:单链表反转,排序算法。

  • java高级知识:
    1.1 JVM相关:JVM如何进行gc,JVM调优,垃圾回收算法,JVM内存模型,类加载机制,内存泄漏,内存溢出;

  • 1.2jdk提供的命令;

  • 1.3设计模式。

多线程相关:

多线程实现方式,对synchronized的理解,ConcurrentHashmap的结构和实现原理,ThreadPoolExcuter原理,volitale关键字;

Spring框架相关:

IOC和AOP,动态代理,Spring拦截机制。

数据库相关:

  • 5.1索引原理,mysql的最左匹配原则;

  • 5.2如何做读写分离,分库方法(ThreadLocal用法);

  • 5.3事务相关:事务的4个隔离级别,mysql默认的隔离级别,数据库锁(悲观锁,乐观锁),死锁的条件,事务注解的用法,OCID理解(原子性,有序性,可见性,幂等性)。

  • 5.4 mysql调优。

开源框架:

  • 6.1数据存储:memcache,redis利弊,redis锁,redis的aof和rdb落盘方式,redis集群部署,一致性哈希算法,Mongo数据库;

  • 6.2RokectMq(MQ消息丢失,MQ怎样监听,RoketMq高可用部署 );

  • 6.3 Dubbo服务(dubbo和HTTP的优劣),dubbo服务的调用过程;

  • 6.4Elasticjob(架构/流程图,执行过程,选举算法 ),其他作业调度框架(结合项目中用的调度方式),

  • 6.5mybatis用法;

  • 6.6关心的新技术有哪些。

常用linux高端命令:

top,netstat等。

WEB服务器:

tomcat用法,如何排除tomca无响应故障,apache,nginx,docker了解一下,nginx和lvs的区别。

网络编程方面:

常见的网络超时(CLOSE_WAIT,TIME_WAIT),如何避免重试的问题,http的cookie机制,CDN原理。

其他问题:

  • 在项目中遇到的最大的问题是什么?怎样解决的?
  • 从项目中学到了什么?

 Comments