金三已过,想跳槽的同学得好好抓紧银四了。不过今年的寒冬确实有点冷~ 各路大厂都有不同程度的裁员。
因此我们要在面试过程的多做一些准备,我呢也在网上搜罗了一些大厂的面试题,在这里给大家分享一下,希望能给大家一些帮助与参考~
阿里面试题
-
开发中Java用了比较多的数据结构有哪些?
-
谈谈你对HashMap的理解,底层原理的基本实现,HashMap怎么解决碰撞问题的?
-
对JVM熟不熟悉?简单说说类加载过程,里面执行的哪些操作?问了GC和内存管理,平时在tomect里面有没有进行过相关的配置
-
然后问了http协议,get和post的基本区别,接着tcp/ip协议,三次握手,窗口滑动机制。
-
开发中用了那些数据库?回答mysql,储存引擎有哪些?然后问了我悲观锁和乐观锁问题使用场景、分布式集群实现的原理。
-
springmvc和mybatis的工作原理,有没有看过底层源码?
-
多个线程同时读写,读线程的数量远远大于写线程,你认为应该如何解决并发的问题?你会选择加什么样的锁?
-
JAVA的AQS是否了解,它是干嘛的?
-
除了synchronized关键字之外,你是怎么来保障线程安全的?
-
SpringBoot没有放到web容器里为什么能跑HTTP服务?
-
如果查询很慢,你会想到的第一个方式是什么?索引是干嘛的?
-
查询死掉了,想要找出执行的查询进程用什么命令?找出来之后一般你会干嘛?
-
读写分离是怎么做的?你认为中间件会怎么来操作?这样操作跟事务有什么关系?
-
JAVA类加载器包括几种?它们之间的父子关系是怎么样的?双亲委派机制是什么意思?有什么好处?
-
堆内存设置的参数是什么?
-
HashMap和Hashtable的区别?
-
实现一个保证迭代顺序的HashMap?
-
说一说排序算法,稳定性,复杂度?
-
说一说GC?
-
JVM如何加载一个类的过程,双亲委派模型中有哪些方法?
京东面试题
-
java常用的数据结构有哪些?哪些是线程安全的?是怎么保证线程安全的?
-
Redis中的Lua有没有使用过? 可以用来做什么? 为什么可以这么用?
-
线程池内部工作原理可以说一下么?
-
死锁是什么意思,形成条件是什么?出现死锁是可以通过什么方式去排查。
-
在交易过程中如何放在用户在支付时的重复支付(交叉支付),请写出你了解的方案或使用的过的方案?
-
数据库索引有哪几种,他们之间的区别?
-
Dubbo超时重试;Dubbo超时时间设置
-
如何保障请求执行顺序
-
分布式事物与分布式锁(扣款不要出现负数)
-
分布式session设置
-
执行某操作,前50次成功,第51次失败a全部回滚b前50次提交第51次抛异常,ab场景分别如何设置Spring(传播性)
-
Zookeeper有哪些用
-
JVM内存模型
-
数据库垂直和水平拆分
-
熟悉IO么?与NIO的区别,阻塞与非阻塞的区别
-
分布式session一致性
-
synchronized 的原理是什么?synchronized 和 ReentrantLock 有什么不同?
-
数据库的锁,你能给我介绍下吗?
-
知道哪些负载均衡算法?
-
说一下Btree的查找原理?
-
简述三次握手,如果c端发起握手请求,s端无法立刻建立连接应该回应什么?
携程面试题
-
做过哪些项目?怎么实现的?
-
公司整体架构?你做了啥?
-
spring mvc和struts mvc的区别?
-
抽象类和接口的区别?
-
覆盖和重载?
-
进程和线程的区别?
-
线程有哪些状态?
-
如何创建线程?
-
wait和sleep的区别
-
集合有那几种?list和set的区别?
-
hashmap的实现,冲突,初始容量和加载因子?怎么扩容?
-
如何取出hashmap中的value存入list中?
-
spring的aop和Ioc讲讲吧?
-
快速排序怎么实现的?
-
数据库索引为什么用B树?原理是啥
-
数据库的锁有哪几种?语句怎么实现?
-
数据库分页查询?
-
数据库的搜索引擎?
-
分布式接口的幂等性设计「不能重复扣款」
-
什么是线程,多线程的优点是什么?以及简单说一下多线程的几种实现方式。
-
ThreadLocal 用途是什么,原理是什么,用的时候要注意什么?ThreadPool用法与优势可以说一下么?
-
线程池是什么?为什么要使用它?如何创建一个Java线程池?
-
你有没有继续研究新接触到的技术?
-
你有什么学习方法吗?
-
你对工作地点有要求吗?
去哪儿网面试题
-
自我介绍,项目介绍?
-
mysql数据库调优?
-
like能用索引吗?
-
java对象四种引用?
-
类加载过程?
-
说一说GC原理?
-
jvm内存结构。
-
说一下你学过jvm 在书写代码上对你有什么帮助和提高。
-
千万数据量的查询你会怎么做?
-
HashMap在jdk1.7和1.8的区别,为什么引入这个概念?hash碰撞怎么解决,为什么1.8要比1.7更好,好在哪?
-
关于你的项目,如果并发很大,你会怎么改造。
-
方法区里什么样的对象有可能被回收。
-
线上cpu飙升100%你怎么处理。
-
频繁FullGC怎么处理。
-
线程池创建有几种,为什么创建定长的线程池个数最好是5,10,15这样的数字。
-
linux命令。
-
伊甸区和幸存区可动态变化吗?
-
ThreadLocal用过吗,给我介绍下他的使用场景?
-
redis和memcached区别?
-
说几个jdk命令,jmap是什么意思?
-
如果并发很大,你对数据的正确性怎么保证?
-
TCP的三次握手和四次握手?
饿了么面试题
-
jvm,jre以及jdk三者之间的关系?
-
Dubbo的底层原理,Zookeeper是什么
-
cincurrentMap的机制;TreeMap;Volatil关键字
-
快速排序;广度优先搜索(队列实现
-
缓存的雪崩以及穿透的理解?
-
HashMap的key可以重复吗?
-
synchronized和lock的区别?
-
开发一个大型网站你会考虑哪些问题?
-
Java的设计模式,单例有什么模式,懒汉为什么加volotile,volotile的内存屏障,如何避免死锁?
-
考虑单例模式的编写,要线程安全且内存消耗小?
-
String、StringBuilder、StringBuffer区别;String类能被继承吗?为什么?
-
String为什么要设计成Final?
-
在白纸上手写二分法排序算法(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 算法。
-
说出几点 Java 中使用 Collections 的最佳实践?
-
GC是什么?为什么要有GC。
-
什么时候会导致垃圾回收。
-
GC 有几种方式?怎么配置。
-
什么时候一个对象会被GC? 如何判断一个对象是否存活。
-
垃圾回收器的基本原理是什么?
-
JVM 中一次完整的 GC 流程是怎样的? 对象如何晋升到老年代。
-
吞吐量优先和响应优先的垃圾收集器选择。
-
说说你知道的几种主要的jvm 参数。
-
有T1,T2,T3三个线程,怎么确保它们按顺序执行?怎样保证T2在T1执行完后执行,T3在T2行完后执行同步块内的线程抛出异常会发生什么?
-
什么是乐观锁(Optimistic Locking)?如何实现乐观锁?如何避免ABA问题。
-
Java中活锁和死锁有什么区别?
-
Executors类是什么? Executor和Executors的区别?
-
什么是设计模式(Design Patterns)?你用过哪种设计模式?用在什么场合?
-
你能写出三种单例模式实现么?
-
你知道Google是如何在一秒内把搜索结果返回给用户?
-
高并发下,如何做到安全的修改同一行数据?
-
大型网站在架构上应当考虑哪些问题?
-
最近有在看什么书么,印象最深刻的是什么?
-
你们线上应用的 JVM 参数有哪些?
-
能简单说下你对算法的理解么?
文末
可以看出大厂的面试题涉及的知识面不仅广而且深!因此我们平时学习的时候就要打好基础,面试的时候也要做足充分的准备! 最后祝大家找到满意的坑~ 也欢迎关注小编,会持续分享技术文章!
欢迎关注公众号:Coder编程获取最新原创技术文章和相关免费学习资料,随时随地学习技术知识!