Java programmers must---Java senior face questions [BATJ]

Point of attention, do not get lost; continually updated Java-related technologies and information architecture thermal paper! ! !

Sharp-eyed friend may also see this blog page upper left corner there are surprises yo

A basic knowledge of:

  1. Collections: List Set and comparison, comparing respective sub-classes (ArrayList, Vector, LinkedList; HashSet, TreeSet);
  2. The realization of the underlying HashMap, then ask the underlying implementation of ConcurrentHashMap;
  3. Sequentially storing how HashMap: refer to the underlying implementation of LinkedHashMap;
  4. HashTable and ConcurrentHashMap difference;
  5. String, StringBuffer and StringBuilder difference;
  6. What method of Object: for example, there are methods wait, why are there;
  7. Difference wait and sleep, you must understand;
  8. The memory structure JVM, the JVM algorithm;
  9. Strong references, cited the difference between soft and weak references;
  10. How to allocate the array in memory;
  11. What design pattern used, a handwriting (except single cases);
  12. What is the core springmvc that the request process is how to deal, how to achieve inversion of control;
  13. What is the principle spring aop is inside;
  14. How mybatis result set: reflection, it is recommended to see the source code;
  15. Where java multi-state performance;
  16. What is the use interfaces;
  17. Talk http, https protocol;
  18. tcp / ip protocol stack;
  19. osi five network protocol;
  20. tcp, udp difference;
  21. What used encryption algorithms: symmetric encryption, asymmetric encryption algorithm;
  22. Tcp talk about the three-way handshake, waving four times;
  23. The difference between cookie and session, distributed environment how to save the user state;
  24. git, svn difference;
  25. Please write a stack overflow, heap overflow in the code;
  26. ThreadLocal it can be used to share data;

Second IO:

  1. bio, nio, aio difference;
  2. nio framework: dubbo implementation principle;
  3. Jingdong internal communications protocol jsf What to use: See the protocol dubbo;

Three algorithms:

  1. java heap and stack often said, what are the data structure; In addition, why is divided into the heap and stack to store data.
  2. How to insert data TreeMap: binary tree l, d, ambidextrous;
  3. After a sorted array, insert data, what methods can be used? A: The dichotomy; Q: How much time complexity?
  4. 平衡二叉树的时间复杂度;
  5. Hash算法和二叉树算法分别什么时候用;

四. 多线程相关:

  1. 说说阻塞队列的实现:可以参考ArrayBlockingQueue的底层实现(锁和同步都行);
  2. 进程通讯的方式:消息队列,共享内存,信号量,socket通讯等;
  3. 用过并发包的哪些类;
  4. 什么地方用了多线程;
  5. Excutors可以产生哪些线程池;
  6. 为什么要用线程池;
  7. volatile关键字的用法:使多线程中的变量可见;

五. 数据库相关(mysql):

  1. msyql优化经验:
  2. mysql的语句优化,使用什么工具;
  3. mysql的索引分类:B+,hash;什么情况用什么索引;
  4. mysql的存储引擎有哪些,区别是什么;
  5. 说说事务的特性和隔离级别;
  6. 悲观锁和乐观锁的区别,怎么实现;

六. mq:

  1. mq的原理是什么:有点大。。都可以说;
  2. mq如何保证实时性;
  3. mq的持久化是怎么做的;

七. nosql相关(主要是redis):

  1. redis和memcache的区别;
  2. 用redis做过什么;
  3. redis是如何持久化的:rdb和aof;
  4. redis集群如何同步;
  5. redis的数据添加过程是怎样的:哈希槽;
  6. redis的淘汰策略有哪些;
  7. redis有哪些数据结构;

八. zookeeper:

  1. zookeeper是什么;
  2. zookeeper哪里用到;
  3. zookeeper的选主过程;
  4. zookeeper集群之间如何通讯;
  5. 你们的zookeeper的节点加密是用的什么方式;
  6. 分布式锁的实现过程;

九. linux相关:

  1. linux常用的命令有哪些;
  2. 如何获取java进程的pid;
  3. 如何获取某个进程的网络端口号;
  4. 如何实时打印日志;
  5. 如何统计某个字符串行数;

十. 设计与思想:

  1. 重构过代码没有?说说经验;
  2. 一千万的用户实时排名如何实现;
  3. 五万人并发抢票怎么实现;

Guess you like

Origin blog.csdn.net/Java_No01/article/details/90670926