26淘宝校招java技术面经

1. 项目你感觉你在这个过程中有哪些亮点以及能进行一下总结吗?这个项目的时候,那你有没有达到你们预期?以及有没有还能进行一些改进的点?
2. 进程中有一共有哪些状态,以及它这些状态是怎么去流转的?进程和线程有啥区别?
3. Java数组、ArrayList和LinkedList有啥区别?HashMap的工作原理?exception 和 error 它的一个区别有啥呀?throw 和 throws 的区别? 
4. 重定向和转发,forward和redirect两者的区别?
5. 介绍一下悲观锁和乐观锁?
6. spring 里面bean的生命周期是怎么去创建和消亡的呀?spring bean 的自动生成的一个原理?
7. MySQL里面的那个索引的作用是啥呀?它有什么优缺点吗?B+树索引如何实现的呢? left semi join和 left anti join的区别?count(1), count(*)和count字段的区别?
8. 哪些场景是去使用Redis?Redis 和 memcache有啥区别?什么是缓存穿透?以及我们在该怎么去解决呢? Flink 有用过没有?Hive会出现一些数据倾斜,有了解吗?
9. 场景题:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url
10. 算法题:判断是否是回文整数 11. SQL题:事件表event表有3个字段event_id:事件id,event_time:事件时间,user_id:用户id。使用SQL查询同一用户两个事件的时间间隔。输出4列:事件ID,事件时间,用户id,时间间隔
全部评论

相关推荐

字节客户端,流转番茄、剪映、抖音、飞书等多个部门,历经十三次面试,终于拿下。记录下面经:一面(1h20min)https://www.nowcoder.com/feed/main/detail/ee15d1b2fb2f4d459b0938dabd7e1922二面(45min)https://www.nowcoder.com/feed/main/detail/a9f0d490ebb1472bbffb16575daf4902三面(1h30min)1. 自我介绍(项目)2. 项目说一半打断、提问项目3. 鸿蒙开发感受如何,和安卓相比有什么区别4. 你更倾向鸿蒙还是安卓开发(当然是安卓,鸿蒙的ide巨落后)5. 鸿蒙开发安装包有哪些东西(不会)6. 安卓应用升级到鸿蒙数据是怎么迁移的(不会)7. 开始问java,接口和抽象类的区别8. 接口的应用场景说个你使用到的例子(不同请求的网络成功失败回调)9. 这样会导致接口膨胀(回答了跟抽象类的对比,共性提取和复用。感觉自己答非所问了??)10. 接口能继承抽象类吗?11. 四大引用说一下、以及各自的应用场景12. 弱引用常用来做什么(检测和防止内存泄露)13. 弱引用对象被回收了,那调用对象的方法或成员变量会导致状态异常?(判空)14. 弱引用在业务上的使用多吗?(掰扯了很久,没明白想问什么,最后回答非必要不使用)15. gc说一下(引用计数、可达性分析等)16. gc算法说一下17. 这些算法各自的特点说一下18. 现代jvm是如果利用各种gc算法的(忘了,提示分代,应该是根据不同分代选择不同算法)19. 你说到新生代,它是使用什么算法(忘了,沉默)20. 跳过,gc的过程和gc的缺陷21. 引用计数可能有什么问题(循环引用)22. 循环引用具体说一下23. HashMap和HashTable、LinkedHashMap的区别说一下(答了线程安全和数据结构实现的区别)24. HashTable线程安全的原理是什么25. 还有哪些线程安全的容器(ConCurrentHashMap)26. 它和HashTable的区别是什么(答了实现线程安全的方式不同)27. 你提到CAS,具体说一下28. CAS可能出现什么问题(ABA问题)29. 怎么解决(版本号、时间戳)30. Handle的Message有哪些(不懂,答了post的Runnable和sendMessage的Message)31. 它们是同步的吗(依然不知道想问什么,答了MainLooper的消息队列通过消息入队顺序处理,除非是延时消息)32. Looper 是如何保证线程唯一性的?(答了ThreadLocal和具体的存储过程)33. 事件分发机制说一下34. 点击事件的事件类型和执行顺序说一下35. 手指按到屏幕上,再滑动,此时会滑动吗?内部的事件类型的事件传递过程是怎样的?滑动事件在哪里被处理?36. 给出一段代码:分析代码意图和错误不看后面的省略号,执行完结果是什么?会出现什么问题?怎么解决?(倒序)增强for可以吗?(可以,内部使用迭代器实现)这里的==有什么问题?equals和==的区别?它和hashcode的应用?37. 环形链表II解释思路?如果不考虑空间复杂度你会使用什么容器?(脱口而出map)map的键是什么?(想起来使用set就行)set有判断包含元素的方法吗?(contains)面试评价:整体表现都挺不错的,包括项目、实习、面试表现总体感受:大概答出90%,虽然面试时慌得一批,但是面完回想还是基本都答出来了,过四面(1h15min)1. 手写HashMap,只能使用数组、链表(并对各种机制进行深度拷打,基本所有hashmap底层的设计都进行了拷打,比如容量设置考量,扩容具体过程,为什么是2倍、先插入再判断扩容还是先扩容再插入等等)2. SQLite使用什么数据结构3. B+树有什么特点4. 为什么不使用二叉查找树5. 数据库查询优化思路是什么6. 索引什么情况会失效7. Java的static说一下8. 静态变量存在哪个地方?在什么时候分配内存?什么时候初始化?初始化和准备哪个先?9. int数据存在哪个地方(分情况讨论)10. 静态代码块什么时候执行11. 类初始化做了什么12. 类加载和初始化哪个先执行13. 进程和线程的区别14. 进程调度算法有哪些15. 时间片轮转说一下16. 时间片轮转和先来先服务的区别,怎么选择?17. 和高响应比优先比呢?18. Okhttp的连接复用机制说一下19. 连接复用的优点和缺点20. SparseArray的原理?它的key怎么来的?(应该是要问避免hashmap的Integer装箱的开销,可惜很久前看的,忘了很多)总结:压力最大的一次面试,挂五面(1h05min)1. 自我介绍2. 项目介绍3. 安卓层是怎么执行c++代码的4. 包大小的减少是从哪些方面提升用户使用体验的5. MVP和MVVM的区别6. 倾向使用哪种架构,哪个更易于维护7. ArrayList和LinkedList的区别8. 泛型9. 运行时能获取到具体的泛型信息吗10. ==和equals的区别11. kotlin的==和equals12. Kotlin如果同一个类两个对象都有一个String字段且值相同,==返回什么(false,默认比较的是地址)13. data class14. 如果data class的两个对象内部属性一样,==返回什么(true,数据类内部自动重写了equals)15. 给一段多线程并发代码,判断打印的内容16. 合并两个升序链表(写完迭代问还有别的方式实现吗->讲递归的实现)过六面(1h40min)1. 自我介绍2. 项目介绍3. java和Kotlin调用jni有什么不一样4. 在一个很简单的需求扯了很久(大概率是挂的原因,后续调整了实习需求介绍的优先级)5. UTF - 8是几个字节(英文1个,中文3个)6. 如何识别字节流截取的位置(保证截断的位置不会导致尾部字符的不完整或乱码)7. join联表为什么能解决相关子查询8. 怎么自动化识别和记录数据库查询慢的语句9. java垃圾回收算法10. 判断垃圾对象的方法,优缺点对比11. gc使用了哪种判断垃圾方法,还是两种都用12. 排查内存泄漏的方法13. LeakCanary的原理14. 常见的内存泄漏场景15. 内存泄漏的原理,为什么会导致泄漏16. 匿名对象一定会持有外部类的引用吗17. 图片的大小是如何确定的18. 图片的像素是怎么决定的19. https的加密过程是怎么样的20. 验证证书的过程21. 算法:平衡二叉树总结:没什么问题,都挺好的。但是挂篇幅限制后续面经看下篇
字节求职进展汇总
点赞 评论 收藏
分享
从八月初开始准备秋招,从那时候开始背八股背项目刷lc一天能刷二十几道,八月尾投递了第一份简历,九月初第一个一面,十月第一个二面,第一个线下面,到十月末第一个offer,十一月没怎么面试,几个终面的公司接连收到感谢信,恰好收到运营商的线下面试邀请,于是想着换个地方换换心情,去的前一天收到第二个offer沟通,回来这天收到华子报批的信息,好像整个人终于松懈下来了;虽然跟同校其他大佬收获的offer比,我的offer很一般,但是自己有几斤几两还是很清楚的hh,因此就愉快地接受了事实签了三方;签的公司了解起来好像还不错,希望能够wlb一点,春招或许我都不会投递了(是真的很懒的一个人),毕竟接下来几个月忙毕设不会怎么复习面试,如果进不了大厂那我目前的offer就是最好选择了。下面是一些一面后就没推进的公司的面经:字节后端开发工程师-抖音生活服务-一面:JWT token与传统登录验证有什么区别;JWT详细过程;JWTtoken怎么验证;用户信息在gateway中验证,怎么传递给下游微服务;微服务与微服务之间如何相互调用;微服务如何注册到注册中心,微服务宕机注册中心怎么发现;为什么要用ES,ES如何实现倒排索引,ES分片和副本是什么;联合索引abc,查询ac可以匹配联合索引吗场景:用户表用号码作主键有什么缺点?事务的ACID属性,如何保证原子性;split中为什么要对"."字符写成"\\."这样。Shopee一面:有没有用单元测试订单放入延迟队列,用的什么作为延迟队列,还有哪些组件可以作为延迟队列Redis底层数据结构以及怎么实现/string  listRedisson分布式锁怎么使用的,申请锁的命令,为什么要用分布式锁,分布式锁有哪些问题,怎么解决= !=  <> in notin等查询能不能匹配索引聚簇索引与非聚簇索引的区别用户态和内核态的区别,怎么切换,系统调用的情景TCP的拥塞控制/流程,慢启动什么的NIO,BIO区别,NIO下线程一次能处理几个IO操作怎么在大文件无法被加载进内存的情况下判断某数据是否存在其中对无法加载进内存的大文件里的数据进行排序TP-LINK一面:登录校验方式分别有什么,JWT校验的重点在哪里,加密方式解密方式Redisson分布式锁,以及redis与数据库的数据一致性线程同步方式-关键字,乐观锁,悲观锁为什么要用消息队列处理下单模块里的订单生成,如果消息处理中间件down了怎么办nacos作用,以及nacos崩溃了怎么办TCP四次挥手及close_wait状态用户态切换到内核态方式美团地图搜索-后端开发:介绍项目;项目难点;Linux命令;Linux进程太大,怎么排查;客户端和服务端部署在Linux上,从启动到交互的过程是什么;数据库索引结构;算法题:pow(x,n)中移互联网一面:削峰填谷,对于某些时刻访问量特别大的请求,怎么解决;mysql单个实例的最大访问量是多少;缓存和数据库怎么同步?定时事务?消息队列MQ?多个缓存实例怎么同步;分布式事务情景,上锁,扣减等操作,失败的场景;reverse数组,最少操作次数。小红书共四面,方向是广告营销一面问项目,项目重难点,项目怎么提升;Redis优缺点;Redis数据结构;穿透,击穿,雪崩的情况;MySQL锁的级别;死锁发生情况及解决;垂直分库与水平分库,数据表多大数据会涉及分表;消息队列了解哪些;手撕:数据库一道group+having count(*)+LC151作业帮一共三面 两轮技术面+hr面一面 40minHashMap结构,底层,是否线程安全,不安全在哪个点;安全的Map-ConcurrentHashMap,怎么保证线程安全;CAS在ConcurrentHashMap里怎么使用;SpringBoot事务,及事务失效情况;分布式事务,TCC;最终一致性在订单下达上的体现--消息队列;如何保证消息队列消息能够被正确消费;Redis基础数据类型及底层,还有哪些数据类型;缓存击穿及解决;Redis分布式锁只能锁一个资源,那怎么才能达到锁多个资源;一亿个手机号存储在数据库,怎么在Redis层面判断当前登录的手机号已经注册;MySQL事务隔离级别及解决了哪些问题;索引失效情况;limit 100000,10怎么优化;介绍一个项目优点;Redis缓存预扣,再扣减数据库,此时对数据库操作失败了怎么办;项目2相关;手撕--删除链表重复元素;反问:岗位业务;面试流程。43993-4轮面试, 1-2周进度一面:自我介绍;DDD介绍,与三层架构的对比;怎么理解微服务;处理服务实例宕机的情况;项目从前端到后端怎么设计(数据传递,代码设计等);Get和Post怎么传递数据,代码实现;线程池怎么使用,多线程;Redis分布式锁,集群怎么使用;自己介绍一个点;Redis集群之间数据不一致怎么解决;Java学习路线,未来规划;反问:面试轮次,反馈时间;业务;华测导航三面:技术+人事+业务总监一面30min:Java集合;项目;Mysql存储引擎,索引底层;MVCC;SpringCloud;技术栈拓展;反问:公司介绍,岗位bg;流程;二面15min:人事面;自我介绍;部门理解公司理解;秋招经历;薪资需求;个人bg;回顾这些面试内容好像又身临其境了,大多数面试的感受还是很好,面试官都很平静,有的面试官会更严肃一些,有的会轻松一些;口音也是天南海北的,北方南方,还遇到一个偏向两广口音听起来有点费劲;还有就是我感觉面试官之间的习惯也是不同的,有很多人说,面试官说感谢你的时间这句话就是挂了,但其实不是,有的面试官习惯说这句话而已。线下的面试华子那次,很惊讶于自己竟然能够通过三次面试,一面的面试官很专业也不会压力人,二面面试官问了一些关于项目的问题,让我自己介绍最重要的部分,他还给我另外的机会推销自己(先说我介绍的部分没有很打动他,建议我再想想有没有什么想说的),或许是看我很努力,也是给我通过了,三面主管面的面试官聊得很深入也很细致,最后还站起来祝我秋招一切顺利心想事成,出了大厦就收到hr小姐姐的消息说我面试通过了,说到这里也要很感谢一直和我联系的hr,她从我暑期投递华子的时候添加的微信,这次秋招也是她联系我投递的部门,前期笔试,性格测试她还特意打电话告诉我一些关键点,期间我觉得希望渺茫也跟她沟通也是很认真地跟我聊,虽然后期她由于职位变动不负责我的批次投递了,但是还是祝她工作顺利;第一个二面给了科大讯飞,虽然最终没有通过流程终止,但在九月末收到二面面试预约,还是给我在迷茫的九月一点加油鼓劲,让我的十月有一个奔头,相信这是努力的回报;十月相对于九月来说面试还多一些,因此十月虽然累但是心里挺有干劲的;十月尾收到第一个oc,犹豫再三还是拒掉了,离家太远且当时觉得好多流程都还没推进,不太甘心就这么签了;十一月慢慢过,再收到了一个oc,综合方面都挺好的,所以干脆签了,刚好毕设选题也确定了,接下来就是慢慢做毕设享受最后半年的大学时光了。秋招这几个月,在论坛里发过的牢骚和迷茫不少,还好有同样纠结的同学们,一起whisper建议和方向,一起加油打气,祝网友和坛友们都能收获满意的offer。
点赞 评论 收藏
分享
TimeLine:11.28 一面12.3 二面12.5 HR面,下午直接发offer项目:知光平台 + 点评一面1. 自我介绍(介绍学历+项目)2. 介绍一下知光中 Feed 流中用到的三级缓存?(本地缓存+Redis 页面缓存+Redis 片段缓存)3. 你知光的项目中怎么保证的 Caffeine, Redis 和 MySQL 的一致性4. 某一个用户发帖,他的粉丝是怎么收到的?(项目中还没做,简单说了下思想)5. 推流模式对于大V是不是有问题?6. Redis 数据结构,重点讲一下 ZSet7. 设计一个 key 去重,value 排序的数据结构(其实就是 ZSet)8. 秒杀怎么设计的,lua 脚本怎么实现的9. 分布式缓存是怎么选择节点的?10. 一致性 hash 怎么做的?11. B+ 树底层原理,延伸到索引12. 讲一下 go 的 channel 和协程的用法和你的理解13. 算法:力扣 1838 最高频元素的频数(冷门,字节喜欢出这种)14. 反问二面整个二面大部分都在围绕操作系统底层拷打,算法题也不常规1. 自我介绍(学历+项目)2. 什么情况会出现缓存穿透,你项目中有处理过这个吗?3. 除了缓存空值还能怎么解决,如何在查询之前判断数据库里是否有某个值4. 讲讲你项目中的 hotkey 怎么设计的?5. 什么是 Outbox 模式?为什么用 Canal?具体讲讲6. 问 ProtoBuf 协议了解的多不多(就 RPC 的那个二进制传输协议)7. 如何优化读取一个大文件(没答出来)类似于 10亿个QQ号,如何快速查找。8. 协程和线程的区别,为什么协程切换更快9. 内核态切换10. 操作系统内存映射 mmap11. Go 语言,GMP 模型12. 算法题(面试官直接口述):一个数组求和,每个元素都在int范围内,保证最终的结果在int范围内,但是中间会溢出,怎么实现13. 反问
查看25道真题和解析
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务