面试美团、头条、百度、京东,一名3年Java开发经验的面试总结

简介: 毕业转行做开发3年以来, 学到了很多, 加上自己的兴趣爱好, 个人认为已经成为了一个合格的程序员.与刚开始找工作面试相同的是都会问一些相同的问题, 不同的是现在面试官会更注重为什么, 也就是说注重深度而非广度. 3年, 5年, 10年分别是个人从事技术方面职业规划中的一个坎, 3年大部分时间应对了业务逻辑, 培养良好的规范和思想, 基础知识还是欠缺.

前言

毕业转行做开发3年以来, 学到了很多, 加上自己的兴趣爱好, 个人认为已经成为了一个合格的程序员.

与刚开始找工作面试相同的是都会问一些相同的问题, 不同的是现在面试官会更注重为什么, 也就是说注重深度而非广度. 3年, 5年, 10年分别是个人从事技术方面职业规划中的一个坎, 3年大部分时间应对了业务逻辑, 培养良好的规范和思想, 基础知识还是欠缺.

找工作时, 除了薪资符合个人职业规划也是相当重要的.废话少说, 以下是我前两天面试总结的面试题.

JavaSE

集合

hashmap结构及原理

扩容因子, 如何扩容, 数据结构图….

ArrayList, LinkedList 原理及区别(画出数据结构)

集合四要素: 是否可重复, 是否允许空值, 是否有序, 是否线程安全…

线程安全集合,map 为什么是线程安全的, 哪些操作关系到线程安全

算法

说几个常见的排序算法, 实现原理, 对应的时间空间复杂度, 稳定性

手撕一个算法(书写): 可以选择冒泡

递归算法

面向对象

多态的表现

面向对象特征

static的用法

String StringBuilder区别, 什么情况下用’+’. 最好答出javap编译后’+’实现原理

多线程

线程的实现方式

线程的状态

常见线程池及使用

一个线程结束开始另外一个线程的实现方式

线程原理(ThreadLocal)

start与run的区别

悲观锁乐观锁

IO流

写一个读写文件

事务相关

事务机制

AB分别是一个事务, C里面有A, B, 如果C里A或B失败回滚C是什么状态

什么是事务及使用场景

框架相关

Spring , MVC, MyBatis

介绍下Spring以及其常用的注解, Spring IOC实现原理, AOP实现原理及使用场景, 依赖注入原理

Spring事务传播与隔离级别

MyBatis映射原理

分布式相关架构

系统架构介绍, 架构设计图以及什么场景使用了什么架构

Dubbo机制, Zookeeper机制以及他们的关系

Redis数据类型以及使用场景, 刷新时间间隔

Kafka介绍及使用场景承担的角色

讲述一下Storm

数据库

MySQl

mysql数据库存储类型及其优缺点

分布式分片分库设计, 主从结构

其他

sql优化

索引创建原则(手写一个SQL)

SQL集中DDL, DMl==

建表的规则或者注意事项

数据库隔离级别及原因

设计模式

介绍下常见的设计模式以及使用场景

写一个单例模式实现

通讯

HTTP相关介绍, GET, POST的区别

JVM相关

Java垃圾回收机制

Java内存结构(与回收机制有关)

其他

RBAC权限模型, 分布式Session实现

常见linux命令(如何查看文件第200行, 如何查找文件)

写在最后, 两天面了四家有了3个offer, 其中京东的没过. 总结了一下, 京东这种互联网以技术驱动的公司会更注重个人的基础知识,自学能力以及动手能力, 他们会问的很细, 毫无准备的我, 应对起来相当吃力, 没过是正常.. 因为请假面试先探探行情, 所以并无准备, 很多东西答得不好, 但由于经验在这儿一般公司也就认同了, 不过这种情况下薪资会不是很理想, 建议还是多多准备

如何复习

资料获取:可以点击此处来获取就可以了!

面试宝典

  • 互联网115+120道面试题及答案
  • 蚂蚁金服面试宝典
  • Dubbo面试题及答案
  • Java后端面试题及答案
  • Java面经
  • JVM面试题及答案

(1)Java面试手册

  • 性能优化面试专栏
  • 微服务架构面试专栏
  • 并发编程高级面试专栏
  • 开源框架面试题专栏
  • 分布式面试专栏

(2)实战文档

  • Redis实战
  • MySQL实战
  • Spring Boot实战
  • Spring Cloud实战
  • 实战Java虚拟机

以实战Java虚拟机为例:

  1. 初探Java虚拟机
  2. 认识Java虚拟机的基本结构
  3. 常用Java 虚拟机参数
  4. 垃圾回收概念与算法
  5. 垃圾收集器和内存分配
  6. 性能监控工具
  7. 分析Java堆
  8. 锁与并发
  9. Class 文件结构
  10. Class 装载系统
  11. 字节码执行

(3)Java核心知识点整理文档

由于篇幅限制,很多内容都只展示了目录和截图,这些都整理在文档里,需要这些文档资料的,均可以免费分享给大家,希望所有的程序员都能够学习起来,努力实现我们的大厂梦!

资料获取:可以点击此处来获取就可以了!

相关文章
|
1天前
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
|
6天前
|
存储 缓存 Oracle
Java I/O流面试之道
NIO的出现在于提高IO的速度,它相比传统的输入/输出流速度更快。NIO通过管道Channel和缓冲器Buffer来处理数据,可以把管道当成一个矿藏,缓冲器就是矿藏里的卡车。程序通过管道里的缓冲器进行数据交互,而不直接处理数据。程序要么从缓冲器获取数据,要么输入数据到缓冲器。
Java I/O流面试之道
|
2天前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
18 4
|
3天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
28 4
|
15天前
|
存储 Java 程序员
Java面试加分点!一文读懂HashMap底层实现与扩容机制
本文详细解析了Java中经典的HashMap数据结构,包括其底层实现、扩容机制、put和查找过程、哈希函数以及JDK 1.7与1.8的差异。通过数组、链表和红黑树的组合,HashMap实现了高效的键值对存储与检索。文章还介绍了HashMap在不同版本中的优化,帮助读者更好地理解和应用这一重要工具。
38 5
|
14天前
|
存储 Java
[Java]面试官:你对异常处理了解多少,例如,finally中可以有return吗?
本文介绍了Java中`try...catch...finally`语句的使用细节及返回值问题,并探讨了JDK1.7引入的`try...with...resources`新特性,强调了异常处理机制及资源自动关闭的优势。
16 1
|
23天前
|
Java 程序员
Java 面试高频考点:static 和 final 深度剖析
本文介绍了 Java 中的 `static` 和 `final` 关键字。`static` 修饰的属性和方法属于类而非对象,所有实例共享;`final` 用于变量、方法和类,确保其不可修改或继承。两者结合可用于定义常量。文章通过具体示例详细解析了它们的用法和应用场景。
25 3
|
27天前
|
Java
Java面试题之cpu占用率100%,进行定位和解决
这篇文章介绍了如何定位和解决Java服务中CPU占用率过高的问题,包括使用top命令找到高CPU占用的进程和线程,以及使用jstack工具获取堆栈信息来确定问题代码位置的步骤。
75 0
Java面试题之cpu占用率100%,进行定位和解决
|
13天前
|
算法 Java
JAVA 二叉树面试题
JAVA 二叉树面试题
13 0
|
10天前
|
安全 Java
java 中 i++ 到底是否线程安全?
本文通过实例探讨了 `i++` 在多线程环境下的线程安全性问题。首先,使用 100 个线程分别执行 10000 次 `i++` 操作,发现最终结果小于预期的 1000000,证明 `i++` 是线程不安全的。接着,介绍了两种解决方法:使用 `synchronized` 关键字加锁和使用 `AtomicInteger` 类。其中,`AtomicInteger` 通过 `CAS` 操作实现了高效的线程安全。最后,通过分析字节码和源码,解释了 `i++` 为何线程不安全以及 `AtomicInteger` 如何保证线程安全。
java 中 i++ 到底是否线程安全?