互联网大厂面试题回忆录

博主工作3年了,面过几家大厂,应聘的岗位是高级Java开发工程师,以下是亲身经历的一些面试题,记录下来,留给需要的人~

一、Java基础

1、hashmap的基本原理,内部数据结构,put操作的整体流程,是否线程安全以及为什么?jdk8对hashmap做了哪些优化?
2、String类为什么是不可变的?StringBuilder和StringBuffer的区别,字符串常量池,StringBuffer为什么是线程安全?加号的底层原理
3、反射、accessible,动态代理的原理,jdk动态代理与cglib的区别与各自的实现原理
4、自动装箱,赋值操作,在内存里面是如何实现的。
5、接口和抽象类的区别
6、concurrenthashmap的原理,内部数据结构,如何提高并发性,jdk8中做了哪些优化。
7、hashset的原理
8、GC原理,分代机制,可达性分析
9、JVM参数有哪几种,如何调优?
10、JMM特性有哪些?
11、什么是跳表?

二、多线程

1、线程有几种状态?之间是如何切换的?
2、volatile的作用(两点),volatile的原理与应用场景。
3、线程安全是什么?如何做到线程安全?怎么判断一个类是不是线程安全?
4、线程同步有几种方式?
5、threadlocal的原理
6、synchronized是如何实现的?
7、sleep和wait的区别
8、线程池有几种?各自的应用场景
9、线程池的原理,主要有几个参数?线程池满了怎么办?
10、Semaphore、countdownlatch、futureTask
11、submit和execute的区别。
12、Future接口的几个主要方法
13、创建线程有几种方式
14、可重入锁是如何实现的

三、数据库

1、mysql索引原理?为什么是B+树?有什么优点?
2、事务隔离级别有哪几种?mysql默认的隔离级别是?脏读、幻读、不可重复读是什么情况?
3、MVCC原理
4、mysql有哪几种锁?
5、mysql的存储引擎有哪几种?区别和各自的适用场景。
6、query cache的配置
7、ACID
8、如何优化慢查询
9、最左前缀匹配原则,原理

四、算法

1、一致性哈希的原理
2、手写二分查找,快速排序
3、手写LRU算法
4、两个链表找交点
5、两个无限长的数字求和
6、手写生产者消费者demo
7、256M内存排序2G大小的文件
8、求数组最大子序列

五、操作系统与计算机网络

1、如何从访问日志中找出量最大的10个ip?awk语句了解吗?
2、jstack,jstat,jmap,jheap命令了解吗,如何使用?
3、系统负载情况如何查看?
4、网络分层协议了解吗?
5、tcp三次握手,四次挥手了解吗?
6、aio,bio,nio的区别
7、select,poll,epoll的区别?
8、io模型有哪些?

六、开源框架与组件

这部分主要根据简历以及项目的实际情况来问。
1、对spring了解吗?ioc,aop,transaction注解
2、spingmvc了解吗?
3、redis与memcache的区别
4、redis持久化策略,rdb与aof的区别与应用场景
5、memcached的内存是如何分配的?一致性哈希原理
6、mq的原理与应用场景,mq是如何保证不丢消息的?
7、tomcat的原理,主要运用了哪些设计模式?
8、redis与memcached内存分别是如何回收的?
9、guava的缓存是怎么实现的?

七、场景设计与架构

1、秒杀场景,如何做技术选型?
2、设计一个支持高并发的服务,写出核心代码
3、高并发与高可用如何实现?
4、服务降级怎么做?限流、限速、超时重试、熔断、自恢复、分别如何实现?
5、什么是微服务?有什么好处?为什么要这么做?
6、CAP理论是什么?项目中的哪些场景用到了CAP理论?
7、BASE理论是什么?
8、什么时候应该使用mq?

八、其他

1、平时都通过什么方式学习技术?
2、最近学的一个知识点是什么?
3、对带人有什么经验?
4、最熟悉的一个项目是什么?
5、跳槽的时候,你最看重什么?
6、为什么跳槽?为什么选择我们公司?

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQL是一种广泛使用的关系型数据库管理系统,在互联网大厂的面试中常常会涉及MySQL方面的问题。下面我将用300字中文回答一些与MySQL相关的互联网大厂面试题。 1. MySQL中的事务是什么?请简要描述。 事务是指一组数据库操作,要么全部成功执行,要么全部失败回滚。事务的特性是ACID,即原子性、一致性、隔离性和持久性。 2. 请解释MySQL中的主键和外键分别是什么? 主键是用于唯一标识表中每一行的列,主键的值必须唯一且不能为空。外键是一个表中的列,它与另一个表中的主键建立关系,用于保持数据的完整性和一致性。 3. 请描述MySQL中的索引是什么?有哪些类型? 索引是一种特殊的数据结构,用于加快数据的查找和排序速度。MySQL中常见的索引类型包括B树索引、哈希索引和全文索引。 4. 请解释MySQL中的连接类型:内连接、外连接和交叉连接。 内连接是指当两个表中的行在连接条件下匹配时,返回这些行的结果。外连接是指返回两个表中所有满足连接条件的行,如果某个表中的行在另一个表中没有匹配,则用空值填充。交叉连接是指返回两个表中的所有可能组合结果。 5. 请描述MySQL中的范式和反范式。 范式是一种关系型数据库设计原则,用于减少数据冗余并保持数据的一致性。反范式是为了提高查询性能而对数据库进行的优化,允许数据冗余。 以上是对MySQL互联网大厂面试题的简要回答,希望能对你有所帮助。如有需要,请继续提问。 ### 回答2: MySQL是一种常用的关系型数据库管理系统,被广泛应用于互联网行业的大型企业中。在互联网大厂的面试过程中,MySQL相关的问题通常涵盖数据库基础知识、性能优化、高可用架构等方面。 首先,面试官可能会询问数据库基础知识方面的问题。例如,MySQL的存储引擎有哪些?InnoDB和MyISAM的区别是什么?数据库的事务以及隔离级别是怎样的?这些问题考察面试者对MySQL的基本概念和原理的了解程度。 其次,面试官可能会提及性能优化相关的问题。如何优化慢查询?如何进行索引优化?如何避免死锁?如何进行数据库容量规划等问题。面试者需要能够根据具体场景来提相应的解决方案,并能够解释其原理和优缺点。 另外,面试官可能会询问关于MySQL高可用架构的问题。例如,MySQL主从复制如何实现?如何避免数据不一致的情况?如何进行故障转移和负载均衡?面试者需要对MySQL高可用方案,如基于主从复制的热备、读写分离等有所了解,并能够解释其实现原理和应用场景。 此外,面试官还可能会结合实际的工作场景和项目经历,提一些具体的问题。例如,如何设计一个高吞吐量的数据库架构?如何处理海量数据的存储和查询?如何保证数据的一致性和可靠性?等等。 在面试过程中,除了对MySQL的基础知识和相关技术有扎实的掌握之外,还需注重思考问题的背景和实际应用场景,并给合理的解决方案。同时,具备良好的沟通能力和团队协作精神也是互联网大厂面试中所看中的重要素质。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值