Java面经之读书笔记精简版 (一)

项目介绍
展示层、服务层、持久层

展示层、服务层:提高并发量和扩展性==》Dubbo,之间能进行交互。服务层通过Dubbo注册给Zookeeper,表现层通过Dubbo去Zookeeper获取服务的相关信息。 Zookeeper==》存放服务器地址和服务的相关信息。 单个服务增加服务器应对服务量增加。

消息队列

  1. 提高响应速度和削峰
  2. 解耦、提高可扩展

具体: 高并发场景==》无缓存、数据库压力大==》响应缓慢
请求数据给消息队列==》立即返回==》消费者进程从消息队列获取数据,异步请求数据库==》消息队列服务器速度快==》响应速度大幅改善。
降低耦合:不存在直接调用
缺点:1.考虑消息丢失或MQ挂掉 2.复杂:考虑消息丢失、顺序、重复消费 3.不一致:异步可能出现消费者没有正确消费。

Redis
缓存穿透

大量请求的key不存在缓存中,大量请求数据库。一个黑客大量制造不存在的key值。
解决方案:
1.参数校验。2.缓存无效key并设置过期时间 3.布隆过滤器:多个哈希函数得到哈希值,位数组对应位置的下标设置为1. 不存在,一定不存在。不过,可能误判其存在。
布隆过滤器解决redis缓存穿透:1. 存储可能所有请求的key值 2. 请求一来,先判断是否存在。不存在直接返回错误,存在才继续请求缓存,缓存不存在才查库。

计算机网络
输入URL发生了什么?

1 DNS解析:获取域名的IP
2. TCP连接
3. 发送HTTP
4. 响应返回报文
5. 浏览器解析并渲染页面
6. 连接结束

TCP和UDP区别?

  1. 是否面向连接
  2. 广播或多播还是单播?
  3. 是否可靠?三次握手
  4. 首部字节大不大?
  5. 应用场景?

TCP如何保证可靠传输?

  1. 分割应用数据成合适的报文段。
  2. 编号,排序
  3. 校验和
  4. 丢弃重复的数据
  5. 流量控制,滑动窗口来控制发送速率。
  6. 拥塞控制,网络不好也发慢点
  7. ARQ协议:等待对方确认后再发下一个分组
  8. 超时重传:没有及时确认,重发这个报文。

Java基础
字节流和字符流
字符流由JVM转换而来,耗时,编码类型不知则乱码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涛歌依旧fly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值