字节跳动2020Java面经,你离高薪就只差一片面试题了
前言
经历了惨痛的春招与秋招之后,也积攒了一些面经,希望能对大家有所帮助。由于字数限制需要答案的可以关注GZH【程序员空间】 免费领取完整版PDF
其他
- 什什么是幂等?什什么情况下需要考虑幂等?你怎么解决幂等的问题?
Java
多个线程同时读写,读线程的数量量远远⼤大于写线程,你认为应该如何解决
并发的问题?你会选择加什什么样的锁?JAVA的AQS是否了了解,它是⼲干嘛的?
除了了synchronized关键字之外,你是怎么来保障线程安全的?
什什么时候需要加volatile关键字?它能保证线程安全吗?
线程池内的线程如果全部忙,提交⼀一个新的任务,会发⽣生什什么?队列列全部
塞满了了之后,还是忙,再提交会发⽣生什什么?Tomcat本身的参数你⼀一般会怎么调整?
synchronized关键字锁住的是什什么东⻄西?在字节码中是怎么表示的?在内
存中的对象上表现为什什么?wait/notify/notifyAll⽅方法需不不需要被包含在synchronized块中?这是为什什
么?ExecutorService你⼀一般是怎么⽤用的?是每个service放⼀一个还是⼀一个项⽬目
⾥里里⾯面放⼀一个?有什什么好处?
Spring你有没有⽤用过Spring的AOP? 是⽤用来⼲干嘛的? ⼤大概会怎么使⽤用?
如果⼀一个接⼝口有2个不不同的实现, 那么怎么来Autowire⼀一个指定的实现?
Spring的声明式事务 @Transaction注解⼀一般写在什什么位置? 抛出了了异常
会⾃自动回滚吗?有没有办法控制不不触发回滚?如果想在某个Bean⽣生成并装配完毕后执⾏行行⾃自⼰己的逻辑,可以什什么⽅方式实
现?SpringBoot没有放到web容器器⾥里里为什什么能跑HTTP服务?
SpringBoot中如果你想使⽤用⾃自定义的配置⽂文件⽽而不不仅仅是
application.properties,应该怎么弄弄?SpringMVC中RequestMapping可以指定GET, POST⽅方法么?怎么指定?
SpringMVC如果希望把输出的Object(例例如XXResult或者XXResponse)这
种包装为JSON输出, 应该怎么处理理?怎样拦截SpringMVC的异常,然后做⾃自定义的处理理,⽐比如打⽇日志或者包装
成JSON
MySQL
如果有很多数据插⼊入MYSQL 你会选择什什么⽅方式?
如果查询很慢,你会想到的第⼀一个⽅方式是什什么?索引是⼲干嘛的?
如果建了了⼀一个单列列索引,查询的时候查出2列列,会⽤用到这个单列列索引吗?
如果建了了⼀一个包含多个列列的索引,查询的时候只⽤用了了第⼀一列列,能不不能⽤用上
这个索引?查三列列呢?接上题,如果where条件后⾯面带有⼀一个 i + 5 < 100 会使⽤用到这个索引吗?
怎么看是否⽤用到了了某个索引?
like %aaa%会使⽤用索引吗? like aaa%呢?
drop、 truncate、 delete的区别?
平时你们是怎么监控数据库的? 慢SQL是怎么排查的?
你们数据库是否⽀支持emoji表情,如果不不⽀支持,如何操作?
你们的数据库单表数据量量是多少?⼀一般多⼤大的时候开始出现查询性能急
剧下降?查询死掉了了,想要找出执⾏行行的查询进程⽤用什什么命令?找出来之后⼀一般你
会⼲干嘛?读写分离是怎么做的?你认为中间件会怎么来操作?这样操作跟事务有
什什么关系?分库分表有没有做过?线上的迁移过程是怎么样的?如何确定数据是正
确的?
JVM
你知道哪些或者你们线上使⽤用什什么GC策略略? 它有什什么优势,适⽤用于什什么
场景?JAVA类加载器器包括⼏几种?它们之间的⽗父⼦子关系是怎么样的?双亲委派机
制是什什么意思?有什什么好处?如何⾃自定义⼀一个类加载器器?你使⽤用过哪些或者你在什什么场景下需要⼀一个⾃自
定义的类加载器器吗?堆内存设置的参数是什什么?
Perm Space中保存什什么数据? 会引起OutOfMemory吗?
做gc时,⼀一个对象在内存各个Space中被移动的顺序是什什么?
你有没有遇到过OutOfMemory问题?你是怎么来处理理这个问题的?处理理
过程中有哪些收获?1.8之后Perm Space有哪些变动? MetaSpace⼤大⼩小默认是⽆无限的么? 还是
你们会通过什什么⽅方式来指定⼤大⼩小?Jstack是⼲干什什么的? Jstat呢? 如果线上程序周期性地出现卡顿,你怀疑可
能是gc导致的,你会怎么来排查这个问题?线程⽇日志⼀一般你会看其中的什什么
部分?StackOverFlow异常有没有遇到过?⼀一般你猜测会在什什么情况下被触
发?如何指定⼀一个线程的堆栈⼤大⼩小?⼀一般你们写多少?
Linux命令
0.添加Java学习:1037935907
⽇日志特别⼤大只想看最后100⾏行行怎么弄弄? 如果想⼀一直看⽇日志的持续输出,⽤用
什什么命令?如果⽇日志⼀一边输出,⼀一边想实时看到有没有某个关键字应该怎么弄弄?
grep如果忽略略⼤大⼩小写应该怎么弄弄? 正则表达式呢?
vim往下⼀一⾏行行是什什么键?往下30⾏行行呢? 跳到⽂文件末尾⼀一⾏行行是什什么? 跳回来
是什什么? 向后搜索是什什么?如果有个⽂文本⽂文件,按空格作为列列的分隔符,如果想统计第三列列⾥里里⾯面的每
个单词的出现次数应该怎么弄弄?如果把上⾯面的出现次数排个序应该怎么弄弄? 想按照数字本身的顺序⽽而不不是
字符串串的顺序排列列怎么弄弄?Linux环境变量量是以什什么作为分隔符的?环境变量量通过什什么命令设置?
给某个⽂文件权设置限⽐比如设置为644 是⽤用什什么命令?这个6是什什么意思?
Linux下⾯面如果想看某个进程的资源占⽤用情况是怎么看的?系统load⼤大概
指的什什么意思?你们线上系统load⼀一般多少?如果⼀一个4核机器器,你认为多
少load是⽐比较正常的? top命令⾥里里⾯面按⼀一下1会发⽣生什什么?top命令⾥里里⾯面,有时候所有进程的CPU使⽤用率加起来超过100%是怎么回
事?还有哪些查看系统性能或者供你发现问题的命令?你⼀一般是看哪个参
数?想看某个进程打开了了哪些⽹网络连接是什什么命令?⾥里里⾯面连接的状态你⽐比较
关⼼心哪⼏几种?
-- 偏题
有没有做过Linux系统参数⽅方⾯面的优化,⼤大概优化过什什么?
系统参数⾥里里⾯面有个叫做backlog的可以⽤用来⼲干什什么?
查看⽹网络连接发现好多TIME_WAIT 可能是什什么原因?对你的应⽤用会有什什
么影响?你会选择什什么样的⽅方式来减少这些TIME_WAIT可否介绍⼀一下TCP三次握⼿手的过程,如果现在有个⽹网络程序,你⽤用第三⽅方
的library来发送数据,你怀疑这个library发送的数据有问题,那么怎么来验
证? tcpdump导出的⽂文件你⼀一般是怎么分析的?KeepAlive是⽤用来⼲干什什么的?这样的好处是什什么?
Redis
-- 开发
缓存穿透可以介绍⼀一下么?你认为应该如何解决这个问题
你是怎么触发缓存更更新的? (⽐比如设置超时时间(被动⽅方式), ⽐比如更更新的时
候主动update)?如果是被动的⽅方式如何控制多个⼊入⼝口同时触发某个缓存更更
新?你们⽤用Redis来做什什么?为什什么不不⽤用其他的KV存储例例如Memcached,
Cassandra等?你们⽤用什什么Redis客户端? Redis⾼高性能的原因⼤大概可以讲⼀一些?
你熟悉哪些Redis的数据结构? zset是⼲干什什么的? 和set有什什么区别?
Redis的hash, 存储和获取的具体命令叫什什么名字?
LPOP和BLPOP的区别?
Redis的有⼀一些包含SCAN关键字的命令是⼲干嘛的? SCAN返回的数据量量是
固定的吗?Redis中的Lua有没有使⽤用过? 可以⽤用来做什什么? 为什什么可以这么⽤用?
Redis的Pipeline是⽤用来⼲干什什么的?
-- 运维
Redis持久化⼤大概有⼏几种⽅方式? aof和rdb的区别是什什么? AOF有什什么优缺
点吗?Redis Replication的⼤大致流程是什什么? bgsave这个命令的执⾏行行过程?
-- 偏题如果有很多 KV数据要存储到Redis, 但是内存不不⾜足, 通过什什么⽅方式可以缩
减内存? 为什什么这样可以缩⼩小内存?Redis中List, HashTable都⽤用到了了ZipList, 为什什么会选择它?
监控、稳定性业务⽇日志是通过什什么⽅方式来收集的?
线上机器器如何监控?采⽤用什什么开源产品或者⾃自研的产品?它是分钟级的还
是秒级的?如果让你来想办法收集⼀一个JAVA后端应⽤用的性能数据,你会在意哪些⽅方
⾯面? 你会选择什什么样的⼯工具、思路路来收集?⼀一般你调⽤用第三⽅方的时候会不不会监控调⽤用情况?
字节跳动2020Java面经,你离高薪就只差一片面试题了的更多相关文章
- 你离高薪 offer 只差一个Redis入门,我是认真的
说起来,可能有些小伙伴会不相信,我是第一次用 Redis,真的.因为公司小,业务量小,Redis 根本派不上用场.不过,最近打算把系统升级一下,顺带把当下时髦的技术入个门,"与时俱进&quo ...
- 想进大厂?字节跳动等独角兽公司都在招募Python工程师!(Python就是第一语言)
在本文章中,作者通过自身经历,力求客观的谈谈个人选择学习Python的动机,以及独角兽公司对Python工程师的要求及薪资. 从目前各种迹象(企业招聘,语言排名等)看来Python相对Java应该是暂 ...
- 合并K个有序数组(链表)【字节跳动面试算法题】
本题是本人字节跳动一面考的算法题原题是有序数组,一时没想到怎么解决数组的问题,但是如果给的是有序链表数组,则可以用下面的方法解决 可以利用最小堆完成,时间复杂度是O(nklogk),具体过程如下: 创 ...
- HDU 6467.简单数学题-数学题 (“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛)
简单数学题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- HDU 6464.免费送气球-动态开点-权值线段树(序列中第first小至第second小的数值之和)(感觉就是只有一个状态的主席树) (“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛)
免费送气球 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- HDU 6463.超级无敌简单题-卡边界的暴力 (“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛)
超级无敌简单题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- 不等"金九银十",金风八月,我早已拿下字节跳动的offer
字节跳动,我是在网上投的简历,之前也投过一次,简历都没通过删选,后来让师姐帮我改了一下简历,重新投另一个部门,获得了面试机会.7月23日,中午HR打电话过来预约了下午4点半面试,说会在线写代码,让我准 ...
- 朋友的一年工作经验跳槽字节跳动社招经历分享(已拿offer)
虽然已经临近年末,但是还是萌生要看新机会的想法,主要的原因是觉得在目前的岗位上技术增长遇到的瓶颈,因此想去做一些更有挑战的工作.因为仍然准备继续在深圳工作,因此选定了三家公司,腾讯.字节跳动和 sho ...
- 【北京/上海/南京】【部门直推】【可查询】【实习&社招】字节跳动数据平台前端内推
[北京/上海/南京][部门直推][可查询][实习&社招]字节跳动数据平台前端内推 重要信息,写在前面 [投递邮箱]chengxinsong@bytedance.com [微信扫码] 2019 ...
随机推荐
- JavaScript闭包函数的理解
闭包就是一个函数能够访问其函数外部作用域中的变量,即在外面可以调用函数中的函数的变量,其实他就是将函数内外部连接起来的桥梁 闭包三大特点: 1. 函数嵌套函数 2. 内部函数可以访问外部函数的变量 3 ...
- 纯java代码在控制台运算电话本(不使用数据库)
分享学习 Task_08 package cn.rzpt; import java.util.List; import java.util.Scanner; public class Task_08 ...
- Vant IndexBar 在小程序中的简单使用
这篇文章是老王的朋友超超提供的,上午已经更新到原创微信公众号「软件老王」,链接,欢迎各位朋友关注老王的原创公号! 先看下最终效果图,主要是渲染一个A - Z 的 通讯录.同样的,如果你要做的是城市列表 ...
- Mac使用Charles给iPhone抓包流程
目录 需求 步骤 1. Mac打开共享Wifi 2. iPhone连接刚刚的WIFI 3. 找到Mac的局域网ip 4. 配置代理 需求 有时候手机接口出问题了,不知道从哪里下手,Charles就是非 ...
- 配置静态 IP、网卡命名规范
一.网卡命名规范(设备类型 + 设备位置 + 数字) 设备类型: 格式 描述 en 以太网(Ethernet) ib 无限宽带(InfiniBand) sl 串列线路互联网协议(slip:Serial ...
- Java12新特性
switch表达式(预览) 传统switch的缺点 匹配是自上而下的,如果忘记写break, 后面的case语句不论匹配与否都会执行; 所有的case语句共用一个块范围,在不同的case语句定义的变量 ...
- Spring Cloud各组件学习
Spring-Cloud 介绍 SpringCloud各个组件详解,因为SpringCloud部分组件停止更新,故本项目包含原SpringCloud(基于SpringCloud H版和SpringBo ...
- 虚拟机系列 | JVM运行时数据区
本文源码:GitHub·点这里 || GitEE·点这里 一.内存与线程 1.内存结构 内存是计算机的重要部件之一,它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱 ...
- 海量数据分库分表方案(二)技术选型与sharding-jdbc实现
上一章已经讲述分库分表算法选型,本章主要讲述分库分表技术选型 文中关联上一章,若下文出现提及其时,可以点击 分库分表算法方案与技术选型(一) 主要讲述 框架比较 sharding-jdbc.zdal ...
- Linux系统编程 —时序竞态
时序竞态 什么是时序竞态?将同一个程序执行两次,正常情况下,前后两次执行得到的结果应该是一样的.但由于系统资源竞争的原因,前后两次执行的结果有可能得到不一样的结果,这个现象就是时序竞态. pause函 ...