字节跳动Java开放岗面经:14天快速面试,已拿offer,赶快上车

反射能获取到父类的私有方法吗?怎么防止反射破坏单例模式

volite关键字的原理?它能保证原子性吗?AtomicInteger底层怎么实现的?

threadLocal关键字有用过吗?如果没有重写initialValue方法就直接get会怎样?

Socket编程 nio(这一块我不太熟就说没了解过,面试官就没细问了)

img

开源框架

你用过哪些开源框架?最熟悉的是哪个?(这里我说了spring,所以后边的问题都是围绕spring的)

描述下spring的ioc和aop。

你常用哪一种注入方式?BeanFactory和ApplicationContext有什么区别?你们项目里用的哪个?

说一下spring bean的生命周期。

AOP实现原理是什么?两种动态代理实现原理?JDK动态代理为什么要实现接口?

spring task是怎么实现的?

spring事务你是怎么用的?加了@Transcational注解spring都做了哪些工作?怎么知道事务执行成功了?

事务隔离级别?mysql默认级别是什么?事务传播属性?spring默认是什么?嵌套事务子事务什么时候commit?

spring和springMVC是什么关系?有没有用过JdbcTemplate?

springMVC中对整个请求的处理流程是怎样的?返回json的话是用哪个view?

img

数据库

mysql索引是怎么实现的?b+树有哪些特点?真实的数据存在哪里?

哪些情况下建索引?解释下最左匹配原则?

现在一个表有三列a b c,组合索引(a,b,c)查询的时候where a like ? and b=? and c=?能用到这个组合索引吗?为什么?

explain执行计划看过没有?其中type字段都有哪些值?分别代表什么?

你有哪些sql调优经验?

img

Redis

redis有哪几种数据结构?给你一个key怎么知道是用的哪种结构?

怎么查看所有的key?redis怎么切换库?怎么清数据?

描述下redis淘汰策略?如果没有数据可以淘汰或者没有配置淘汰策略读请求可以正常执行吗?

你们项目里redis是单节点的吗?如果多节点怎么同步?

项目里用redis存哪些数据?为什么用redis?和jetty本地缓存有什么区别?

网络

HTTP 1.1版本增加了哪些内容?有哪几种请求方式?

描述下HTTP三次握手和四次挥手过程?为什么需要四次挥手?为什么TIME_WAIT状态需要经过两个最大报文段生存时间才能到close状态?

浏览器发起一个请求到收到响应中间经历了哪些过程?知道多少就说多少,越详细越好。

img

Nginx

nginx有哪些模块?你比较熟悉哪个?

proxy_cache你是怎么配置的?缓存是存在哪里?具体是怎么命中缓存的?

简历里有写nginx,但问的几个问题我都没答好,面试官就没再多问了emm

img

Linux

怎么查看某个进程中的线程?

怎么批量替换一个文件夹下所有文件中的一个字符?(sed命令)

有没有用过jps jmap jstack jstat 命令,分别说下有哪些常用参数,知道多少就说多少。

情景模拟&其他

设计一个系统,系统每天有100亿数据,在后台做实时展示和查找。我当时回答的思路大致是nginx负载均衡,消息队列存储,多线程读取,批量插入,数据库分库分表。

面试官根据我的回答又衍生出了很多问题,如消息队列存满了怎么办?(也就是消费跟不上生产)批量插入时某一条失败了有什么影响?怎么解决?分库分表应该怎么分?怎么解决数据迁移的问题?

用代码实现cat 1.log |grep a |sort |uniq -c |sort -rn 的功能。

如果现在有一台服务器突然变得很慢,怎么去定位问题?

总结

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

关于面试刷题也是有方法可言的,建议最好是按照专题来进行,然后由基础到高级,由浅入深来,效果会更好。当然,这些内容我也全部整理在一份pdf文档内,分成了以下几大专题:

  • Java基础部分

  • 算法与编程

  • 数据库部分

  • 流行的框架与新技术(Spring+SpringCloud+SpringCloudAlibaba)

这份面试文档当然不止这些内容,实际上像JVM、设计模式、ZK、MQ、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。

作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
涉及,因为文章篇幅,就不全部在这里阐述了。

作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 26
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值