201904Java面经
发布日期:2021-06-28 19:59:43 浏览次数:2 分类:技术文章

本文共 1170 字,大约阅读时间需要 3 分钟。

三年经验。

最近开始找工作,记录一下遇到的问题

jvm

  • 强引用,弱引用,软引用,虚引用
  • jvm内存模型,gc算法有哪些,具体逻辑

java:

  • nio/bio区别,epoll/poll/select有什么区别
  • concurrenthashmap,7和8的差别,锁怎么用的
  • 线程池具体实现
  • aqs,cas实现方式
  • sync关键字和可重入锁区别
  • threadlocal原理以及内存泄漏问题
  • 阻塞队列有哪些实现
  • volitile字段作用,obj=new Object()线程安全吗,具体做了哪些动作。
  • Integer的常量池,有没有类似实现,怎么改变常量池的数值范围

设计模式:

  • 观察者模及应用场景(响应式编程,发布订阅模型,reactor模型)
  • 单例模式,双重锁,不加volitile为啥还不安全。
  • 工厂、抽象工厂
  • 代理模式
  • 装饰模式
  • 策略模式
  • 责任链模式(主动说的)

数据库:

  • 聚集索引与非聚集索引
  • 红黑树和b+树的区别,为啥数据库用b+
  • 有按A、B、AB字段查库,如何简历索引,为啥这么做
  • 事务隔离级别,MVCC怎么实现
  • for update锁什么资源,为啥能防幻读

spring

  • ioc,aop
  • springbean生命周期,循环依赖问题
  • 事务:@Transaction实现逻辑

dubbo

  • 原理
  • 序列化几种方式,rpc通信协议几种方式;
  • 启动provider,consumer怎么实时更新provider列表;
  • 负载均衡策略
  • 负载均衡为什么用一致性hash,比普通hash优势在哪

zookeeper

  • zab协议

消息队列

  • 怎么保证消息可靠性
  • broker挂了怎么办

redis:

  • 缓存过期策略
  • 持久化策略
  • 怎么防缓存击穿、缓存穿透
  • 缓存服务器挂了解决方案
  • 为啥单线程这么快
  • LRU、LFU区别及实现

应用:

  • 秒杀设计方案,并发问题
  • 用户钱包账户金额变更,分布式环境下数据一致性问题
  • 分布式锁死锁(没有设置超时时间)解决方案

算法:

  • 最大连续子序列
  • 链表反转
  • 快速排序
  • n皇后
  • 单调栈
  • 链表找交点、成环点

业务相关(支付):这一块其实了解不够全面。

  • 明细对账实现,其中的问题(对账时间、0点附近记录)
  • 长短款问题(数据一致性)
  • 余额防篡改策略
  • 清算、结算、清分
  • 现业务中发生过的各种问题,怎么解决

其他:

  • 自己负责的系统的架构图、模块划分,功能实现。
  • 有过什么挑战,遇到过什么问题。
  • https和http的区别,具体加密验签,客户端和服务器的交互逻辑
  • TCP三次握手
  • tomcat参数调优

解决方案

  • 针对ip,接口的限流方案
  • 接口响应时间优化方案
  • 增加单机并发方案
  • app push,大量push10分钟消费完解决方案,机器负载高时别的进程抢占资源怎么办
  • AB同时给对方转账,怎么防止死锁
  • 短链生成服务设计
  • 制定负载均衡策略,解决乱序消费

转载地址:https://blog.csdn.net/xxxxssss12/article/details/89022488 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:centos7下Docker和spring boot集成demo
下一篇:HashMap阅读(jdk1.8)

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月01日 14时57分50秒