小红书后端社招商家入驻

1.项目
2.讲几个Happens-Before原则
Happens-Before(先行发生)原则的定义
程序次序规则(Program Order Rule):在一个线程内,按照控制流顺序,书写在前面的操作先行发生于书写在后面的操作。
管程锁定规则(Monitor Lock Rule):一个unlock操作先行发生于后面对同一个锁的lock操作。
volatile变量规则(Volatile Variable Rule):对一个volatile变量的写操作先行发生于后面对这个变量的读操作。
线程启动规则(Thread Start Rule):Thread对象start()方法先行发生于此线程的每一个动作。
线程终止规则(Thread Termination Rule):线程中的所有操作都先行发生于对此线程的终止检测,我们可以通过Thread.join()方法和Thread.isAlive()的返回值等手段检测线程是否已经终止执行。
线程中断规则(Thread Interruption Rule):对线程interrupt()方法的调用先行发生于被中断线程的代码检测到中断事件的发生,可以通过Thread.interrupted()方法检测到是否有中断发生。
对象终结规则(Finalizer Rule) :一个对象的初始化完成(构造函数结束)先行发生于它的finalize()方法的开始。
传递性(Transitivity):如果操作A先行发生于操作B,操作B先行发生于操作C,那就可以得出操作A先行发生于操作C的结论。
https://zhuanlan.zhihu.com/p/546194012
3.g1的垃圾回收过程
1.初始标记、2.并发标记、3.最终标记、4.筛选回收
4.两个list取差值怎么做,toset,调用api,for也可以
5.如果一个账户有余额和赠送金额,业务逻辑是先扣增金,如何实现

算法题leetcode16最接近的三数和
建议:简历写的不够,背景,为什么做,解决了什么问题,最好有数据对比,star法则。

后续:没有后续1面挂#小红书社招##小红书面经##后端面经#
全部评论

相关推荐

06-02 17:53
东北大学 Java
1. 自我介绍2. 线程池有哪些常见参数3. RPC 调用情况下你会使用怎么配置线程池?1. IO 密集型任务线程大多时间是在等待外部资源响应,此时线程处于空闲状态,CPU 利用率较低,可以设置较大线程数2. CPU 密集型任务,例如浮点计算等,很少会有阻塞情况,此时线程数多会造成上下文切换频繁影响性能能4. ConcurrentHashMap 底层的读写是怎么处理并发冲突的1. 读:将 value 和 链表 next 指针设置为 volatile,多线程修改 volatile 变量时不会使用自己的副本,是修改公共内存中的变量,每个线程都可以取到最新的数据,读的时候不需要加锁2. 写:首先判断有无冲突,如果没有冲突的话直接 CAS 插入即可,如果有冲突的话就 synchronized 锁住头节点遍历链表进行插入3. 扩容:ConcurrentHashMap 的扩容也是并发安全的,且支持多线程协同扩容。扩容时,会将原数组的桶迁移到新数组(容量翻倍)。多个线程可以同时参与数据迁移工作。系统会将任务拆分成一个个小的“区域”(TransferRegion),线程领取任务后进行迁移。在扩容期间,读操作依然可以正常进行(可能会读到旧数据或新数据,但最终一致性有保障),写操作则会协助扩容或等待。5. Synchronized 和 ReentrantLock 两种锁的选择1. Synchronized 关键字:使用方式简单,可以加在代码块和代码上,只能实现非公平锁,多线程来了之后谁抢到谁执行,而不是排队。JDK 1.6 引入了偏向锁和锁升级机制提高了性能,性能和 ReentrantLock 相差不大。底层通过 Java 对象头中的 Mark Word 标记字实现,标记字中有 2 比特记录当前锁状态,1. 无锁状态记录 hash 值和 GC 年龄2. 偏向锁状态记录当前线程 ID,当第一个线程来时记录3. 轻量级锁,记录持有锁的线程的锁记录,每一个线程都有自己的锁记录,第二个线程来时转为轻量级锁;4. 重量级锁:记录堆中的 ObjectMonitor 对象指针,这个对象有一个队列存储没有获取锁的线程进行排队,当线程执行完毕后会唤醒队列中的线程竞争锁2. ReentrantLock:通过 AQS 抽象队列同步器实现,底层有一个 state 记录冲入次数、一个先进先出 FIFO 的 DLQ 双向链式队列记录排队线程,公平锁先查看队列再竞争锁,非公平锁先尝试获取锁操作失败才入队列等待。6. Redis 为什么快7. Redis 大 key 怎么解决8. Hive2CK 导入数据是直接 CK 导入还是使用中间件9. ClickHouse 和 MySQL 底层有什么区别10. ClickHouse 主要的使用场景在哪里11. ClickHouse 并发支持如何12. ClickHouse 物化视图是什么13. Agent 项目用户转人工拦截率这个数据口径是怎么统计的,有没有遇到过用户找不到人工 Oncall 入口而投诉的14. 讲述一下你的冷热分层项目15. 你这个 OOM 问题是怎么排查的,最后怎么解决的(OkHttpClient 没单例且没指定线程池导致的 OOM)16. Kafka LAG 一般怎么排查(从提交消息消费成功出排查,查看是线程挂掉了还是处理该消息耗时太长导致 LAG17. 算法题:翻转01字符串 k 次,找到翻转后最长相同串(eg: 10101 k=1, res=3, 翻转一个0得到111, 翻转一个1得到000
查看17道真题和解析
点赞 评论 收藏
分享
头像
06-01 20:56
广东金融学院
我的求职总结|致那个一边崩溃一边投简历的自己暑期实习终于结束了。从3月中旬投出第一份简历,到5月底基本结束战斗,两个多月时间里,我累计投递60+家公司,参加30+场面试,收到过无数感谢信,也经历过长达一个月的0 Offer阶段。现在回头看,那段时间几乎每天都在:刷题、背八股、改简历、准备面试、等待流程、复盘挂经。有时候一天收到三封感谢信。有时候熬夜准备两天的面试,十分钟就结束。有时候看到别人晒Offer,自己连面试机会都拿不到。但好在最后,我还是等来了属于自己的结果。拼多多 服务端研发 OC腾讯 IEG 魔方工作室 后台开发 Offer今天写下这篇总结,既是对这段经历的记录,也想送给那个曾经一边崩溃一边投简历的自己。---一、我的求职战绩本人:计算机硕士Java后端方向无大厂实习经历累计投递60+家公司。面试30+场。最终Offer 2个。---简历 / 评估挂如果说秋招教会了我什么。那一定是:简历通过率远比想象中低。很多公司甚至连展示自己的机会都不给。后端开发岗OPPO快手百度饿了么小米高德平头哥阿里国际阿里巴巴控股希音滴滴文远知行MiniMax小红书搜狐畅游有些是简历挂。有些是评估挂。还有一些甚至没有任何流程推进。最离谱的是快手。前前后后投了五次。前四次都是简历挂。第五次终于给面试了。但那时候已经拿到Offer,选择拒面。---笔试挂网易互娱(后端开发)150分钟。三道算法题。最终A了1/3。笔试挂。---游酷盛世开发岗笔试挂。---那段时间最大的感受是:平时刷LeetCode感觉还行。真正进大厂笔试。才知道自己距离优秀还有多远。---一面 / 二面 / 三面挂腾讯(微信支付团队)一面挂。也是我第一次真正意义上的大厂面试。面完以后甚至觉得发挥不错。结果第二天收到感谢信。第一次体会到:原来面试感觉良好和面试通过是两回事。---字节跳动(广告业务)一面挂。项目被深挖得非常彻底。缓存为什么这么设计?数据库为什么这么拆?流量上涨十倍怎么办?很多问题现在看都不难。但当时完全答不到面试官预期。---淘天集团二面挂。距离Offer最近的一次。也是最遗憾的一次。面完甚至已经开始幻想工牌长什么样。结果最后还是没能走到终点。---OC / Offer经过两个多月持续面试。终于收获了满意结果。#拼多多服务端研发 OC---腾讯 IEG 魔方工作室后台开发 Offer---接到OC电话那天。我正在食堂吃饭。看到上海来电的时候心跳突然开始加速。挂断电话以后愣了很久。因为只有经历过长期0 Offer的人。才知道那一刻有多难得。---玄学不推进互联网招聘总有一些未解之谜。### 京东初筛中。至今还在初筛。---B站初筛中。依旧没有任何消息。---虾皮笔试结束。无后续。---有时候你甚至不知道自己是挂了。还是没挂。主打一个量子态流程。---二、完整求职复盘我的求职是怎么开始的其实我并不属于那种准备特别早的人。寒假期间还在想着:等开学再说。等项目完善再说。等算法刷完再说。结果等着等着。暑期实习已经开始了。真正进入状态是在3月。开始:修改简历刷LeetCode背八股深挖项目模拟面试然后一边准备。一边投递。一边面试。持续到5月底。---三、那些让我崩溃的时刻第一次怀疑自己来自连续简历挂。投递十几家公司。通过率不到20%。那时候真的怀疑过:是不是自己太菜了?后来才发现。很多岗位可能只招几个人。几千份简历竞争。挂掉其实很正常。---笔试挂麻了网易互娱挂掉之后。连续几场笔试都没有下文。那几天刷题效率极低。打开LeetCode就烦。看见牛客邮件就慌。---长时间0 Offer这是整个求职过程中最难熬的阶段。身边同学:今天阿里Offer。明天腾讯OC。后天字节开奖。而自己:一无所有。每天醒来第一件事:查看邮箱。查看招聘系统。查看牛客。结果看到的全是:“感谢您的投递。”那种焦虑真的很难形容。---面试取消有一次为了准备面试。连续两天熬到凌晨。结果当天被通知取消。虽然知道不是自己的问题。但还是会失落。---四、我踩过的坑坑一:简历没准备好就海投这是我最后悔的事情。刚开始觉得:先投再说。结果很多心仪企业用了唯一一次机会。后来简历优化好了。已经无法重新投递。经验:简历没准备好之前不要海投。---坑二:项目准备不够深入以前总觉得项目能跑就行。后来发现:面试官更关心为什么这样设计。为什么不用别的方案。项目深度远比项目数量重要。---坑三:面试不够自信刚开始总担心说错。结果回答问题支支吾吾。后来慢慢发现:面试官不仅考察知识。还考察表达能力。即使不会。也要把思考过程说出来。---坑四:没有早点签保底Offer现在最大的建议就是:秋招能签保底一定签。不要总想着后面有更好的。春招机会真的会少很多。这是无数人的血泪教训。---五、给学弟学妹的一些建议关于投递不要All In大厂。建议:大厂独角兽中厂银行科技岗国企信息岗同步推进。---关于学习路线后端重点准备:算法LeetCode Hot100至少刷熟。---八股操作系统计算机网络MySQLRedis* JVM* Spring---项目一定要做到:每一个技术选型都能解释清楚。---关于面试面试不是考试。而是展示。一定要:主动表达敢于引导话题展现亮点保持自信很多时候。面试官记住的不是你答对了多少题。而是你是否值得培养。---## 关于信息渠道推荐长期关注:牛客网JavaGuideGithub优秀项目LeetCode各种内推群学长学姐经验帖信息差很多时候也是竞争力。---写在最后回头看这段求职经历。我最佩服的不是拿到Offer的自己。而是那个收到感谢信以后。第二天依然继续刷题的人。那个面试挂掉以后。晚上继续复盘的人。那个0 Offer持续一个月。依然没有放弃的人。求职从来不是比谁最优秀。而是比谁能在不断被拒绝之后。依然选择坚持。如果你现在也正处于0 Offer阶段。请相信。你刷过的题。改过的简历。熬过的夜。面过的试。都会在未来某一天给你答案。愿所有仍在求职路上的同学。最终都能等到那句:**“恭喜你,Offer已发放。”**
查看17道真题和解析
点赞 评论 收藏
分享
评论
1
11
分享

创作者周榜

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