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

目录

技术一面(算法)

技术二面

技术三面

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

面试注意点

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

Java 的 16 进制与字符串的相互转换函数

JAVA 时间格式化处理

将毫秒转化为日期

文本的倒序输出

判断一个数字是奇数还是偶数

用Hibernate 实现分页

35 选 7 彩票程序

获取 GMT8 时间

中文乱码转换

小标签

Big5 字与 Unicode 的互换

取得服务器当前的各种具体时间

用半角的特殊符号代替全角的特殊符号

数组和数组之间的转换代码

从资源文件里读取值的类

一个随机类

计算传入值是否星期六

转换文件大小

Java 日期格式化及其使用例子

Java几个常用方法

判断字符是否属于中文

去掉字符串中重复的子字符串

将指定 byte 数组以 16 进制的形式打印到控制台

获得任意一个整数的阶乘,递归

拷贝一个目录或者文件到指定路径下

简单的 txt 转换 xml

字母排序(A-Z)(先大写,后小写)

列出某文件夹及其子文件夹下面的文件,并可根据扩展名过滤

字符串匹配的算法

二、字节跳动技术二面

List和Set比较,各自的子类比较

HashMap和ConcurrentHashMap的区别

HashTable和ConcurrentHashMap的区别

String,StringBuffer和StringBuilder的区别

wait和sleep的区别

JVM的内存结构

强引用,软引用和弱引用的区别

数组在内存中如何分配

Spring MVC的核心是什么,请求的流程是怎么处理的,控制反转怎么实现的

Mybatis如何处理结果集

Java的多态表现在哪里

接口有什么用

说说http,https协议

说说tcp/ip协议族

tcp五层网络协议

TCP与UDP的区别

cookie和session的区别,分布式环境怎么保存用户状态

BIO、NIO和AIO的区别

Java中常说的堆和栈,分别是什么数据结构;另外,为什么要分为堆和栈来存储数据

为什么要用线程池

MySQL优化经验

悲观锁和乐观锁的区别,怎么实现

什么是线程死锁?死锁如何产生?如何避免线程死锁?

notify和notifyAll区别

谈一谈对MySQL InnoDB的认识

谈一谈数据库事务的隔离级别?

MySQL主备同步的基本原理

类在虚拟机中的加载过程

强引用、软引用、弱引用、虚引用与GC的关系

请写一段栈溢出、堆溢出的代码

三、字节跳动技术三面

说一下spring中Bean的作用域

说一下spring中Bean的生命周期

对Spring中依赖注入两种方式的认识

Spring框架中都用到了哪些设计模式?

BeanFactory 和ApplicationContext的区别

数据库的三大范式

TCP和UDP的区别及其适用场景

说一下Spring的核心模块

(转发)forward与(重定向)redirect的区别

redis常用的五种数据类型

内部类和静态内部类的区别

非静态内部类中的变量和方法不能声明为静态的原因

String,StringBuilder,StringBuffer的区别

集合和数组之间的相互转换

面向对象的特征有哪些方面?

概括的解释下线程的几种状态

Java集合类里面基本的接口有哪些

Iterator和ListIterator的区别

Enumeration和Iterator的区别

介绍一下HTTP的响应结构

final、finalize和finally各自的作用

说一下你了解的几种进程间的通信方式

四、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可以用来共享数据吗;

  1. IO

bio,nio,aio的区别;

nio框架:dubbo的实现原理;

京东内部的jsf是使用的什么协议通讯:可参见dubbo的协议;

3. 算法

java中常说的堆和栈,分别是什么数据结构;另外,为什么要分为堆和栈来存储数据。

TreeMap如何插入数据:二叉树的左旋,右旋,双旋;

一个排序之后的数组,插入数据,可以使用什么方法?答:二分法;问:时间复杂度是多少?

平衡二叉树的时间复杂度;

Hash算法和二叉树算法分别什么时候用;

图的广度优先算法和深度优先算法:详见jvm中垃圾回收实现;

  1. 多线程

说说阻塞队列的实现:可以参考ArrayBlockingQueue的底层实现(锁和同步都行);

进程通讯的方式:消息队列,共享内存,信号量,socket通讯等;

用过并发包的哪些类;

什么地方用了多线程;

Excutors可以产生哪些线程池;

为什么要用线程池;

volatile关键字的用法:使多线程中的变量可见;

  1. 数据库相关(MySQL)

MySQL优化经验:

MySQL的语句优化,使用什么工具;

MySQL的索引分类:B+,hash;什么情况用什么索引;

MySQL的存储引擎有哪些,区别是什么;

说说事务的特性和隔离级别;

悲观锁和乐观锁的区别,怎么实现;

  1. Mq

mq的原理是什么:有点大。。都可以说;

mq如何保证实时性;

mq的持久化是怎么做的;

  1. Redis

redis和memcache的区别;

用redis做过什么;

redis是如何持久化的:rdb和aof;

redis集群如何同步;

redis的数据添加过程是怎样的:哈希槽;

redis的淘汰策略有哪些;

redis有哪些数据结构;

  1. Zookeeper

zookeeper是什么;

zookeeper哪里用到;

zookeeper的选主过程;

zookeeper集群之间如何通讯;

你们的zookeeper的节点加密是用的什么方式;

分布式锁的实现过程;

  1. Linux

linux常用的命令有哪些;

如何获取java进程的pid;

如何获取某个进程的网络端口号;

如何实时打印日志;

如何统计某个字符串行数;

五、面试注意点

至少定出2天的准备时间

一定得再次阅读公司的职位要求

在刷题前,先准备项目描述的说辞

一定得准备项目描述里提到的技术

一定得准备亮点话题,并想办法往这方面绕,而且亮点话题多多益善

时间多,再去刷题

面试题,通过准备让面试官感觉你软实力也行

image.png


可以说这一篇(宝典)说实话,熟知本文80%以上内容,找个开发工作问题不大。对3-5年经验的朋友,也是快速温习的利器。

最后给大家Spring系列的学习笔记和面试题,包含spring面试题、spring cloud面试题、spring boot面试题、spring教程笔记、spring boot教程笔记、最新阿里巴巴开发手册(63页PDF总结)、2022年Java面试手册。一共整理了1184页PDF文档。(666)领取,祝大家更上一层楼!!!

image.png

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340