为什么 StringBuilder 是线程不安全的,Java 高级工程师进阶学习
阿里巴巴一面
自我介绍这个就不说了,开头必问的
说一下 StringBuilder 和 StringBuffer
Spring bean 加载,实例化的过程
Spring AOP 源码看过吗
java 内存模型说一下
如果给你一个 map,里面有很多很多对象,那么这个 map 存放在哪
了解 GC 算法吗?
说一下 CMS 垃圾回收器
B+树和 B 树的区别?
haspmap 底层讲一讲
ConcurrentHashMap 的底层实现?
CAS 是硬件实现还是软件实现?
volatile 是锁吗?
淘宝和京东的区别,你觉得是什么?
项目相关:
介绍一下你简历上写的项目?自己主要做了什么?
你觉得项目里给你最大的挑战是什么?遇到了什么问题?如何解决的?从中学到了什么?
项目的架构图能画一下不?
觉得项目有哪些地方可以改进完善?
如果我有很多字段都需要建立索引,怎么办?
Mysql 的存储引擎,你用的是哪种?
代码面:
设计一个多线程打印程序,第 i 个线程只打印 i-1 数字,比如第 1 个线程打印数字 0,第 2 个线程只打印数字 1,依次类推。任意给定一个数字序列,比如 3382019835830,能够使用该程序打印出来。
快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解。
阿里巴巴二面
又聊了项目
你说到你项目里用了 UDP,你为什么不用 TCP
那你详细说一下 TCP 和 UDP 的区别
数据库用的是什么(MySQL)
那你的数据量是多少(几百万)
那你这几百万条,做了什么查询优化(索引)
怎么建的索引
为什么用时间和 id 来做索引?
数据库的隔离级别
知道什么是主从复制吗?
你说一下建立索引的规则
JAVA 类加载机制(加载验证准备解析初始化,又说到双亲委派模型)
线程池所有参数讲一讲
ConcurrentHashMap 的底层实现
RPC 用过吗?
消息队列呢?
**总结:**前面问了一些基础性的东西,然后就一直往深了问,问的也基本是有关项目的问题,因为之前做的本身就是一个小项目,也并没有什么亮点,二面结束我就回去等通知了,结果也肯定是凉凉了。
汲取教训,突破底层技术
其实每次面试不管成功还是失败,都是一次很好的学习机会,所以一定要认真对待每次面试,从面试中总结经验,在面试中扫盲,然后回家进行查漏补缺。
首先就是在面试结束后梳理自己的知识体系,这份大纲是目前一线大厂主流的技术,也是面试的重点,大家可以对照梳理自己的知识点,用来扫盲最好不过了
梳理完知识点后结合面试所问到的内容,大致可以看出是哪些不足,然后针对这些知识点再一步一步的深度挖掘,从这位读者的面试看出,他应该可以深度学习一下数据库方面的知识,那接下来我也就跟大家主要的分享一下关系型数据库——MySQL 的深度进阶。
MySQL 深度进阶
MySQL 基础内容(稍微带过)
MySQL 基本介绍
MySQL 架构组成
MySQL 存储引擎简介
MySQL 安全管理
MySQL 备份与恢复
MySQL 性能优化
影响 MySQLServer 性能的相关因素
MySQL 数据库锁定机制
MySQL 数据库 Query 的优化
MySQL 数据库 Schema 设计的性能优化
MySQLServer 性能优化
常用存储引擎优化
MySQL 架构设计
MySQL 可扩展设计的基本原则
可扩展性设计之 MySQLReplication
可扩展性设计之数据切分
可扩展性设计之 Cache 与 Search 的利用
MySQLCluster
高可用设计之思路及方案
高可用设计之 MySQL 监控
完结
Redis 基于内存,常用作于缓存的一种技术,并且 Redis 存储的方式是以 key-value 的形式。Redis 是如今互联网技术架构中,使用最广泛的缓存,在工作中常常会使用到。Redis 也是中高级后端工程师技术面试中,面试官最喜欢问的问题之一,因此作为 Java 开发者,Redis 是我们必须要掌握的。
Redis 是 NoSQL 数据库领域的佼佼者,如果你需要了解 Redis 是如何实现高并发、海量数据存储的,那么这份腾讯专家手敲《Redis 源码日志笔记》将会是你的最佳选择。
评论