刷了大半年Java面试题:终于拿到众多大厂offer,分享还愿
Posted dhlnb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了刷了大半年Java面试题:终于拿到众多大厂offer,分享还愿相关的知识,希望对你有一定的参考价值。
前言
今天给大家分享下我整理的Java架构面试专题及答案,其中大部分都是大企业面试常问的面试题,可以对照这查漏补缺,当然了,这里所列的肯定不可能覆盖全部方式。
很多Java开发者面试之前,可能没有较长的工作时间或者较为丰富的工作经验,所以不知道互联网公司或者一线互联网公司技术面试都会问哪些问题? 再加上可能自己准备也不充分,去面试没几个回合就被面试官几个问题打蒙了,最后以惨败收场。针对这些的读者朋友,小编整理了一些知名大厂的面经,在这分享给读者朋友们参考,让即将面试或是有想法跳槽的读者朋友们了解一下一线大厂面试时都喜欢问那些问题。
开始(部分问题没有参考答案,需要各位小伙伴下来逐一学习!)
BAT 常问的 Java基础39道常见面试题
1.八种基本数据类型的大小,以及他们的封装类
2.引用数据类型
3.Switch能否用string做参数
4.equals与==的区别
5.自动装箱,常量池
6.Object有哪些公用方法
7.Java的四种引用,强弱软虚,用到的场景
8.Hashcode的作用
9.HashMap的hashcode的作用
10.为什么重载hashCode方法?
11.ArrayList、LinkedList、Vector的区别
12.String、StringBuffer与StringBuilder的区别
13.Map、Set、List、Queue、Stack的特点与用法
14.HashMap和HashTable的区别
15.JDK7与JDK8中HashMap的实现
16.HashMap和ConcurrentHashMap的区别,HashMap的底层源码
17.ConcurrentHashMap能完全替代HashTable吗
18.为什么HashMap是线程不安全的
19.如何线程安全的使用HashMap
20.多并发情况下HashMap是否还会产生死循环
21.TreeMap、HashMap、LindedHashMap的区别
22.Collection包结构,与Collections的区别
23.try?catch?finally,try里有return,finally还执行么
24.Excption与Error包结构,OOM你遇到过哪些情况,SOF你遇到过哪些情况
25.Java(OOP)面向对象的三个特征与含义
26.Override和Overload的含义去区别
27.Interface与abstract类的区别
28.Static?class?与non?static?class的区别
29.foreach与正常for循环效率对比
30.Java?IO与NIO
31.java反射的作用于原理
32.泛型常用特点
33.解析XML的几种方式的原理与特点:DOM、SAX
34.Java1.7与1.8,1.9,10 新特性
35.设计模式:单例、工厂、适配器、责任链、观察者等等
36.JNI的使用
37.AOP是什么
38.OOP是什么
39.AOP与OOP的区别
蚂蚁金服(三面)
Zookeeper+微服务+消息中间件+高并发架构设计
一面
- JVM数据存储模型,新生代、年老代的构造?
- java GC算法,什么时候会触发minor gc,什么时候会触发full gc?
- GC 可达性分析中哪些算是GC ROOT?
- 你熟悉的JVM调优参数,使用过哪些调优工具?
- Java 有什么锁类型?
- 描述下线程池的处理流程?
- 类加载机制,一个类加载到虚拟机中一共有几个步骤,这些步骤的顺序哪些是固定的,哪些是不固定的,为什么不固定
- hashmap是线程不安全的,concurrenthashmap是线程安全的,怎么实现的线程安全?
- volatile关键字解决了什么问题,实现原理是什么
- 并发容器有哪些,并发容器和同步容器的区别
二面
- 在工作中,SQL语句的优化和注意的事项
- 哪些库或者框架用到NIO
- Spring 都有哪几种注入方式,什么情况下用哪种,ioc实现原理
- 如何定位一个慢查询,一个服务有多条SQL你怎么快速定位
- 聚集索引和非聚集索引知道吗?什么情况用聚集索引什么情况用非聚集索引
- Nosql引擎用的什么存储结构,关系型数据库和NoSQL各自的优劣点是什么,如何技术选型?
- 微服务架构下,如果有一个订单系统,一个库存系统,怎么保证事务?
- 分布式一致性协议raft,paxos 了解吗
- Zookeeper中的ZAB协议,选主算法
三面
- 自我介绍
- 参与的并发项目,从设计到部署,按照流程讲一遍。
- 项目相关你用过redis,用在什么场景,怎么使用的?
- mysql同步机制原理,有哪几种同步方法
- 数据库主从同步如何实现,事务如何实现
- 谈谈你对SOA和微服务的理解,以及分布式架构从应用层面涉及到的调整和挑战。
- 阿里系中间件metaQ及原理与现有的kafka有什么异同
- 在阿里有了解过什么中间件吗?实现原理?与其他开源消息队列有什么特点?
- 为什么选择换公司?
- 三年到五年的职业规划?
- 你有想问我的?
天猫(四面)
发压测+Mina+事务+集群+秒杀架构
一面
- 常见集合类的区别和适用场景
- 并发容器了解哪些?
- 如何判断链表是否有环
- concurrentHashMap如何实现
- 集群服务器 如何application 共享
- JAVA网络编程中:BIO、NIO、AIO的区别和联系
- jvm内存模型jmm 知道的全讲讲
- JAVA的垃圾回收,标记算法和复制算法的区别,用在什么场合?
- http和https的区别,http1.x和http2.0的区别,SSL和TSL之间的区别
- GC、G1和ZGC的区别
- B+树和B树的区别,和红黑树的区别
- 内存泄漏与内存溢出的区别
- session的生命周期是多久
- 关于Mina框架了解多少?(因为我在项目里用到了Mina,所以提到了这个部分)
二面
- java cas原理
- JAVA线程池有哪些参数,如果自己设计一个线程池要考虑哪些问题?
- Java的lock的底层实现?
- mysql数据库默认存储引擎,有什么优点
- MySQL的事务隔离级别,分别解决什么问题。
- 四个表 记录成绩,每个大约十万条记录,如何找到成绩最好的同学
- 常见的负载均衡算法有哪些
- 如果Redis有1亿个key,使用keys命令是否会影响线上服务
- Redis的持久化方式,aod和rdb,具体怎么实现,追加日志和备份文件,底层实现原理的话知道么
三面
- 请画一个完整大型网站的分布式服务器集群部署图
- 多个RPC请求进来,服务器怎么处理并发呢
- 讲一下Redis的哨兵机制
- 数据库分库分表一般数据量多大才需要?
- 如何保证数据库与redis缓存一致的
- 项目中消息队列怎么用的?使用哪些具体业务场景?
- JVM相关的分析工具有使用过哪些?具体的性能调优步骤吗?
- MySQL的慢sql优化一般如何来做?除此外还有什么方法优化?
- 线上的服务器监控指标,你认为哪些指标是最需要关注的?为什么?
- 如何做压测,抗压手段
- 秒杀模块怎么设计的
HR面
- 自我介绍
- 你怎么评价你之前的3轮面试
- 你怎么看待你自己,你最大的核心竞争力是什么
- 未来自己的职业规划
- 对阿里技术氛围有什么样的理解,用过哪些阿里的开源库
- 期望的薪资是多少
- 最后,你有什么想了解的
阿里高级java面试题和答案
一面面试题目:
1、你比较了解的机器学习的算法有哪些,说一下这些算法的过程和区别
2、网络的体系结构分为哪五层,每层分别有哪些协议
3、TCP和UDP的区别是什么,如果想发送即时消息应该用哪种协议
4、TCP的连接建立和断开的过程(三次握手和四次挥手),如何保证TCP发送的信息是正确的,且保证其先后顺序不被篡改
5、对HTTP协议了解多少,HTTP和HTTPS有什么区别,HTTPS的安全性是怎么实现的
6、平时用mysql用什么引擎
7、数据库事务的特性有哪些
8、事务并发可能会导致哪些问题,数据库的隔离级别有哪些,mysql默认的是哪种级别,这种默认的隔离级别能够避免哪些问题(复习的太久了,有一些忘记了,这个问题居然答得不全)
9、如何判断SQL查询操作是不是慢sql,如何优化
10、进程和线程的区别,进程之间的通信方法
11、死锁是什么,处理死锁的方法有哪些
12、进程同步中的临界区有什么处理方法
13、spring MVC,spring AOP源码
14、spring循环引用
15、spring事务传播机制
16、java nio,bio,aio,操作系统底层nio实现原理
17、java线程编程了解吗?
18、hashmap的数据结构是什么,具体是怎么实现的,是不是线程安全的(不是),那么它的线程安全的替代有哪些?
二面面试题目和参考答案:
你在项目中遇到哪些有挑战性的点?
参考:参与了秒杀的高并发项目。
1.流量在某一时刻暴涨,然后又猛跌如何应对?
参考答案:
- 流量削峰填谷
- 在客户端与服务器加入消息队列作为缓存机制
- 接入层与各模块都采用cache增加QPS
2.redis 消息队列如何对过期信息/无效信息进行删除
参考答案:
- 添加过期时间上限
- 不同组团信息采用不同队列,当该组团满额之后删除队列
3.redis 的持久化机制?
- 参考答案:RDB和AOF
4. 为什么JAVA类加载要用双亲委派
- 实例:Object类唯一
5.怎么实现同步
- Synchronized关键字
- Volatile变量
- Lock对象
6. JAVA锁有哪几种
- Sychronized
- ReentrantLock
7. 两种锁的区别
- Synchronized 由JVM实现
- ReentrantLock 由JDK实现
6. 了解过AQS吗?
- AQS(Abstract Queue Synchronizer)队列同步器
- 由一个Valotaile变量标记状态State,以及一个CLH(同步、FIFO)队列构成
具体实现类:
- CountdownLatch: 等待多个线程完成;
- CyclicBarrier:同步屏障;
- Semaphore:控制并发线程数。
7. 场景题:给一个方法加上超时异常
- 使用AspectJ进行AOP开发
- 将方法调用进行Around切入
- 采用Future对象创建一个线程,在调用方法同时进行计时
- 若Future率先返回值则抛出超时异常
- 否则则正常调用
其他
以上就是一些知名大厂的面试经过以及面试高频考点,小编在这分享总结的Java面试的高频面试题(包括了Java集合,JVM,并发与多线程,Spring,MyBaits,微服务,Dubbo,Kakfa,中间件,Redis,数据库,设计模式、Zookeeper、分布式等),进行了整理,点这里免费分享给大家。
以上是关于刷了大半年Java面试题:终于拿到众多大厂offer,分享还愿的主要内容,如果未能解决你的问题,请参考以下文章
闭关苦修半年,最终靠着这份面试题,我成功拿到了阿里的offer!
外包三年经验,耗时半年进大厂,整合出 25W 字 Java 全栈面试题,把初心分享出来!