首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
Edge-zZz
门头沟学院 Java
发布于广东
关注
已关注
取消关注
@cn016:
字节懂车帝后端日常实习一面面经【详细】
时间:2024-03-04 14:00(GMT+08:00) China Standard Time - Beijing耗时:1h3min自我介绍Me:双非本科,大三在读,自学Java,前来面试面试官:这块儿对语言有要求吗?因为我们这块儿可能对java开发基本没有Me:明白的,语言不是问题,我了解过字节主要都是golang,自己也会一点实习经历……项目经历面试官:你讲一个你比较印象深刻的一个项目吧,然后其中一再做项目过程中遇到了一些哪些问题,然后这些问题是怎么解决的Me:水泥熟料巴拉巴拉……面试官:介绍系统功能Me:巴拉巴拉……面试官:项目底层实现面试官:项目中的搜索功能Me:基于MySQL的like搜索面试官:项目中的redis作用Me:作为缓存,用户发起同样的查询请求时,先访问缓存,缓存不命中再去走MySQL并放置一份到redis面试官:项目中的minIO作用Me:用作文件存储服务……………………项目细节询问……………………八股文面试官开始对MySQL进行拷问事务的四个特性应该是问ACIDAtomicity(原子性): 事务是一个不可分割的工作单元,事务中的所有操作要么全部成功执行,要么全部不执行。如果事务中的任何操作失败,则整个事务将回滚到事务开始前的状态。例如,在银行转账操作中,从账户A向账户B转账100元,这个过程应该被视为一个事务。要么转账完全成功,使得账户A减少100元,账户B增加100元;要么转账完全失败,两个账户余额都不变。Consistency(一致性): 事务完成后,系统状态应从一个有效状态变为另一个有效状态,确保事务前后数据遵循预定义的业务规则和约束条件。比如转账的例子,事务执行前后,两个账户的总金额必须保持一致,这就是一种一致性要求。Isolation(隔离性): 同一时刻多个事务并发执行时,每个事务之间的操作相互独立,互不影响,仿佛每个事务都是系统唯一运行的事务。为实现这一目标,数据库通常提供了不同的隔离级别(如读未提交、读已提交、可重复读、序列化等)来控制并发事务之间的影响程度。Durability(持久性): 一旦事务成功提交,对数据库的修改将会永久保存,即使发生系统崩溃或电源故障等情况,已经提交的事务结果也必须得到保留。索引innodb引擎数据结构B+树存储,叶子节点存数据,非叶子节点存索引对比其他数据结构怎么样,B树,红黑树,哈希表我就答了更好的支持范围查询,因为B+树的叶子节点链表链接且和索引有序排列MySQL的聚簇索引和非聚簇索引是什么不知道,知道联合索引在MySQL中,聚簇索引(Clustered Index)和非聚簇索引(Non-Clustered Index)是两种不同的索引类型,它们的主要区别在于数据行的存储方式以及索引结构与实际数据的关系。聚簇索引(Clustered Index):定义:在InnoDB存储引擎中,默认情况下每个表都有一个聚簇索引,如果用户没有显式创建,则MySQL会自动为表中的主键创建聚簇索引。若未定义主键,则会选择唯一且非空的列作为聚簇索引,否则自动生成隐藏的rowid作为聚簇索引。结构:聚簇索引决定了数据行在磁盘上的物理存储顺序。表的数据行就是按照聚簇索引的顺序进行排序和存储的,换句话说,数据行就直接存储在叶子节点上,因此访问非常高效。特点:聚簇索引的叶子节点包含行的所有数据。表只能有一个聚簇索引,因为数据只能有一种物理排序方式。范围查询时,由于数据物理上连续存放,性能较高。非聚簇索引(Non-Clustered Index):定义:非聚簇索引也称为二级索引或辅助索引,可以由用户根据需要创建在任何列上,包括主键之外的列。结构:非聚簇索引的叶子节点不包含行的所有数据,而是存储了行的主键值或其他唯一标识符(如聚集索引键),用于指向对应的数据行位置。特点:非聚簇索引的叶子节点仅存储索引列的值以及指向相应行的指针。一个表可以有多个非聚簇索引。当通过非聚簇索引查找数据时,首先找到索引对应的记录,然后根据索引中的指针回表查找到对应的行数据,这个过程被称为“回表”。总结来说,聚簇索引对于基于主键或者聚簇索引字段的查询性能较好,而非聚簇索引则提供了对其他字段进行快速搜索的能力,但其本身并不能直接提供数据行的内容,需要结合主键信息才能定位到完整的数据行。建立联合索引如何判断这个索引的优劣性能有联合索引abc,ac,c,select 时 where a=xx and c = xx 走哪个索引我答应该是ac有联合索引abc,c,select 时 where a=xx and c = xx 走索引吗我觉得走abc,根据最左匹配原则也是满足的SQL拷打一个表有学生的信息(学号、姓名),课程信息(课程号,课程名),课程成绩要求写SQL查出学生选的所有课都及格(>60)的 总分,学生姓名,总成绩倒序排序 没用sql答好,最后给面试官的解决方案是先找出学生所有课程成绩,通过后端判断这个学生是不是都及格了,是的话记录这个学生,然后通过所有学生名执行sql查询总成绩ps:面试刚到25min学校教的SQL是MySQL吗教的欧拉数据库(擦,是高斯openGauss,搞错名字了……)redis用过什么数据结构哈希redis的哈希底层实现不了解……redis缓存一致性先删缓存后更新数据库方案(没继续追问延迟双删)git的常用操作……git rebase的原理……不懂Linux常用命令ls -lhtopcatvimkillgrep面试官:查看日志和搜索cat和grepDocker的使用HTTP状态码2xx:没问题3xx:重定向4xx:客户端的问题5xx:服务端的问题面试官:比如说500的时候我们怎么排查,502?504?Me:如果使用nginx反向代理后端可能会常见502,502指网关错误进入服务器看看Java程序是不是不见了,重新运行504的话不知道含义是什么了,没见过,如果是Java程序抛出来的,那我们可以看Java的日志跟踪是哪段代码的问题“504”通常是指HTTP状态码中的“504 Gateway Timeout”,这是一个由服务器端(如代理服务器或网关)返回的错误代码,表示服务器在尝试完成请求时未能及时从上游服务器(例如源站服务器)收到响应。具体来说:504 Gateway Timeout:这意味着作为客户端与目标服务器之间的中介服务(如负载均衡器、反向代理或其他网关设备)在等待来自后端服务器的响应时超出了预设的等待时间限制。简单来说,在网络通信中,如果一个中间服务器在转发客户端请求到最终服务器的过程中,由于某种原因没有及时接收到响应并转发给客户端,则会返回504错误。这个错误通常与服务器配置、网络延迟、服务器过载或后端服务器无响应等因素有关。算法岛屿数量时间复杂度O(2n)空间复杂度O(n)回到八股设计模式单例模式,设计一个单例模式在次感谢牛客的面经https://www.nowcoder.com/feed/main/detail/6f9c1639046f413197051eeede6b8233让我看到了,答的和gpt差不多在Java中,单例模式(Singleton Pattern)保证一个类仅有一个实例,并提供全局访问点。这里展示两种常见的实现单例模式的方式:懒汉式(懒加载)和饿汉式(静态初始化)。1. 懒汉式(线程不安全)Javapublic class Singleton { private static volatile Singleton instance; // 防止通过构造函数直接创建对象 private Singleton() {} public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); // 这里在多线程环境下可能导致多个实例被创建 } return instance; }}这个版本的懒汉式单例在多线程环境下并不安全,可能会创建多个实例。2. 懒汉式(线程安全,使用同步方法)Javapublic class Singleton { private static volatile Singleton instance; private Singleton() {} public static synchronized Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; }}在这个版本中,我们添加了synchronized关键字来确保多线程环境下的安全性,但这样会影响性能,因为每次调用getInstance()都会进行同步锁操作。3. 双重检查锁定(线程安全,更优)Javapublic class Singleton { private static volatile Singleton instance; private Singleton() {} public static Singleton getInstance() { if (instance == null) { synchronized (Singleton.class) { if (instance == null) { // 第二次检查,避免不必要的同步开销 instance = new Singleton(); } } } return instance; }}双重检查锁定既保证了线程安全,又尽可能地减少了同步的开销。只有在实例未创建时才进行同步,创建后就不再需要同步,提高了效率。4. 饿汉式(静态初始化,线程安全)Javapublic class Singleton { // 类加载时即初始化实例,保证线程安全 private static final Singleton instance = new Singleton(); private Singleton() {} public static Singleton getInstance() { return instance; }}饿汉式的实现方式是在类加载时立即创建并初始化单例实例,因此天生就是线程安全的,但无法做到按需加载(lazy initialization)。以下是第三种实现方式——双重检查锁定(Double-Checked Locking)的Java单例模式代码解释:Javapublic class Singleton { // 使用volatile关键字确保多线程环境下的可见性和有序性 private static volatile Singleton instance; // 私有化构造函数以防止外部实例化 private Singleton() {} // 提供获取实例的方法 public static Singleton getInstance() { // 第一次检查:如果instance已非空,则直接返回 if (instance == null) { // 否则同步块内进行第二次检查,并创建实例 synchronized (Singleton.class) { // 在同步块内部再次检查实例是否已经被其他线程创建过 if (instance == null) { // 如果未被创建,则创建并初始化 instance = new Singleton(); } } } return instance; }}这段代码的工作原理是这样的:当调用 getInstance() 方法时,首先会进行一个非同步的检查,查看 instance 是否已经初始化。如果已经初始化,则直接返回该实例,无需进入同步块。如果第一次检查发现 instance 为 null,那么代码进入 synchronized 块,在这里进行第二次检查。这是因为在多线程环境下,可能有多个线程同时发现 instance 为空并尝试创建实例,所以需要通过锁来保证只有一个线程能够执行初始化操作。只有在 instance 确实为空的情况下,才会在同步块中创建并初始化 Singleton 类的一个新实例。由于两次检查的存在,可以避免每次调用 getInstance() 方法都进行不必要的同步操作,从而提高了性能。通过这种方式,我们既保证了单例对象在多线程环境下的唯一性,又尽可能减少了使用同步操作带来的性能开销。并发操作中调用第三方API或RPC线程创建的三种方式浏览器输入百度网址到浏览器展示网页的过程DNS …… HTTP/HTTPS ……反问环节比较紧张,就问了一共是不是三面,啥时候知道面试结果是三面,面试结果面试官不能确定什么时候知道,得问hr感想面试体验十分良好,面试官有耐心倾听,语言清晰面过懂车帝IOS的一二,挂了,一面也是面试官很亲切,二面的面试官说话又不清楚,还挺不耐烦的,体验极差希望有二面,希望二面面试官也要好好的
点赞 58
评论 8
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
不愿透露姓名的神秘牛友
昨天 18:00
求助!mt不给本部转正机会,我要润吗?
rt,主包正在腾讯暑期实习mt说我达不到本部正职的level,给了个腾娱的转正这种情况是苟着拿腾娱offer?保底还是当场离职全力秋招啊?
投递腾讯等公司10个岗位
点赞
评论
收藏
分享
07-30 15:24
已编辑
门头沟学院 Java
我一上班就头疼
当初找实习的时候,总是对上班抱有幻想,觉得比学校里面开心多了,自己出去生活会更自由,现在我已经实习一个月了,每天都想觉得好累,最近代码一直被返工,原因是不够简洁,六点下班,五点半让我做代码优化,感觉生活都无光了。原本以为六点下班自己会自主学习,把之前的知识巩固再加强,结果是每天下班躺在床上连翻身都不翻,自己之前会背的八股现在也不会了,算法题也写不出来了,在小厂天天crud,唯一学会的是用stream。我感觉每个瞬间我都想跑路,但是还是得坚持,因为我觉得我现在回家也什么都不会学的。还是等9月份开学希望能找一个新的能双休的实习吧,单休太折磨人。最近想找一个新的项目替换简历上的项目,大家有什么推荐嘛...
牛泪中:
真实,正如高中半个月放假一次,把学习资料带回家幻想能学习一样
点赞
评论
收藏
分享
07-23 20:28
北京大学 硬件开发
是谁的简历如此不垂直,被吐槽。
没错,正是我的,求助各位uu以后的就业方向,简单说说本人心路历程,因为本硕导师都是工艺材料,不想去fab or 研究所,所以一开始投了ic但是找不到,所以为了保底做了两段硬件的实习,第三段本来拿到了新华三的硬件offer,但是因为同时拿到了Cadence的实习offer(以为是ic验证)就没继续实习硬件,进去了才发现是做EDA工具验证,大概有点像软件测试,写Case和脚本验证Cadence工具的稳定性,和电路基本上接触不到,但是好处是能接触到Linux系统(之前没用过),以及全英工作环境很锻炼人,外加组里氛围特别好,而且不打卡,工作压力小,所以还是打算呆一呆。就好奇后面怎么发展,目前想的是央国企和私企,不考公。央国企有推荐的岗位吗。如果去私企的话,因为EDA验证岗位太小众了,后续是不是只能下一段继续找硬件的实习?然后秋招投个类似于华子单板硬件之类的?这个Cadence实习应该不能作为跳板去找ic的实习吧。
投递新华三等公司10个岗位
点赞
评论
收藏
分享
07-30 12:24
中国人民大学 数据运营
为什么我不建议你去字节?
明天就是在字节的lastday了,走之前再回顾一下在这里的感受,让我一个充满激情enfp,在短短6个月就毅然决人的按下暂停键我将把我这几个月的感受和大家分享一下,尤其是对准应届/应届生同学劝解,如果有别的选择就不要来节子。我的理由如下:对新人不友好,没有什么对新人的支持,landing过程困难,会消耗很大的心力。节奏快,字节是一个短期主义的公司,做什么事情都会特别着急的想要拿收益,缘于一个季度一个okr,每个季度都要去制定okr和review收益。导致大家基本没有喘息的时间,一直在疯狂的干活。不过干的活基本也是比较糙的,能拿到这个季度的收益就行,好不好用,后续好不好维护,没那么重要。基建差,各...
坚定的芭乐反对画饼_...:
字节还是更适合社招跳槽进去,校招生/实习生landing没人带的话太痛苦了
投递字节跳动等公司10个岗位
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
百度提前批,三面被推迟一周,喜提秋招第一凉
4405
2
...
虾皮秋招一面
3625
3
...
干活最少的实习生因为长得漂亮转正了
2891
4
...
7.30滴滴提前批一面凉经
2803
5
...
QQ提前批一面凉经
2649
6
...
百度提前批 三面
2587
7
...
他拿大厂SSP Offer打牌是什么概念啊?25届双非之光
2397
8
...
7.30百度提前批一面
2193
9
...
上班一周,工资还没拿,先欠公司两千
1770
10
...
百度7.30二面
1606
创作者周榜
更多
正在热议
更多
#
简历上的经历如何包装
#
25699次浏览
749人参与
#
秋招被确诊为……
#
162159次浏览
725人参与
#
中兴秋招
#
204348次浏览
2284人参与
#
工作中哪个瞬间让你想离职
#
61427次浏览
554人参与
#
你最近一次加班是什么时候?
#
70906次浏览
350人参与
#
和同事相处最忌讳的是__
#
22150次浏览
229人参与
#
26届的你,投了哪些公司?
#
39184次浏览
442人参与
#
你遇到最难的面试题目是_
#
15793次浏览
195人参与
#
我对___祛魅了
#
44646次浏览
417人参与
#
如果校招重来我最想改变的是
#
271593次浏览
2849人参与
#
地平线求职进展汇总
#
52548次浏览
369人参与
#
你跟室友的关系怎么样?
#
6361次浏览
97人参与
#
如果可以选,你最想从事什么工作
#
565558次浏览
4699人参与
#
你最讨厌面试问你什么?
#
26479次浏览
293人参与
#
你最希望上岸的公司是?
#
134335次浏览
699人参与
#
什么样的背景能拿SSP?
#
33263次浏览
207人参与
#
如何快速融入团队?
#
15363次浏览
190人参与
#
柠檬微趣工作体验
#
6576次浏览
40人参与
#
秋招前后对offer的期望对比
#
302894次浏览
2229人参与
#
字节跳动工作体验
#
462321次浏览
4649人参与
#
打工人的精神状态
#
70865次浏览
1145人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务