写点什么

2021 一位 Java 中级程序员的跳槽面经,springmvc 源码解析 pdf

发布于: 23 小时前

阿里巴巴一面

  • 自我介绍这个就不说了,开头必问的

  • 说一下 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 监控




我的面试宝典:一线互联网大厂 Java 核心面试题库

开源分享:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】


以下是我个人的一些做法,希望可以给各位提供一些帮助:


整理了很长一段时间,拿来复习面试刷题非常合适,其中包括了 Java 基础、异常、集合、并发编程、JVM、Spring 全家桶、MyBatis、Redis、数据库、中间件 MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty 等等,且还会持续的更新...可 star 一下!



283 页的 Java 进阶核心 pdf 文档


Java 部分:Java 基础,集合,并发,多线程,JVM,设计模式

数据结构算法:Java 算法,数据结构

开源框架部分:Spring,MyBatis,MVC,netty,tomcat

分布式部分:架构设计,Redis 缓存,Zookeeper,kafka,RabbitMQ,负载均衡等

微服务部分:SpringBoot,SpringCloud,Dubbo,Docker



还有源码相关的阅读学习



评论

发布
暂无评论
2021一位Java中级程序员的跳槽面经,springmvc源码解析pdf