丁香园 全栈开发 实习 凉经 一面 (挂)
KeyWords
丁香医生 - 丁香园 - 全栈偏后端 - 杭州 - Java - BXXS - 25届 - 科班 - 日常实习 - 凉凉
Collection
Tragedy Op.X No.X
Locate
杭州滨江
Platform
波斯直ping
Status
Failed (11.21)
时间线
- 11.18 发起沟通, 秒接简历
- 11.20 视频一面 - 技术面(后端)
- 11.21 感谢信?!
流程
一面(后端面)
- 讲讲你实习经历
- 提问实习中: "分页数据量不一致"问题
- 物理分页逻辑分页
- SQL深分页
- MySQL索引类型?你们用外键吗?
- 自己建索引能建哪些索引?
- 啥时候要建索引?
- 查所有男性, 女性, 未知性别的用户, 这个时候要建索引吗?
- 什么是联合索引(刚才已经说了一句了)
- a,b,c建立三个索引, 和只建立一个合索引有什么不同的地方
- 怎么看全栈开发这事
- 浏览器打入域名, 域名会渲染出页面, 过程?
- CDN是什么, 解决了什么问题(已经在提示我刚才的东西了) ?
- HTTPS介绍下, 比对秘钥咋做的?
- Cookie和Session?
- 接上, 你存唯一标识(或者说令牌)在Redis, 还有其他方式吗, 在分布式情况下?
- JAVA的final关键字
- 如果我用final修饰一个Map变量(HashMap), 他这时候的状态是怎样的? Map不能改, Map里面的值不能改还是啥???
- HashMap是线程安全的吗? 不是的话用什么? 为什么不用HashTable... Hashmap和ConcurrentHashmap的区别是什么?
- int i++; 是线程安全的吗?
- 如果我多线程去操作一个int变量进行i++, 最终结果是偏大偏小还是都有可能? 只会偏小? 不会偏大吗?
- 如果我需要线程安全的计数器这个东西, 咋办
- 线程池解决什么问题
- 线程池参数, 临时线程做什么的? 核心线程是5, 救急是10, 最多几个线程?
- 反问
个人
-
叽里呱啦, 主要讲自己的核心全流程开发的内容
-
其实是一个内部框架的锅, 需要手动再发起查询查出数据量, 不能手动查找res.size() (很诡异的问题, 我现在也没想好怎么说...) 提一嘴逻辑分页, 其实讲的我复杂化了, 还说了发起子查询这些流程啥的... 他回答说: "太难了, 理解不能"
-
八股, 我可能没说好
-
八股, 用主键+辅助索引进行索引覆盖提升一部分性能避免回表 + 使用子查询 id>....的数据才查出 来进行优化
-
常识, 讲的不顺畅, 说乱了; 阿里规范说不能建立外键, 会损耗性能带来不必要的麻烦, 需要手动控制事务
-
我没get到点, 不就是唯一, 外键, 联合吗, 我想不到了.... 一搜发现还有个全文索引...嗯被暴打了
-
看业务场景, 频繁查询...八股
-
先问问Schema是怎样的, 回复说是设置 0, 1, 2 三种性别; 性别字段索引不能加, 区分度不高, 一般情况下不加. 提一句可能其他字段和他一起加一个联合索引好, 于是就有了后面的追问
-
八股, 还要讲讲优缺点 (省空间, 容易暴毙找不到等等)
-
答了存储消耗, 不命中情况更多, 可能更死板(双刃剑)
-
我自己就全栈开发了自己的项目, 好开发前后端都要走, 了解前端内容有助于...叽里呱啦 (这里我已经猜出来对面是个后端了, 于是直接大胆用 "我们" 来称呼)
-
标准八股计网的. 大部分没问题, 除了忘记述说域名 -> 网址的过程了. 这个域名是需要买的, 需要找CDN去托管, 找到域名通过CNAME等方式去找对应的地址进行访问...... 感觉自己没get到
-
没get到刚才我的疏漏, 顾左右而言他, 最后自己也摇头了. (真就突然死亡忘记了, 之前买域名时候被拷打也忘记了, 该罚), 只是举出了一个CloudFlare的实现这提升安全....叽里呱啦
-
讲SSL/TLS, 贴个八股, 自己背的不熟 :
HTTPS 并不是新协议,而是让 HTTP 先和 SSL(Secure Sockets Layer)通信,再由 SSL 和 TCP 通信,也就是说 HTTPS 使用了隧道进行通信。
通过使用 SSL,HTTPS 具有了加密(防窃听)、认证(防伪装)和完整性保护(防篡改)。
比对秘钥就是非对称加密那个东西了, CA证书作公钥进行加密等
-
老生常谈, 八股暴打, 还提一句自己的项目用的是Session + Redis实现单点登录 + 令牌刷新的 (这里我有些紧张, 可能是被打傻了)
-
JWT? , 存数据库? 没答上来, 寄了, 双方沉没...
-
先讲是什么, 再讲怎么用和场景, 大部分用在全局常量和MessageConstants这里, 直接用interface替代掉
-
我死了. 先分析JVM的存储情况, 再尝试理解final作用在引用(栈) 还是在 对象(堆空间), 可惜没分析成功, 脑子宕机了; 怕有诈, 想要对方提供具体场景, 对方说, 就一个final Map map = new HashMap<>(), 你说说约束是什么? 我没辙, 说两者都有, 就是指向不能变, 同时指向的实例内部的数据不变, 不能插入新增删除等等...正确答案是:
final 关键字只保证 map 变量的引用不可变,但不限制 map 对象本身的内容变化。
现在复盘的我只能苦笑. 午夜的白噪音为我们间长达1.05s的沉默撒上一撮失落: 我已经输了, 我知道, 清楚地, 明白地.
-
巴普洛夫效应, 我抖擞精神, 正确答上来了(大概)
-
不是! 然后说在编译时候的情况不是一句, 是需要分配内存等等...
-
先问问场景, 不抛出异常, 但是我当时脑子里只是模拟了一下被"脏读"覆盖掉更新导致偏小的情况, 没想到还能偏大(直接同时读取写入不就行了吗混蛋!!!) 直接自信作答: 只会偏小!
不可预测的,可能偏大、偏小或正确。这是因为 i++ 操作不是原子的,它实际上包括三个步骤: 读取变量的当前值。
增加变量的值。
将新值写回变量。
在多线程环境中,这些步骤可能会被多个线程交错执行,导致竞争条件(race condition),从而导致最终结果不确定。 -
加volatile和锁(Sync, Lock), 加Atomic原子类, 线程池CountDownl那些...
-
池化技术, 救急线程配置等等定制, Bean定制, 解决......
-
参数配置八股背诵, 讲临时线程的使用情景, 手语表达大师...别忘忘问问阻塞队列大小, 说0, 那才说出15\
-
为啥不问前端? 绷不住笑啦, "我也是个后端, 前端尖尖哇嘎乃", 前端其他人来问; 技术栈差不多和你的一样. 到最后神志不清了已经...
结果
(个人)
丁香园? 丁香医生? 哦是这个, 咋记得有些不好的花边新闻...不管了面就是了
BASE杭州滨江区200, 还是全栈, 经济有些吃紧, 但如果过了就会去的大概, 毕竟杭州这么近, 还算个大厂(吊车尾?)
奈何自己今天实在是丢人, 后期我听得血压都高起来了...
不说了, 睡觉去了
菜的一批啊, SpadeK, 真是小丑
END. 2024-11-22
玄桃K
#实习##JAVA##面经#