回顾一下本身这段时间的经历,去年十二月份的时候,公司通知了裁人,我匆匆忙忙地出去面了几家,但最终都没有拿到offer,我感受今年的寒冬有点冷。后续的面试过程我作了一些准备,基本都能走到hr面,后面我也顺利地拿到了offer,我给你们分享下个人求职体会,但愿能给你们一些参考。java
下面说一下本身面试过程遇到的一些具体题目和面试心得。mysql
多个线程同时读写,读线程的数量远远大于写线程,你认为应该如何解决并发的问题?你会选择加什么样的锁?linux
JAVA的AQS是否了解,它是干吗的?web
除了synchronized关键字以外,你是怎么来保障线程安全的?面试
Tomcat自己的参数你通常会怎么调整?redis
你有没有用过Spring的AOP? 是用来干吗的? 大概会怎么使用?算法
若是一个接口有2个不一样的实现, 那么怎么来Autowire一个指定的实现?sql
若是想在某个Bean生成并装配完毕后执行本身的逻辑,能够什么方式实现?数据库
SpringBoot没有放到web容器里为何能跑HTTP服务?设计模式
SpringBoot中若是你想使用自定义的配置文件而不只仅是application.properties,应该怎么弄?
SpringMVC若是但愿把输出的Object(例如XXResult或者XXResponse)这种包装为JSON输出, 应该怎么处理?
若是有不少数据插入MYSQL 你会选择什么方式?
若是查询很慢,你会想到的第一个方式是什么?索引是干吗的?
查询死掉了,想要找出执行的查询进程用什么命令?找出来以后通常你会干吗?
读写分离是怎么作的?你认为中间件会怎么来操做?这样操做跟事务有什么关系?
分库分表有没有作过?线上的迁移过程是怎么样的?如何肯定数据是正确的?
你知道哪些或者大家线上使用什么GC策略? 它有什么优点,适用于什么场景?
JAVA类加载器包括几种?它们之间的父子关系是怎么样的?双亲委派机制是什么意思?有什么好处?
如何自定义一个类加载器?你使用过哪些或者你在什么场景下须要一个自定义的类加载器吗?
堆内存设置的参数是什么?
HashMap和Hashtable的区别。
实现一个保证迭代顺序的HashMap。
说一说排序算法,稳定性,复杂度。
说一说GC。
JVM如何加载一个类的过程,双亲委派模型中有哪些方法?
TCP如何保证可靠传输?三次握手过程?
java经常使用的数据结构有哪些?哪些是线程安全的?是怎么保证线程安全的?
Redis中的Lua有没有使用过? 能够用来作什么? 为何能够这么用?
线程池内部工做原理能够说一下么?
死锁是什么意思,造成条件是什么?出现死锁是能够经过什么方式去排查。
在交易过程当中如何放在用户在支付时的重复支付(交叉支付),请写出你了解的方案或使用的过的方案。
数据库索引有哪几种,他们之间的区别。
程序开发时经过开发工具DeBug调试时,控制台显示的内容都包含什么?哪些内容能够帮助你发现问题和解决问题。
RPC通讯过程当中,假设A系统提供了一个方法入参是一个JavaBean,出参也是一个JavaBean。另外两个系统B系统、C系统调用接口,调用方B想让提供方A增长一个返回参数,假设服务提供方A增长了返回参数,请问C系统调用方须要作什么处理?
了解哪些设计模式,用伪代码实现一个你熟悉的设计模式。
讲一下怎么使用分布式锁。
说说HashMap的原理, 以及HashMap如何扩充bucket的大小。
Redis的Pipeline是用来干什么的?
Mysql索引的分类(Btree, hash),各自使用什么状况 。
说说Myisam, Innodb区别。
知道哪些负载均衡算法。
说一下Btree的查找原理。
简述三次握手,若是c端发起握手请求,s端没法马上创建链接应该回应什么?
自我介绍,项目介绍。
mysql数据库调优。
sql优化。
like能用索引吗?
java对象四种引用。
GC原理。
jvm内存结构。
说一下你学过jvm 在书写代码上对你有什么帮助和提升。
千万数据量的查询你会怎么作?
HashMap在jdk1.7和1.8的区别,为何引入这个概念?hash碰撞怎么解决,为何1.8要比1.7更好,好在哪?
关于你的项目,若是并发很大,你会怎么改造。
方法区里什么样的对象有可能被回收。
线上cpu飙升100%你怎么处理。
频繁FullGC怎么处理。
线程池建立有几种,为何建立定长的线程池个数最好是5,10,15这样的数字。
linux命令。
伊甸区和幸存区可动态变化吗?
redis和memcached区别。
说几个jdk命令,jmap是什么意思。
若是并发很大,你对数据的正确性怎么保证。
http和https的区别,https原理,http2.0与1.0的区别。
Java的垃圾回收机制,Java文件加载机制,tomcat类加载机制,锁机制,jvm原理及线上调优,jvm内存模型。
多线程,有哪些能够保持进程同步的方法,建立线程的几种方法,对i++多线程访问你会怎么作。
Java的设计模式,单例有什么模式,懒汉为何加volotile,volotile的内存屏障,如何避免死锁。
考虑单例模式的编写,要线程安全且内存消耗小(剑指offer原题)。
String、StringBuilder、StringBuffer区别;String类能被继承吗?为何?
在白纸上手写二分法排序算法(lintcode上原题);二分查找的思想。
查找单链表中倒数第k个节点的算法,手写(lintcode上原题);最多见的排序算法你见过哪些,快排的基本思想及时间复杂度。
常见的数据结构有哪些。
hashmap、hashcode同样,不equals怎么处理 ;hashcode实现原理,currentHashMap原理,实现细节,怎么实现同步的;类为何要有hascode方法,是否是主要在集合类中都要实现hashcode方法;equals方法怎么实现;两个不一样的对象可能有相同的hashcode值吗;经常使用集合有哪些。
tcp三次握手,四次挥手协议。
架构设计一个开发性问题,设计一个Nginx管理的中间件,怎么设计。
全部的类都继承与object,你用过object类的直接子类有哪些,object类经常使用的方法有哪些。
Java会出现内存泄漏吗,若是回,在哪一种状况下?
抽象类和接口的区别。
平时怎么扩展本身的专业知识水平。
什么是 Java 的反射机制。
Cookie 和 Session的区别。
get 和 post请求的区别。
IOC的优势是什么。
IO 和 NIO的区别,NIO优势。
JRE、JDK、JVM 及 JIT 之间有什么不一样。
Hashcode 的做用。
简述一致性 Hash 算法。
为何在重写 equals 方法的时候须要重写 hashCode 方法?equals与 hashCode 的异同点在哪里。
为何 Map 接口不继承 Collection 接口。
说出几点 Java 中使用 Collections 的最佳实践?
GC是什么?为何要有GC。
何时会致使垃圾回收。
GC 有几种方式?怎么配置。
何时一个对象会被GC? 如何判断一个对象是否存活。
垃圾回收器的基本原理是什么?
Serial 与 Parallel GC之间的不一样之处。
JVM 中一次完整的 GC 流程是怎样的? 对象如何晋升到老年代。
吞吐量优先和响应优先的垃圾收集器选择。
说说你知道的几种主要的jvm 参数。
Java中存在内存泄漏问题吗?请举例说明。
什么是线程,多线程的优势是什么?以及简单说一下多线程的几种实现方式。
ThreadLocal 用途是什么,原理是什么,用的时候要注意什么?
线程池是什么?为何要使用它?如何建立一个Java线程池?
ThreadPool用法与优点能够说一下么?
synchronized 的原理是什么?synchronized 和 ReentrantLock 有什么不一样?
有T1,T2,T3三个线程,怎么确保它们按顺序执行?怎样保证T2在T1执行完后执行,T3在T2执行完后执行同步块内的线程抛出异常会发生什么?
什么是乐观锁(Optimistic Locking)?如何实现乐观锁?如何避免ABA问题。
Java中活锁和死锁有什么区别?
Executors类是什么? Executor和Executors的区别?
什么是设计模式(Design Patterns)?你用过哪一种设计模式?用在什么场合?
你能写出三种单例模式实现么?
你知道Google是如何在一秒内把搜索结果返回给用户?
高并发下,如何作到安全的修改同一行数据?
如何避免浏览器缓存。
大型网站在架构上应当考虑哪些问题?
最近有在看什么书么,印象最深入的是什么?
大家线上应用的 JVM 参数有哪些?
能简单说下你对算法的理解么?
准备要充分,知识面要尽可能的广,同时深度也要够。
面试安排上,若是不着急,尽可能给本身留多时间,两天一家,及时作总结和补充。
心态要放平,当作一次技术交流,面试要看一部分的运气,也要看一些眼缘,有的面试官一张嘴你就能感受到你此次面试完了。想去的公司没有面试好,不要气馁,继续加油准备。
简历投递方面,拉勾上投了不少常常不匹配,多是我学历问题(自考本),有一些打击自信心,若是有一样感觉的,不妨换BOSS或者其余平台。避免打击自信心。
写简历必定要体现本身的优点,最好能体现相似于,用到了什么技术,解决了什么问题。简历上写到的必定要成竹在胸。
相似于你的优点是什么,你以为你项目中作的比较好的地方有哪些,你能给公司带来什么,这种问题内心要先想一些,省得临场发挥容易紧张说很差。
我所经历的面试,通常技术面最少是两轮。若是一轮后让你走了,而你还自我感受良好,那我以为你有必要回顾一下面试内容,并一条一条找找该问题的相关内容,大部分问题就在于你没有答到点子上,多是深度不够,也多是扩展不够,继续加油。
如今外面面试问的的确比较多,要求也挺高的,行情很差,薪资也很差要,因此心态必定要放好,找好本身的定位,心态必定要好。
本文是由做者一位好友把他的面试心得分享而得,有着5年工做经验,目前在上海一家阿里系公司就任。但愿这些面试题对你们有所帮助,再此表示,答案会在做者的交流群里与你们分享交流。【做者交流群:552391552 群内每晚都会有阿里技术大牛讲解的最新Java架构技术。并会录制录播视频分享在群公告中,做为给广大朋友的加群的福利——分布式(Dubbo、Redis、RabbitMQ、Netty、RPC、Zookeeper、高并发、高可用架构)/微服务(Spring Boot、Spring Cloud)/源码(Spring、Mybatis)/性能优化(JVM、TomCat、MySQL)。 】
在这,也祝你们在金三银四面试的道路上,都可以找到你们心仪的下家。
同时但愿你们点击下方的二维码,点上关注。