丁香园 全栈开发 实习 凉经 一面 (挂)

KeyWords​ 丁香医生 - 丁香园 - 全栈偏后端 - 杭州 - Java - BXXS - 25届 - 科班 - 日常实习 - 凉凉

Collection​ Tragedy Op.X No.X

Locate​ 杭州滨江

Platform​ 波斯直ping

Status​ Failed (11.21)

时间线

  • 11.18 发起沟通, 秒接简历
  • 11.20 视频一面 - 技术面(后端)
  • 11.21 感谢信?!

流程

一面(后端面)

  1. 讲讲你实习经历
  2. 提问实习中: "分页数据量不一致"问题
  3. 物理分页逻辑分页
  4. SQL深分页
  5. MySQL索引类型?你们用外键吗?
  6. 自己建索引能建哪些索引?
  7. 啥时候要建索引?
  8. 查所有男性, 女性, 未知性别的用户, 这个时候要建索引吗?
  9. 什么是联合索引(刚才已经说了一句了)
  10. a,b,c建立三个索引, 和只建立一个合索引有什么不同的地方
  11. 怎么看全栈开发这事
  12. 浏览器打入域名, 域名会渲染出页面, 过程?
  13. CDN是什么, 解决了什么问题(已经在提示我刚才的东西了) ?
  14. HTTPS介绍下, 比对秘钥咋做的?
  15. Cookie和Session?
  16. 接上, 你存唯一标识(或者说令牌)在Redis, 还有其他方式吗, 在分布式情况下?
  17. JAVA的final关键字
  18. 如果我用final修饰一个Map变量(HashMap), 他这时候的状态是怎样的? Map不能改, Map里面的值不能改还是啥???
  19. HashMap是线程安全的吗? 不是的话用什么? 为什么不用HashTable... Hashmap和ConcurrentHashmap的区别是什么?
  20. int i++; 是线程安全的吗?
  21. 如果我多线程去操作一个int变量进行i++, 最终结果是偏大偏小还是都有可能? 只会偏小? 不会偏大吗?
  22. 如果我需要线程安全的计数器这个东西, 咋办
  23. 线程池解决什么问题
  24. 线程池参数, 临时线程做什么的? 核心线程是5, 救急是10, 最多几个线程?
  25. 反问

个人

  1. 叽里呱啦, 主要讲自己的核心全流程开发的内容

  2. 其实是一个内部框架的锅, 需要手动再发起查询查出数据量, 不能手动查找res.size() (很诡异的问题, 我现在也没想好怎么说...) 提一嘴逻辑分页, 其实讲的我复杂化了, 还说了发起子查询这些流程啥的... 他回答说: "太难了, 理解不能"

  3. 八股, 我可能没说好

  4. 八股, 用主键+辅助索引进行索引覆盖提升一部分性能避免回表 + 使用子查询 id>....的数据才查出 来进行优化

  5. 常识, 讲的不顺畅, 说乱了; 阿里规范说不能建立外键, 会损耗性能带来不必要的麻烦, 需要手动控制事务

  6. 我没get到点, 不就是唯一, 外键, 联合吗, 我想不到了.... 一搜发现还有个全文索引...嗯被暴打了

  7. 看业务场景, 频繁查询...八股

  8. 先问问Schema是怎样的, 回复说是设置 0, 1, 2 三种性别; 性别字段索引不能加, 区分度不高, 一般情况下不加. 提一句可能其他字段和他一起加一个联合索引好, 于是就有了后面的追问

  9. 八股, 还要讲讲优缺点 (省空间, 容易暴毙找不到等等)

  10. 答了存储消耗, 不命中情况更多, 可能更死板(双刃剑)

  11. 我自己就全栈开发了自己的项目, 好开发前后端都要走, 了解前端内容有助于...叽里呱啦 (这里我已经猜出来对面是个后端了, 于是直接大胆用 "我们" 来称呼)

  12. 标准八股计网的. 大部分没问题, 除了忘记述说域名 -> 网址的过程了. 这个域名是需要买的, 需要找CDN去托管, 找到域名通过CNAME等方式去找对应的地址进行访问...... 感觉自己没get到

  13. 没get到刚才我的疏漏, 顾左右而言他, 最后自己也摇头了. (真就突然死亡忘记了, 之前买域名时候被拷打也忘记了, 该罚), 只是举出了一个CloudFlare的实现这提升安全....叽里呱啦

  14. 讲SSL/TLS, 贴个八股, 自己背的不熟 :

    HTTPS 并不是新协议,而是让 HTTP 先和 SSL(Secure Sockets Layer)通信,再由 SSL 和 TCP 通信,也就是说 HTTPS 使用了隧道进行通信。

    通过使用 SSL,HTTPS 具有了加密(防窃听)、认证(防伪装)和完整性保护(防篡改)。

    比对秘钥就是非对称加密那个东西了, CA证书作公钥进行加密等

  15. 老生常谈, 八股暴打, 还提一句自己的项目用的是Session + Redis实现单点登录 + 令牌刷新的 (这里我有些紧张, 可能是被打傻了)

  16. JWT? , 存数据库? 没答上来, 寄了, 双方沉没...

  17. 先讲是什么, 再讲怎么用和场景, 大部分用在全局常量和MessageConstants这里, 直接用interface替代掉

  18. 我死了. 先分析JVM的存储情况, 再尝试理解final作用在引用(栈) 还是在 对象(堆空间), 可惜没分析成功, 脑子宕机了; 怕有诈, 想要对方提供具体场景, 对方说, 就一个final Map map = new HashMap<>(), 你说说约束是什么? 我没辙, 说两者都有, 就是指向不能变, 同时指向的实例内部的数据不变, 不能插入新增删除等等...正确答案是:

    final 关键字只保证 map 变量的引用不可变,但不限制 map 对象本身的内容变化。

    现在复盘的我只能苦笑. 午夜的白噪音为我们间长达1.05s的沉默撒上一撮失落: 我已经输了, 我知道, 清楚地, 明白地.

  19. 巴普洛夫效应, 我抖擞精神, 正确答上来了(大概)

  20. 不是! 然后说在编译时候的情况不是一句, 是需要分配内存等等...

  21. 先问问场景, 不抛出异常, 但是我当时脑子里只是模拟了一下被"脏读"覆盖掉更新导致偏小的情况, 没想到还能偏大(直接同时读取写入不就行了吗混蛋!!!) 直接自信作答: 只会偏小!

    不可预测的,可能偏大、偏小或正确。这是因为 i++ 操作不是原子的,它实际上包括三个步骤: 读取变量的当前值。
    增加变量的值。
    将新值写回变量。
    在多线程环境中,这些步骤可能会被多个线程交错执行,导致竞争条件(race condition),从而导致最终结果不确定。

  22. 加volatile和锁(Sync, Lock), 加Atomic原子类, 线程池CountDownl那些...

  23. 池化技术, 救急线程配置等等定制, Bean定制, 解决......

  24. 参数配置八股背诵, 讲临时线程的使用情景, 手语表达大师...别忘忘问问阻塞队列大小, 说0, 那才说出15\

  25. 为啥不问前端? 绷不住笑啦, "我也是个后端, 前端尖尖哇嘎乃", 前端其他人来问; 技术栈差不多和你的一样. 到最后神志不清了已经...

结果

(个人)

丁香园? 丁香医生? 哦是这个, 咋记得有些不好的花边新闻...不管了面就是了

BASE杭州滨江区200, 还是全栈, 经济有些吃紧, 但如果过了就会去的大概, 毕竟杭州这么近, 还算个大厂(吊车尾?)

奈何自己今天实在是丢人, 后期我听得血压都高起来了...

不说了, 睡觉去了

菜的一批啊, SpadeK, 真是小丑

END. 2024-11-22

玄桃K

#实习##JAVA##面经#
全部评论
面得烂了, 叫今夜难以入眠
点赞 回复 分享
发布于 今天 00:26 福建
老板直骗上面是不是下架这个招聘了
点赞 回复 分享
发布于 今天 09:29 湖南

相关推荐

吃不饱的肱二头肌很想退休:tnnd 我以为选妹子呢,亏我兴高采烈的冲进来😠
投递快手等公司10个岗位
点赞 评论 收藏
分享
1 1 评论
分享
牛客网
牛客企业服务