第四轮:代码面试
========
这一面据我后来的师兄讲本来是二面,是想省了的,但是后面由于流程规定,又给我加回来了,所以我就经历了一次在线笔试的面试。这一面的面试是给你一个在线网站,然后你和你的面试官一起登陆上去,共享web页面,然后他给你出题,你来现场写代码,伪代码就行,然后你再给他讲一遍你的逻辑就ok了。
这一面没什么好讲的,写代码嘛,是骡子是马拉出来溜溜咯。出的题不会很难,我答的是两道,一道给我半小时,第一道是给你一个shell命令,执行的功能大概就是读取一个日志文件,然后根据日志里的某一字段排序,然后取前五,输出。大概考点就是:
1.你得读懂这个有cat、有awk、有sort等等猛地一看还挺长的shell命令;
2.实现它;
3.时空间复杂度/效率;
4.讲清楚。
第二道题目是反转字符串,大概就是把字符串“123456789”从中间分开,然后分别反转,然后输出,输出结果是“432159876”。大概考点就是:
1.实现它;
2.时空间复杂度/效率;
3.讲清楚;
4.尝试给出优化方案;
大概就是这种类型的题,肯定不会重复的,师兄说很可能就是他们最近写代码遇到的问题,就直接拿来问你了,所以也没什么固定套路,你也不用临时抱佛脚的刷题,随缘就好。
第五轮:boss面试
==========
到这一面的时候基本就稳了,当然我也见过挂的。这一面就是你的主管的主管来面你了,我当时还是先讲项目,然后挑重点的问,不过和二三面明显的区别就是他会问你更高层次的解决方案,不再拘泥于你做的那一点东西,会让你从整体上或者部分整体上讲清楚你项目的解决方案以及你自己的思考(上面的那三个问题),会让你尝试给出更好的解决方案,并解释原因。
我个人感觉这一面更多的是考验你的全局观,你要是一直拘泥于自己的小天地,那估计会吃亏的。当然,面试分人的,有的非技术出身的主管就是和你聊聊天谈谈人生理想什么的,你要是不match也会被淘汰。
第六轮:HRG面试
=========
如果你能面到这一面那你基本99%拿到Offer!主要就是和你谈人生、谈理想、谈三观、谈薪资,只要你不反人类、不扯淡,就OK。
把自己的面试经历分享出来之后,很多朋友都问我有没有什么学习方法,其实除了自己的所需要的掌握的技术之外,面试过程中一些技巧和一些面试题也是必不可少的!可以分享给大家一条自己刷的面试题,里面涵盖了**:Java基础、JVM、多线程与高并发、spring、springMVC、MyBatis、SpringBoot、SpringCloud、微服务、数据库、网络底层、TCP、数据结构与算法**等等以及一整套的大厂面试真题!
Java九大核心知识点总结
=============
这份笔记总共九大部分,涵盖了Java小白到Java架构师层面的面试知识点总结,这里给大家卖个关子:**这份笔记100%免费获取!**因为这份笔记的知识点太多,小编没办法为大家全部完整的展示出来。这份笔记的免费获取方式在文末!
Java开发1—2年基础:JVM篇
=================
本篇主要讲述了JVM原理,涉及JVM运行机制、JVM内存模型、常用垃圾回收算法和JVM类加载机制等内容。
1—2年Java工程师必会:Java基础篇
=====================
本篇讲解Java基础知识,涉及集合、异常分类及处理、反射、注解、内部类、泛型和序列化等内容。
Java开发2—3年高级工程师:Java并发编程篇
=========================
本篇讲述讲解Java并发编程知识,涉及Java多线程的工作原理及应用、Java线程池的工作原理及应用,以及锁、进程调度算法等内容。
Java面试中必问的数据结构:数据结构篇
====================
本篇讲解数据结构知识,涉及栈、队列、链表、散列表、二叉树、红黑树、图和位图等内容。
3—4年Java架构师必问:常用算法篇
===================
本篇讲解Java中的常用算法,涉及二分查找、冒泡排序、插入排序、快速排序、希尔排序、归并排序、桶排序、基数排序等算法。
5年Java架构师面试必问网络底层:网络与负载均衡篇
==========================
本篇讲解网络与负载均衡原理,涉及TCP/IP、 HTTP、常用负载均衡算法和LVS原理等内容。
Java架构师进阶:数据库及分布式事务篇
====================
本篇讲解数据库及分布式事务原理,涉及数据库存储引擎、数据库并发操作和锁、数据库分布式事务等内容。
Java高级架构师必备:分布式缓存的原理及应用篇
========================
本篇讲解分布式缓存的原理及应用,涉及分布式缓存介绍、Ehcache原理及应用、Redis原理及应用、分布式缓存设计的核心问题等内容。
了设计模式篇
======
本篇讲解设计模式,涉及常见的23种经典设计模式。
面试题总结
=====
全部学习资料免费获取方式: 关注+转发,后台私信:资料,即可免费领!
大厂面试部分真题展示
==========
杭州-蚂蚁金服-Java高级
==============
-
jdk1.7 到 jdk1.8 Map 发生了什么变化(底层)?
-
ConcurrentHashMap
-
并行跟并发有什么区别?
-
jdk1.7 到 jdk1.8 java 虚拟机发生了什么变化?
-
如果叫你自己设计一个中间件,你会如何设计?
-
什么是中间件?
-
ThreadLock 用过没有,说说它的作用?
-
Hashcode()和 equals()和==区别?
-
mysql 数据库中,什么情况下设置了索引但无法使用?
-
mysql 优化会不会,mycat 分库,垂直分库,水平分库?
-
分布式事务解决方案?
-
sql 语句优化会不会,说出你知道的?
-
mysql 的存储引擎了解过没有?
-
红黑树原理?
杭州-蚂蚁金服-资深工程师
=============
蚂蚁Java 一面
- 二叉搜索树和平衡二叉树有什么关系,强平衡二叉树( AVL 树)和弱平衡二叉树
(红黑树)有什么区别
-
B 树和 B+ 树的区别,为什么 MySQL 要使用 B+ 树
-
HashMap 如何解决 Hash 冲突
-
epoll 和 poll 的区别,及其应用场景
-
简述线程池原理, FixedThreadPool 用的阻塞队列是什么?
-
sychronized 和 ReentrantLock 的区别
-
sychronized 的自旋锁、偏向锁、轻量级锁、重量级锁,分别介绍和联系
-
HTTP 有哪些问题,加密算法有哪些,针对不同加密方式可能产生的问题,及其
HTTPS 是如何保证安全传输的
蚂蚁 Java 二面
-
设计模式有哪些大类,及熟悉其中哪些设计模式
-
volatile 关键字,它是如何保证可见性,有序性
-
Java 的内存结构,堆分为哪几部分,默认年龄多大进入老年代
-
ConcurrentHashMap 如何保证线程安全, jdk1.8 有什么变化
-
为什么 ConcurrentHashMap 底层为什么要红黑树
-
如何做的 MySQL 优化
-
讲一下 oom 以及遇到这种情况怎么处理的,是否使用过日志分析工具
蚂蚁 Java 三面
-
项目介绍
-
你们怎么保证 Redis 缓存和数据库的数据一致性?
-
Redis 缓存雪崩?击穿?穿透?
-
你熟悉哪些消息中间件 ,有做过性能比较?
上海-拼多多-Java高级
=============
1 、并发编程三要素?
2 、实现可见性的方法有哪些?
3 、多线程的价值?
4 、创建线程的有哪些方式?
5 、创建线程的三种方式的对比?
6 、线程的状态流转图
7 、 Java 线程具有五种基本状态
8 、什么是线程池?有哪几种创建方式?
9 、四种线程池的创建:
10 、线程池的优点?
11 、常用的并发工具类有哪些?
12 、 CyclicBarrier 和 CountDownLatch 的区别
13 、 synchronized 的作用?
14 、 volatile 关键字的作用
15 、什么是 CAS
16 、 CAS 的问题
17 、什么是 Future ?
18 、什么是 AQS
19 、 AQS 支持两种同步方式:
20 、 ReadWriteLock 是什么
21 、 FutureTask 是什么
22 、 synchronized 和 ReentrantLock 的区别
23 、什么是乐观锁和悲观锁
24 、线程 B 怎么知道线程 A 修改了变量
25 、 synchronized 、 volatile 、 CAS 比较
26 、 sleep 方法和 wait 方法有什么区别 ?
27 、 ThreadLocal 是什么?有什么用?
28 、为什么 wait() 方法和 notify()/notifyAll() 方法要在同步块中被调 用
29 、多线程同步有哪几种方法?
30 、线程的调度策略
31 、 ConcurrentHashMap 的并发度是什么
32 、 Linux 环境下如何查找哪个线程使用 CPU 最长
33 、 Java 死锁以及如何避免?
34 、死锁的原因
35 、怎么唤醒一个阻塞的线程
36 、不可变对象对多线程有什么帮助
37 、什么是多线程的上下文切换
38 、如果你提交任务时,线程池队列已满,这时会发生什么
39 、 Java 中用到的线程调度算法是什么
40 、什么是线程调度器 (Thread Scheduler) 和时间分片 (TimeSlicing) ?
41 、什么是自旋
42 、 Java Concurrency API 中的 Lock 接口 (Lock interface) 是什么?对 比同步它有什么优势?
43 、单例模式的线程安全性
44 、 Semaphore 有什么作用
45 、 Executors 类是什么?
46、线程类的构造方法、静态块是被哪个线程调用的
上海-携程-Java高级
============
1. 描述一下 JVM 加载 Class 文件的原理机制 ?
2. 什么是类加载器?
3. 类加载器有哪些?
4. 什么是 tomcat 类加载机制?
5、类加载器双亲委派模型机制?
6. Java 内存分配?
7. Java 堆的结构是什么样子的?
8. 简述各个版本内存区域的变化?
9. 说说各个区域的作用?
10. Java 中会存在内存泄漏吗,简述一下?
11. Java 类加载过程?
12. 什么是 GC? 为什么要有 GC ?
13. 简述一下 Java 垃圾回收机制?
14. 如何判断一个对象是否存活?
15. 垃圾回收的优点和原理,并考虑 2 种回收机制? 基本原理是什么?
16. 深拷贝和浅拷贝?
17. 什么是分布式垃圾回收( DGC)?它是如何工作的?
深圳-OPPO-Java高级
==============
-
说说你的⼯作经历?
-
项⽬主要负责哪⼏个模块?
-
画出你项⽬的结构图
-
Eureka 是如何进⾏服务注册的?
-
如果服务宕机或者⽆法访问了,我还去请求该服务, Eureka会怎么处理? 会有什么现象?
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
最后
最后,强调几点:
- 1. 一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。因为一般情况下,面试官都是会根据你的简历来问的; 能有一个上得了台面的项目也非常重要,这很可能是面试官会大量发问的地方,所以在面试之前好好回顾一下自己所做的项目;
- 2. 和面试官聊基础知识比如设计模式的使用、多线程的使用等等,可以结合具体的项目场景或者是自己在平时是如何使用的;
- 3. 注意自己开源的Github项目,面试官可能会挖你的Github项目提问;
我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!
以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目。
面试答案
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!
.jpg" alt=“img” style=“zoom: 33%;” />
最后
最后,强调几点:
- 1. 一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。因为一般情况下,面试官都是会根据你的简历来问的; 能有一个上得了台面的项目也非常重要,这很可能是面试官会大量发问的地方,所以在面试之前好好回顾一下自己所做的项目;
- 2. 和面试官聊基础知识比如设计模式的使用、多线程的使用等等,可以结合具体的项目场景或者是自己在平时是如何使用的;
- 3. 注意自己开源的Github项目,面试官可能会挖你的Github项目提问;
我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!
以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目。
面试答案
[外链图片转存中…(img-JmVLKBq6-1711950578650)]
[外链图片转存中…(img-GyPpChSk-1711950578651)]
[外链图片转存中…(img-HdD5tRmd-1711950578651)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!