圆你的大厂梦!字节跳动Java高频面试题真题:一/二/三面+常见问题

目录

  • 技术一面(算法)
  • 技术二面
  • 技术三面
  • JAVA开发技术面试中可能问到的问题
  • 面试注意点

一、字节跳动技术一面(算法)

  1. Java 的 16 进制与字符串的相互转换函数
  2. JAVA 时间格式化处理
  3. 将毫秒转化为日期
  4. 文本的倒序输出
  5. 判断一个数字是奇数还是偶数
  6. 用Hibernate 实现分页
  7. 35 选 7 彩票程序
  8. 获取 GMT8 时间
  9. 中文乱码转换
  10. 小标签
  11. Big5 字与 Unicode 的互换
  12. 取得服务器当前的各种具体时间
  13. 用半角的特殊符号代替全角的特殊符号
  14. 数组和数组之间的转换代码
  15. 从资源文件里读取值的类
  16. 一个随机类
  17. 计算传入值是否星期六
  18. 转换文件大小
  19. Java 日期格式化及其使用例子
  20. Java几个常用方法
  21. 判断字符是否属于中文
  22. 去掉字符串中重复的子字符串
  23. 将指定 byte 数组以 16 进制的形式打印到控制台
  24. 获得任意一个整数的阶乘,递归
  25. 拷贝一个目录或者文件到指定路径下
  26. 简单的 txt 转换 xml
  27. 字母排序(A-Z)(先大写,后小写)
  28. 列出某文件夹及其子文件夹下面的文件,并可根据扩展名过滤
  29. 字符串匹配的算法

二、字节跳动技术二面

  1. List和Set比较,各自的子类比较
  2. HashMap和ConcurrentHashMap的区别
  3. HashTable和ConcurrentHashMap的区别
  4. String,StringBuffer和StringBuilder的区别
  5. wait和sleep的区别
  6. JVM的内存结构
  7. 强引用,软引用和弱引用的区别
  8. 数组在内存中如何分配
  9. Spring MVC的核心是什么,请求的流程是怎么处理的,控制反转怎么实现的
  10. Mybatis如何处理结果集
  11. Java的多态表现在哪里
  12. 接口有什么用
  13. 说说http,https协议
  14. 说说tcp/ip协议族
  15. tcp五层网络协议
  16. TCP与UDP的区别
  17. cookie和session的区别,分布式环境怎么保存用户状态
  18. BIO、NIO和AIO的区别
  19. Java中常说的堆和栈,分别是什么数据结构;另外,为什么要分为堆和栈来存储数据
  20. 为什么要用线程池
  21. MySQL优化经验
  22. 悲观锁和乐观锁的区别,怎么实现
  23. 什么是线程死锁?死锁如何产生?如何避免线程死锁?
  24. notify和notifyAll区别
  25. 谈一谈对MySQL InnoDB的认识
  26. 谈一谈数据库事务的隔离级别?
  27. MySQL主备同步的基本原理
  28. 类在虚拟机中的加载过程
  29. 强引用、软引用、弱引用、虚引用与GC的关系
  30. 请写一段栈溢出、堆溢出的代码

三、字节跳动技术三面

  1. 说一下spring中Bean的作用域
  2. 说一下spring中Bean的生命周期
  3. 对Spring中依赖注入两种方式的认识
  4. Spring框架中都用到了哪些设计模式?
  5. BeanFactory 和ApplicationContext的区别
  6. 数据库的三大范式
  7. TCP和UDP的区别及其适用场景
  8. 说一下Spring的核心模块
  9. (转发)forward与(重定向)redirect的区别
  10. redis常用的五种数据类型
  11. 内部类和静态内部类的区别
  12. 非静态内部类中的变量和方法不能声明为静态的原因
  13. String,StringBuilder,StringBuffer的区别
  14. 集合和数组之间的相互转换
  15. 面向对象的特征有哪些方面?
  16. 概括的解释下线程的几种状态
  17. Java集合类里面基本的接口有哪些
  18. Iterator和ListIterator的区别
  19. Enumeration和Iterator的区别
  20. 介绍一下HTTP的响应结构
  21. final、finalize和finally各自的作用
  22. 说一下你了解的几种进程间的通信方式

四、JAVA开发技术面试中可能问到的问题

1. 基础知识

  • 集合类:List和Set比较,各自的子类比较(ArrayList,Vector,LinkedList;HashSet,TreeSet);
  • HashMap的底层实现,之后会问ConcurrentHashMap的底层实现;
  • 如何实现HashMap顺序存储:可以参考LinkedHashMap的底层实现;
  • HashTable和ConcurrentHashMap的区别;
  • String,StringBuffer和StringBuilder的区别;
  • Object的方法有哪些:比如有wait方法,为什么会有;
  • wait和sleep的区别,必须理解;
  • JVM的内存结构,JVM的算法;
  • 强引用,软引用和弱引用的区别;
  • 数组在内存中如何分配;
  • 用过哪些设计模式,手写一个(除单例);
  • springmvc的核心是什么,请求的流程是怎么处理的,控制反转怎么实现的;
  • spring里面的aop的原理是什么;
  • mybatis如何处理结果集:反射,建议看看源码;
  • java的多态表现在哪里;
  • 接口有什么用;
  • 说说http,https协议;
  • tcp/ip协议簇;
  • osi五层网络协议;
  • tcp,udp区别;
  • 用过哪些加密算法:对称加密,非对称加密算法;
  • 说说tcp三次握手,四次挥手;
  • cookie和session的区别,分布式环境怎么保存用户状态;
  • git,svn区别;
  • 请写一段栈溢出、堆溢出的代码;
  • ThreadLocal可以用来共享数据吗;

2. IO

  • bio,nio,aio的区别;
  • nio框架:dubbo的实现原理;
  • 京东内部的jsf是使用的什么协议通讯:可参见dubbo的协议;

3. 算法

  • java中常说的堆和栈,分别是什么数据结构;另外,为什么要分为堆和栈来存储数据。
  • TreeMap如何插入数据:二叉树的左旋,右旋,双旋;
  • 一个排序之后的数组,插入数据,可以使用什么方法?答:二分法;问:时间复杂度是多少?
  • 平衡二叉树的时间复杂度;
  • Hash算法和二叉树算法分别什么时候用;
  • 图的广度优先算法和深度优先算法:详见jvm中垃圾回收实现;

4. 多线程

  • 说说阻塞队列的实现:可以参考ArrayBlockingQueue的底层实现(锁和同步都行);
  • 进程通讯的方式:消息队列,共享内存,信号量,socket通讯等;
  • 用过并发包的哪些类;
  • 什么地方用了多线程;
  • Excutors可以产生哪些线程池;
  • 为什么要用线程池;
  • volatile关键字的用法:使多线程中的变量可见;

5. 数据库相关(MySQL)

  • MySQL优化经验:
  • MySQL的语句优化,使用什么工具;
  • MySQL的索引分类:B+,hash;什么情况用什么索引;
  • MySQL的存储引擎有哪些,区别是什么;
  • 说说事务的特性和隔离级别;
  • 悲观锁和乐观锁的区别,怎么实现;

6. Mq

  • mq的原理是什么:有点大。。都可以说;
  • mq如何保证实时性;
  • mq的持久化是怎么做的;

7. Redis

  • redis和memcache的区别;
  • 用redis做过什么;
  • redis是如何持久化的:rdb和aof;
  • redis集群如何同步;
  • redis的数据添加过程是怎样的:哈希槽;
  • redis的淘汰策略有哪些;
  • redis有哪些数据结构;

8. Zookeeper

  • zookeeper是什么;
  • zookeeper哪里用到;
  • zookeeper的选主过程;
  • zookeeper集群之间如何通讯;
  • 你们的zookeeper的节点加密是用的什么方式;
  • 分布式锁的实现过程;

9. Linux

  • linux常用的命令有哪些;
  • 如何获取java进程的pid;
  • 如何获取某个进程的网络端口号;
  • 如何实时打印日志;
  • 如何统计某个字符串行数;

五、面试注意点

  1. 至少定出2天的准备时间
  2. 一定得再次阅读公司的职位要求
  3. 在刷题前,先准备项目描述的说辞
  4. 一定得准备项目描述里提到的技术
  5. 一定得准备亮点话题,并想办法往这方面绕,而且亮点话题多多益善
  6. 时间多,再去刷题
  7. 面试题,通过准备让面试官感觉你软实力也行

写在最后:

冷静的思维,点亮智慧的殿堂;
抽象的理念,交汇灵感的火花;
平凡的字符,串起别样的精彩;
细腻的语言,盘活冰冷的程序;
非凡的才华,开启幸福的天地。

原文地址:https://blog.51cto.com/14637764/2463138

时间: 2024-10-07 16:33:41

圆你的大厂梦!字节跳动Java高频面试题真题:一/二/三面+常见问题的相关文章

2019 字节跳动java面试笔试题 (含面试题解析)

本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.滴滴等公司offer,岗位是Java后端开发,最终选择去了阿里巴巴. 面试了很多家公司,感觉大部分公司考察的点都差不多,所以将自己的心得记下来,希望能给正在找或者准备找工作的朋友提供一点帮助.另外,目前在阿里也做面试官的工作,身份从求职者变为面试官,看问题的很多角度也不一样,所以下文中既有求职者的视角,也有面试官的视角 面试流程 ??先说下面试流程,一般大公司都有3-4轮技术面,1轮的HR面.就阿里而言,我共经

字节跳动Java研发面试99题(含答案):JVM+Spring+MySQL+线程池+锁

JVM的内存结构 根据 JVM 规范,JVM 内存共分为虚拟机栈.堆.方法区.程序计数器.本地方法栈五个部分. 1. Java虚拟机栈:线程私有:每个方法在执行的时候会创建一个栈帧,存储了局部变量表,操作数栈,动态连接,方法返回地址等:每个方法从调用到执行完毕,对应一个栈帧在虚拟机栈中的入栈和出栈. 2. 堆:线程共享:被所有线程共享的一块内存区域,在虚拟机启动时创建,用于存放对象实例. 3. 方法区:线程共享:被所有线程共享的一块内存区域:用于存储已被虚拟机加载的类信息,常量,静态变量等. 4

记一道字节跳动的算法面试题

前几天有个朋友去面试字节跳动,面试官问了他一道链表相关的算法题,不过他一时之间没做出来,就来问了我一下,感觉这道题还不错,拿来讲一讲. 题目 这其实是一道变形的链表反转题,大致描述如下 给定一个单链表的头节点 head,实现一个调整单链表的函数,使得每K个节点之间为一组进行逆序,并且从链表的尾部开始组起,头部剩余节点数量不够一组的不需要逆序.(不能使用队列或者栈作为辅助) 例如: 链表:1->2->3->4->5->6->7->8->null, K = 3.

2019字节跳动面试时手撕代码题(持续更新~)

1. N 阶乘末尾0的个数. 输入描述: 输入为一行,n(1 ≤ n ≤ 1000) 输出描述: 输出一个整数,即题目所求解法:要判断末尾有几个0就是判断可以整除几次10.10的因子有5和2,而在0~9之间5的倍数只有一个,2的倍数相对较多,所以本题也就转换成了求N阶乘中有几个5的倍数.也就是每多出来一个5,阶乘末尾就会多出来一个0,这样n / 5就能统计完第一层5的个数,依次处理,就能统计出来所有5的个数.同一个思想两种写法. 题解: 要判断末尾有几个0就是判断可以整除几次10.10的因子有5

Java高频面试题汇总--Java职场范儿

经历了两周的面试,终于收到了几个满意的offer.换工作的过程是痛苦的,除了一天马不停蹄地跑好几家公司面试,剩下的时间基本就是背面试题了.想找到一份适合自己的面试题并不简单,比如我找的是高级Java开发的职位.出于之前公司系统架构的设计,需要准备Java.spring.springboot.mysql.mybatis.mycat.zookeeper.dubbo.kafka.redis.网络等面试题.我结合之前面试的20多家公司,以及从CSDN/简书/掘金/公众号等相关渠道搜集到的面试题,从中整理

第四届(13年)蓝桥杯java B组决赛真题

1.标题:猜灯谜(填空) A 村的元宵节灯会上有一迷题: 请猜谜 * 请猜谜 = 请边赏灯边猜        小明想,一定是每个汉字代表一个数字,不同的汉字代表不同的数字.        请你用计算机按小明的思路算一下,然后提交"请猜谜"三个字所代表的整数即可. 请严格按照格式,通过浏览器提交答案.    注意:只提交一个3位的整数,不要写其它附加内容,比如:说明性的文字. 1 import java.util.Scanner; 2 //猜灯谜 3 public class Main{

Java相关面试题总结+答案(二)

[容器] 18. Java 容器都有哪些? 19. Collection 和 Collections 有什么区别? Collection 是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法,所有集合都是它的子类,比如 List.Set 等. Collections 是一个包装类,包含了很多静态方法,不能被实例化,就像一个工具类,比如提供的排序方法: Collections. sort(list). 20. List.Set.Map 之间的区别是什么? List.Set.Map 的区别主

Java基础面试题及答案(二)

容器 18. java 容器都有哪些? 常用容器的图录: 19. Collection 和 Collections 有什么区别? java.util.Collection 是一个集合接口(集合类的一个顶级接口).它提供了对集合对象进行基本操作的通用接口方法.Collection接口在Java 类库中有很多具体的实现.Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set. Collections则是集合类的一个工具类/帮助类,其中提供了一系列

第七届(16年)蓝桥杯java B组决赛真题

1.愤怒小鸟(填空)X星球愤怒的小鸟喜欢撞火车! 一根平直的铁轨上两火车间相距 1000 米两火车 (不妨称A和B) 以时速 10米/秒 相对行驶. 愤怒的小鸟从A车出发,时速50米/秒,撞向B车,然后返回去撞A车,再返回去撞B车,如此往复....两火车在相距1米处停车. 问:这期间愤怒的小鸟撞 B 车多少次? 注意:需要提交的是一个整数(表示撞B车的次数),不要填写任何其它内容. 1 public class One { 2 //A.B的位置a.b的大小相对于A的起点而言,小鸟的速度为50,A