牛客网AI面试第三轮

这篇博客探讨了DNS系统的基本概念,讲解了Java中ConcurrentHashMap在JDK1.5和1.8的不同实现原理,涉及到分段锁和并发控制策略。同时,介绍了Java的IO流,包括输入流、输出流、字节流与字符流、节点流与处理流的分类和作用。最后,文章提到了Spring AOP的概念,它是面向切面编程,用于代码增强,常用于权限认证、缓存、错误处理等方面。
摘要由CSDN通过智能技术生成
  1. DNS(域名系统)是什么?
    dns 是域名系统的缩写,由解析器和域名服务器组成,域名服务器是指保存有该网络中所有主机的域名和对应的ip地址,并具有将域名转换为ip地址的服务器。
  2. 说一说ConcurrentHashMap的实现原理
    JDK1.5中的实现
    ConcurrentHashMap使用的是分段锁技术,将ConcurrentHashMap锁一段一段的存储,然后给每一段数据配一把锁(segment),当一个线程占用一把锁(segment)访问其中一段数据的时候,其他段的数据也能被其它的线程访问,默认分配16个segment。默认比Hashtable效率提高16倍。
    JDK1.8中的实现
    ConcurrentHashMap取消了segment分段锁,而采用CAS和synchronized来保证并发安全。数据结构跟HashMap1.8的结构一样,数组+链表/红黑二叉树。
    synchronized只锁定当前链表或红黑二叉树的首节点,这样只要hash不冲突,就不会产生并发,效率又提升N倍。
  3. 介绍一下Java中的IO流
    输入流与输出流、字节流与字符流、节点流与处理流
    流是Java对不同输入源输出源的抽象,代表了从起源到接收的有序数据,有了它程序就可以采用统一的方式来访问不同的输入源和输出源了。
    按照数据的流向,可以将流分为输入流和输出流。其中,输入流只能读取数据、不能写入数据,而输出流只能写入数据、不能读取数据。
    按照数据的类型,可以将流分为字节流和字符流。其中,字节流操作的数据单元是byte(8位的字节),而字符流操作的数据单元是char(16位的字符)。
    按照使
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我想去拉萨。

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

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

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

打赏作者

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

抵扣说明:

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

余额充值