Java 开发从零开始,牛客网 java 选择题库,程序员 Javaweb 源码
字节跳动一面:
自我介绍,主要讲讲做了什么和擅长什么
看你项目做 Spring 比较多, 问一下 Spring 相关的东西, IoC 是什么概念?
Bean 的默认作用范围是什么?其他的作用范围?
索引是什么概念有什么作用? MySQL 里主要有哪些索弓|结构?哈希索弓和 B+树索引比较?
平常用线程主要是怎么写的,会用一一些线程框架吗? (没有用框架) Java 线程池的概念?线程池有哪
些?线程池工厂有哪些线程池类型,及其线程池参数是什么?
ConcurrentHashMap 讲一讲?
Java GC 机制? GC Roots 有哪些?
Java bin 包下面的工具用过哪些?
算法题:红蓝两种球,总共 N 个,N>2, 排列组合,连续 3 个颜色一样是非法的,求合法的排列数量
字节跳动二面:
自我介绍
项目询问:问了简历上写得最早的项目的情况,项目 QPS ?数据来源和传输形式?
发起一个 HTTP 请求的过程?刚才提到 DNS , DNS 用的什么传输层协议?为什么说用的是 TCP 协议?
(我说其实我不清楚是用的什么协议)他说那让你设计的话用什么协议比较合适? (思考了一下,说
觉得 UDP 比较合适,比较轻量不占用服务器带宽,查了一下 TCP 和 UDP 都有 ,用在不同情境下)
TCP 协议的三次握手和四次挥手过程?
同步 IO 和异步 IO 的区别?
操作系统的 blablabla? (懵)算了,直接问你好了, select 和 epoll ?
线程如何实现同步?
MySQL 了解到什么程度? binLog 知道吗?
描述一下堆排的过程?建堆的时间复杂度?最大堆中求前 K 个最大值的时间复杂度?
字节跳动三面:
自我介绍。
ConcurrentHashMap 在 Java7 和 Java8 中的区别?为什么 Java8 并发效率更好?什么情况下用
HashMap ,什么情况用 ConcurrentHashMap ?
加锁有什么机制?
ThreadLocal ?应用场景?
Web 容器用的什么?你项目里涉及了 SSM 框架,一个请求到 Tomcat 容器了,怎么到 SSM 代码中去?
网络协议了解吗?
项目介绍一 下是做什么的?讲一讲学到什么东西?
平常怎么学习?
大学到现在遇到的最大困难是什么?怎么克服?事情太多的时候会有压力吗?
未来的规划?
目前有 offer 吗?
设计一个系统:用来促成交易,有多种商品,有购买方和卖出方,促成买家价格大于等于卖出价格的交易。
更多 BATJ 高级 Java 必考题与答案
最后我们该如何学习?
1、看视频进行系统学习
这几年的 Crud 经历,让我明白自己真的算是菜鸡中的战斗机,也正因为 Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去 B 站进行学习,B 站上有很多学习视频,唯一的缺点就是免费的容易过时。
另外,我自己也珍藏了好几套视频资料躺在网盘里,有需要的我也可以分享给你:
2、读源码,看实战笔记,学习大神思路
“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。
Spring 源码深度解析:
Mybatis 3 源码深度解析:
Redis 学习笔记:
Spring Boot 核心技术-笔记:
3、面试前夕,刷题冲刺
面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。
关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:
只有技术过硬,在哪儿都不愁就业,“万般带不去,唯有业随身”学习本来就不是在课堂那几年说了算,而是在人生的旅途中不间断的事情。
人生短暂,别稀里糊涂的活一辈子,不要将就。
评论