萌萌的袖子 level
获赞
51
粉丝
7
关注
5
看过 TA
364
电子科技大学
2025
Java
IP属地:四川
暂未填写个人简介
私信
关注
#软件开发2024笔面经# 这次只问了第一个java项目,先介绍有无难点,然后问了某块设计的流程,问库存秒杀流程,然后就问到了redis。聊到高可用性重点说了为什么不用红锁。后面问回订单id,场景题:问如何分库分表怎么保证订单id唯一性?雪花算法。追问:不用雪花算法的话如何保证不同表的订单id有序性。答:redis存一个变量。追问:那么每次操作db都要读这个值,有更好的方法吗?项目40分钟后左右进入八股 模式基本是问你了解过吗 然后看心情挖细节:深拷贝 浅拷贝 0拷贝(讲了mmp+write和sendfile 本质优化IO)集合:List线程安全用啥?忘了提示了cowlist 然后我说了cow原理。hashmap 1.7 1.8 头插尾插 死循环 数据覆盖 浅聊了下红黑树和AVL 树化退化 线程安全用ConcurrentHashMapredis:缓存3大问题我结合项目分析的,然后雪崩问题提到nginx限流被问了限流算法(桶漏),再问了有无其他算法(固定窗口,滑窗,令牌)让重点分析下令牌。多线程:线程创建具体细节 可重入锁 不可重入导致的问题 悲观锁乐观锁 乐观锁问题ABA和资源问题 数据库实现乐观锁(版本号)ThreadLocal和内存泄漏 jvm:垃圾回收算法 可达性和计数 记数缺点说了可能删不掉垃圾的情况(忘了具体的 提示循环依赖(面试官真的有耐心很)) 分代收集算法各自优缺点 fullgc时机 聊下cms g1(g1直接说没了解过 1.8不常用)mysql 索引如何存放?慢sql查询?最左前缀?场景:如果我要查询10w到10w零10条记录,如何优化?3道算法题 大概15分钟。1.用栈实现队列2.前序中序重建二叉树3.只使用rand(7)如何实现rand(10)?要求最少次数和算期望。(最开始方法不是最优解 面试官又提供了思路 真的nice 但是这种题我确实见的少)问的挺多的,中间还有些忘了。#面试# #面经#
0 点赞 评论 收藏
转发
前一个半小时:3个项目 + 少量java八股 后40分钟手撕两道项目相关:    主要是问项目流程+深挖细节+衍生场景 选取部分比较有意义的场景:        1.问:我看你做了登录验权,怎么做的?安全性怎么考虑?        回答:jwt 并比较session+cookie 防csrf 做跨域共享        问:如果是扫码登录,怎么流程是怎样的?我只分析出移动端可以扫码在后台认证,但是PC端如何获取认证后的凭据呢?面试官后面说轮询。下来研究了一下可以轮询长轮询或者sse(单向就够用了),移动扫码后台认证二维码,凭据推到pc。(场景题一紧张遇到没见过的还是比较难一瞬间有思路)        2.问:并发下mq重复消费问题?会推到重复推到mq吗?        回答:首先要知道mq本身是不处理重复消费的,必须要在业务做处理。        先分析mq自己重复消费问题:broker网络波动 生产者重发;业务逻辑走完消费者挂了,认为没有消费成功。我这里使用的是类似消息表的方式做幂等,记录发货状态        问:如果同时在消费怎么办?会出问题吗?        回答:发货流程更新发货状态和发货是在一个事务,如果尝试更新发货状态就会上行锁(虽然不走覆盖索引但是可以走订单号的唯一索引,不会升级表锁)。那么其他事务尝试修改会被阻塞。不会出现问题        问:如果你的发货状态的表和用户账户的表不是一个数据库,怎么保证呢?        分库没学过啊,说了个分布式事务,面试官说性能比较低。后来有大佬提供思路使用redis来记录消息,这样就只会操作一个表,不过引入redis会存在数据一致性问题,这个有佬清楚可以分析一下。      项目细节:做这个项目对功能是怎么区分的?如何构建模型的?讲一下你的项目每一层是干嘛的?贫血模型和充血模型区别?你的实体对象的字段如何确定的?和数据库的PO对象有什么联系?你的模板模式怎么用的?支付宝沙箱怎么用的?支付失败如何做补偿?如何保证抽奖的公平性?项目上线了吗,你的docker部署怎么做的,环境部署?讲下你用nginx做的反向代理和负载均衡?负载均衡的算法?讲一下你项目用的SVM,怎么部署在服务器的?你的实习项目的意义,为什么要做这个项目?    java八股:聊下jmm,垃圾回收,四种引用,线程池
0 点赞 评论 收藏
转发
基本都是八股 附上自己面试中的一些见解,欢迎大佬指正。* 线程进程* 死锁?如何解决死锁?代码如何实现?    -有序分配 顺序申请逆序释放* sql变慢的可能性?如何查找?    -开慢查询日志,拿执行慢的sql语句explain 看ken_len是否索引失效        *追问还有其他问题吗?            -可能存在锁竞争,修改的时候没走索引行锁升级成表锁(还有避免*等没说了)*关系型数据库特性* mysql表能存多少数据?具体记不得了 让我猜。*sql和nosql,还有哪些nosql,适应场景?    - 还有mongo,适合文档存储。*求第k个最大数 时间复杂度?    -小根堆 描述过程 nlogk    *还有其他方式吗?        -快速选择 On 每次只用处理一半*一句话总结快排和冒泡区别    -说完稳定性和时间复杂度之后 习惯性补充说了原理,面试官让我之后听清楚问题*dfs bfs    -说了原理,追问场景,卡了下,然后面试官就问其他的了*sql注入    -说了原理和流程,通过web端sql注入构建参数欺骗数据库执行sql。    *解决方式?    - orm框架如mybatis支持预处理 如#{} 还说了跨域共享(解决不了 g)*虚拟内存 就说了下是啥 感觉之前是不是说的扩展的有点多了。管理物理映射 内存交换机制想等他深挖他就过了* TCP和UDP 讲了 然后没下文* HTTPS和HTTP?补充我自己用HTTP也实现了一个类HTTPS。非对称+对称但是没有CA证书。问效率和HTTPS如何?答感觉差不多,postman测试本来就是忽高忽低,但是比http慢。*缓存失效?缓存击穿?穿透算失效吗?我一并也说了。*fork原理    -讲了过程,面试官问他说的是底层如何实现?这个没答上来,是COW吗,还是linux更深层次的,我操作系统二把刀。* 框架设计思想 开始扯 全程点头 然后没有然后了*教研室项目难点?扯了挺多,一些svm grpc,军工类的。*自己做的项目问的不多,先介绍了下,问了个业务问题我有点没懂他的意思,我又修正了说下项目是干嘛的,他就过了。就问了mq干嘛的* 实习没问    #饿了么##面经# #软件开发2024笔面经##面试##八股#
0 点赞 评论 收藏
转发
牛客网
牛客企业服务