#你觉得最好用的AI编程工具是_#我现在最常用的AI编程工具是GitHub Copilot。它在代码补全和API调用方面的表现非常出色,能有效减少重复劳动,尤其适合写模板代码和常规业务逻辑。我个人感觉它已经成了我日常开发中不可缺少的助手,大幅提高了整体编码效率。
全部评论

相关推荐

04-19 20:28
已编辑
门头沟学院 Java
只背了threadLocal的存储特点和底层原理,以及内存泄露原因,结果被问异步的线程怎么访问子线程?直接懵了 现在来补充这块盲区。Java 主线程中存储的 ThreadLocal 数据,异步子线程、线程池为什么获取不到?有哪些解决方案?各自优缺点?答:1. 原生 ThreadLocal 底层限制每个线程独立拥有自己的  ThreadLocalMap ,天然线程隔离;主线程的 Map 与异步/子线程 Map 完全独立,因此异步线程直接  get()  拿到  null 。解决方案:2. 方案一:InheritableThreadLocal(JDK 原生)- 原理:Thread 类内部存在  inheritableThreadLocals  集合,新建子线程时会浅拷贝父线程该集合数据,实现父子线程传递。- 致命缺点:拷贝逻辑只执行在线程构造方法;线程池、@Async 线程长期复用,不会重复拷贝,导致上下文失效、出现脏数据,生产不推荐。3. 方案二:临时简易方案(无依赖)主线程提前手动  get()  取出 ThreadLocal 数据,转为有效final局部变量,直接传给异步 Lambda/内部类使用;拓展:方法内局部变量被异步引用,必须为有效final(不可二次赋值),成员变量、静态变量无此限制。4. 方案三:生产最终方案(TransmittableThreadLocal 阿里 TTL)- 核心原理:在异步任务提交时刻主动捕获主线程上下文,任务执行时绑定到复用线程,执行完毕自动清理。- 优势:完美兼容线程池、@Async、CompletableFuture 所有异步场景;无需手动传参,彻底摆脱  final  限制,是企业级上下文传递标准方案。其他问题追问1:InheritableThreadLocal 线程池失效的根本原因?线程池线程提前初始化、长期复用,拷贝逻辑只在线程创建时执行一次,无法同步主线程最新的 ThreadLocal 数据。追问2:TTL 与 InheritableThreadLocal 核心区别?InheritableThreadLocal 是线程创建时拷贝;TTL 是任务提交时拷贝,专门适配线程复用场景。追问3:异步代码里,为什么主线程局部变量必须要有效final?局部变量存储在线程栈,异步线程无法跨栈访问;底层会进行值拷贝,语法禁止二次赋值,防止多线程数据错乱。
发面经攒人品
点赞 评论 收藏
分享
面试时间:4.22下午3点 时长1h道心破碎了,对项目进行非常深度的拷问,还考了性能监测这一部分,以及一个音乐播放的场景题,全程基本无八股无手撕,最没有悬念的一次面试,g的不能再g,基本上考的都是我没有了解的知识,反问我直接问前面的答案了,还是太菜了,录音还忘记录了,算了反正也不敢听1. 自我介绍2. 虚拟列表怎么实现的3. 一道性能指标采集代码找错误,力竭了,根本找不出来,根本没了解过这部分知识4. 文件上传是怎么实现的5. 大文件分片上传时,计算 5MB 分片 MD5 大概要多久6. 如果文件很大,计算完整文件 MD5 很耗时,有什么性能优化方案7. Web Worker 在大文件 MD5 计算里能怎么用8. 服务端保存所有分片索引和分片文件,会不会导致碎片文件越来越多9. 分片合并完成后,服务端临时分片目录应该怎么清理10. 如果清理了分片,下次上传同一个文件还能不能做分片级别的秒传11. 秒传应该基于完整文件 hash 还是分片 hash12. 服务端怎么设计分片管理,才能避免既存完整文件又存所有分片造成空间浪费13. 如果两个文件部分分片相同、整体文件不同,怎么判断和复用分片14. 歌曲列表页点击歌曲后,如何打开一个独立播放页15. 如果播放页已经存在,列表页怎么通知已有播放页切换歌曲16. 怎么判断播放页是否已经存在或是否被关闭17. 如何用 LocalStorage 实现跨页面通信18. 如何用 LocalStorage 实现页面间心跳检测19. LocalStorage 轮询方案有什么性能问题20. 除了 LocalStorage,跨页面通信还有哪些更好的方案21. postMessage 和 Service Worker 怎么用于跨页面通信22. 歌曲列表中大量图片加载时,如何先展示占位图23. 图片加载成功后怎么切换为真实图片24. 图片加载失败后怎么展示失败图25. 如何通过图片的 load 和 error 事件判断加载状态26. 你接触过 React Native 或 Flutter 这类跨端技术吗27. Vite 相比 Webpack,为什么开发阶段启动更快28. Webpack 能不能也配置成使用 ES Module29. Vite 的热更新 HMR 是怎么实现的30. WebSocket 和 SSE 有什么区别31. 反问
查看30道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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