前言
年中了,大多数的人(程序员)都在为今年的金九银十做准备,却又有那么一些人,还要冲刺一下,今天分享的就是这样一位朋友的面试经历
小刘,开发三年,刚开始在大厂外包工作,后来凭借大厂背景跳槽到一家还算不错的公司,薪资也不错,但对于他来说,还是有点不甘心,想进大厂;毕竟大厂意味着拥有更高的薪资、优质的人脉以及令人羡慕的工作环境和福利待遇。以及最重要的成长!
临近年底,他又去了,这次是百度,腾讯和阿里,虽然最后挂了,但是失败是成功之母,失败是会让一个人快速成长的
下面分享一下他面试过程中被问到的面试题
百度(3轮技术面):
1.synchrnoized和reentrantlock的底层实现及重入的底层原理
monitorenter monitorexit AQS。 重入原理:entry count,state
2.锁的四种状态及升级过程
3.CMS和G1的异同
4.G1什么时候引发Full GC
5.除了CAS,原子类,syn,Lock还有什么线程安全的方式
final
6.HashMap和Hashtable的异同
7.允许null键的map你知道哪些
HashMap,LinkedHashMap,WeakHashMap
8.null键放在HashMap的哪里
底层数组的0号位置
9.为什么hashtable的扩容是2倍+1
从除留余数法,hashtable初始容量方面回答
10.红黑树的插入时间复杂度
11.解决哈希冲突的方式
12.现有1T的数据,内存只有1G,该怎么对他们排序
外部排序(多路归并)
13.Tomcat为什么要重写类加载器
14.tcp握手挥手过程及其状态转换
15.MysqL隔离级别
16.B树和B+树的区别
17.你知道哪些设计模式,它们在JDK源码中是怎么体现的
18.Java运行时数据区
20.吞吐量优先和响应时间优先的回收器是哪些
parallel scavenge和CMS
21.类加载全过程
22.线程池7个参数
23.CAS的ABA问题怎么解决
AtomicStampedReference,还可用带boolean版本戳的AtomicmarkableReference
24.Java内存模型
JMM共享内存模型以及8个原子操作指令
25.什么叫做阻塞队列的有界和无界
26.cookie和session介绍一下
27.说一下反射,反射会影响性能吗
28.谈一下AQS吧
29.为什么你说AQS的底层是CAS+volatile
state是volatile修饰的,并且设置state的方法除了有setState,还有compareAndSetState
30.JUC包里的同步组件主要实现了AQS的哪些主要方法
tryAcquire, tryRelease, tryAcquireShared, tryReleaseShared, isHeldExclusively
coding:leetcode+剑指offer原题共5题
腾讯(4轮技术面):
1、说说对JVM的理解?
2、treemap和HashMap的区别?
3、多线程的五大状态?
4、MysqL主键和索引的区别?
5、聊聊做的一些项目
6、如何实现session共享?用Redis该如何实现?
7、缓存击穿的概念和解决方案?
8、聊聊微服务,以及微服务之间是如何进行管理的
9、Java中nio和io的区别?常用的类有哪些?
10、Java里面的同步锁了解吗? CountDownLaunch和Cylicbarrior的区别,分别在什么场景下使用?
11、JVM的内存结构,哪些是共享的,哪些是线程私有的? Java虚拟机里堆栈分别存放什么?
12、如何实现一个线程池?
13、Java的类加载在哪些情况下会触发?
14、手写代码:快速排序,单利模式, 画一个工厂模式和装饰者模式的UML类图
15、AOP的实现原理
16、怎么优化慢查询?
17、Java的锁有哪些?可重入锁和不可重入锁的区别?
18、Lock和Synchronized的区别?他们都是可重入锁吗?哪个效率更高?
19、手写SpringMVC dispatcherServlet的大致实现?
20、聊一聊平时的项目并发经验
21、Redis的数据结构? 线程模型? Redis的数据淘汰机制?
22、读过Redis的源码吗?
23、MysqL实现事务的原理
24、MQ底层原理的实现?
25、数据库事务acid,事务操作,怎么加锁?分布式系统锁?
26、什么情况下会发生雪崩?如何解决?
27、介绍一些并发项目
28、技术含量较高的项目,从架构设计到部署问了一遍
29、高并发架构的设计思路
阿里(3轮技术面)
- 简短的自我介绍,项目一笔带过,没有问过多细节
- 讲一讲重载与重写区别
- 讲一下八种数据类型
- 知道integer缓冲机制么?说一下吧
- 数据库事务隔离级别
- MyBatis怎么防止 sql 注入?
- 什么是 Java 程序的主类?应用程序和小程序的主类有什么不同?
- 那Java 应用程序与小程序之间有那些差别?
- String StringBuffer 和 StringBuilder 的区别是什么?String 为什么是不可变的?
- 讲一下接口和抽象类的区别
- 介绍项目
- 什么是Spring?
- 解释一下Spring 中的 IoC
- Spring 有几种配置方式?具体说一下
- 解释一下Spring Bean 的生命周期
- 说一下Spring MVC 的流程
- Redis 有哪几种数据淘汰策略?
- 为什么Redis 需要把所有数据放到内存中?
- Redis 有哪些适合的场景?
- MyBatis 分页
- 项目中用到的算法(排序 查找), 设计模式
- innodb和 myisam的区别
- 如果让你实现一个MQ,怎么样保证消息不丢失?
- 绍项目(包括细节),针对细节提问
- 你有哪些数据库优化方面的经验?
- 从http请求发出到响应的整个流程
- 追问如何http请求发送过来之后如何拦截,怎样配置拦截,具体怎样拦截(只知道tomcat拦截,在web.xml中配置,感觉是在问tomcat底层)
- 讲一下常用的索引有哪些?
- 在 MysqL 数据库中索引的工作机制是什么?
- 讲一下MysqL的复制原理以及流程
- 讲下你对dubbo框架的理解
- 内存模型以及分区,需要详细到每个区放什么?
- JVM 内存分哪几个区,每个区的作用是什么?
- 如和判断一个对象是否存活?
- Java 中垃圾收集的方法有哪些?
- 说一下Java 类加载过程
- 什么是类加载器,类加载器有哪些?
虽然一直在进步,但是离进大厂还有很大的差距,至少年底是不可能进大厂了,没过多久他联系我说,他进了网易 我:???
下面来看一下网易的面试题(整理)
网易:3轮技术面+HR面
Java基础:
- 定义Integer x=20 Integer y=200 在内存里是个什么过程?
- 讲一下HashMap与concurrentHashMap原理,它们有什么区别吗?
- HashMap什么情况下会出现循环链表?
- concurrentHashMap写的时候用什么锁?
- RenteenLock底层是怎么保证线程安全的?
- 描述下JVM内存模型,分别说一下每个区的作用。
- 堆内存的工作原理
- 描述下多线程原理
- start和run的区别
- 线程池
- volite关键字的原理,AtomicInteger的底层实现
- ThreadLocal关键字
开源框架:
- 用过哪些开源框架,说一说你最熟悉的(围绕回答展开,我回答的Spring)
- 描述下spring的ioc和aop。
- 常用的注入方式
- Spring bean的生命周期
- AOP实现原理
- Spring task的实现原理
- Spring事务
- Spring和Spring MVC的关系
- SpringMVC中对整个请求的处理流程是怎样的?
数据库:
Redis:
网络:
- HTTP 1.1版本增加了哪些内容?有哪几种请求方式?
- 描述下HTTP三次握手和四次挥手过程?为什么需要四次挥手?
- 为什么TIME_WAIT状态需要经过两个最大报文段生存时间才能到close状态?
- 浏览器发起一个请求到收到响应中间经历了哪些过程?
- Nginx模块,说说你最熟悉的
- proxy_cache你是怎么配置的?缓存是存在哪里?具体是怎么命中缓存的?
Linux:
总结
不过学习的过程就是强大自身的过程,当你足够强大时,时间早晚有关系吗?
互联网的发展是非常快的,要想不被淘汰,只有不断的去学习,很多人都说做开发实际上就是CRUD,但是,都这么去想,哪里来的进步?凭什么拿高薪?
很多道理,大多数人都懂,只是不去想罢了
阿里大佬整理的面经
因为资料包含的内容实在是太多了 ,不能够很详细地给大家展示出来全部的内容。需要完整版资料的小伙伴,可以看向下面来获取!
需要完整版资料的小伙伴,可以一键三连,下方获取免费领取方式!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。