杭州产链 日常实习 一面面经
面试官很好说话,大概15-20min左右
- concurrentHashMap怎么保证现场安全的
1.7使用segment分段锁,1.8使用CAS+sychronized - 线程池的核心参数
核心线程数,最大线程数,空闲线程存活时间,时间单位,阻塞队列,拒绝策略,线程工厂 - CountDownLatch
用于多个线程完成后再操作 - 索引覆盖,索引下推
- 缓存穿透
布隆过滤器,缓存空值,限流中间件 - 判断对象是否可以被回收 强引用:可达性分析法和引用计数法,弱引用,软引用,虚引用
- threadLocal为什么会造成内存泄漏
在普通的CRUD场景下,栈帧对ThreadLocalMap
是强引用,等栈帧弹完了,没有被引用,下次gc就会被回收 在线程存货时间过长的情况下,比如线程池,运气较好的情况下,每次crud的时候会清理附近key为null的entry,但运气不好的情况下,由于key是弱引用,gc必回收,而value被Entry强引用,不会被gc,长期下来会造成oom - AOP
切面编程,对系统解耦,底层动态代理,分jdk和cglib - docker指令
docker ps,docker image等 - 倒排索引(忘记了)
根据文章内容进行分词形成索引,在查询的时候把查询词分词然后查询对应索引取交集 - 怎么保证消息被消费
消费者确认,唯一id - sha-256算法是什么(不知道)
场景题 - 有一个bug,在日志中怎么定位哪行代码出问题? 答:日志应该有哪行代码出问题报错(没get到面试官想问什么)
- 怎么查看日志? cat,vim
- minIO的Bucket是什么(存放静态资源的桶)
对象存储:每个Bucket可以存储任意数量的对象(文件),每个对象都有一个唯一的键(Key)用于访问。
名称唯一性:在MinIO实例中,Bucket的名称必须是全局唯一的。这意味着在同一个MinIO服务器上,不能创建同名的Bucket。 权限管理:可以为每个Bucket配置访问权限,控制谁可以访问该Bucket及其包含的对象。这包括读取、写入和删除权限。
版本控制:MinIO支持对象版本控制,可以在Bucket中启用版本功能,以便跟踪对象的不同版本。
生命周期管理:可以为Bucket设置生命周期规则,自动管理对象的存储,例如定期删除过期的对象或将对象迁移到其他存储类。
跨区域复制:支持将Bucket中的对象复制到其他MinIO实例或不同地理位置的MinIO实例,增强数据的可用性和冗余性。 - 阿里云敏感词出现重复的内容怎么处理
- 前后端联调是怎么做的
- git指令,merge,rebase区别
总结:能说个大概,深度的回答不上来,好几次被问minIO问题了...
#软件开发笔面经#