java面试技术分享(上海)
前言
从无锡转到上海工作,前几年工作很一般,学到的也不多,导致这次换工作非常不顺利,其中有很多原因,别的暂且不说,只说这次面试遇到的各个问题,以及自己在这期间学了哪些东西。(第一次写,写作可能上会出现一些问题)。
一、个人背景简单介绍
写个人背景介绍,是为了给一些跟我经历类似的朋友更能够感同身受,同时吸取教训,千万不能再继续下去了。
首先,本人二类本科,学校普通,技术普通,毕业在一个中型公司呆了不久,觉得在项目组拧螺丝学不到东西,就出去了个小公司。小公司小到令人发指,后台就我一人,平时项目不多,有也是一些简单的东西,干了2年多,除了crud,别的都不会。
二、面试的主要技术栈
1、java基础不多说,会的越细越好,包括jvm内存模型,一定要详细,往下挖
2、jvm调优,一定要会,一定要知道怎么调,一定要有实际调优经验
3、数据库,sql调优(同上),引擎,B+树,存储过程、触发器
4、ssm,ssh框架及原理,哪怕没用过也要会。
5、数据机构与算法(要手写,笔试必考)
6、设计模式(要手写,起码4个以上,而且一定要在工作中实践过)
7、日志(日志管理,一定要说的清清楚楚,不能说我用了什么框架,具体)
8、tomcat优化,编几个问题,然后怎么解决的
9、web方面,js,html,css,jquery,最好有vue,react经验
10、集群(配置,nginx或者weblogic,一定要有实际配置经验),分布式(springcloud),消息队列(至少会2个rabbitmq,rocketmq,kafka),缓存数据库
11、项目部署经验,阿里云,腾讯云,linux操作;
12、并发经验,会从多线程开始问,包括最简单的实现多线程的方法(至少3个),然后是concurrenthashmap(必问,四家都问了,还问了让你实现你有什么思路)
三、总结
先列个12条,后面会详细的分别进行介绍。