当前位置: 首页 > news >正文

网站开发框架文档网站默认图片素材

网站开发框架文档,网站默认图片素材,深圳移动网站建设公,微信广告服务商平台一、集合的分类有哪些? Java集合框架主要分为两大类:Collection和Map Collection主要分为以下三类: List:有序集合,允许重复元素。常见的实现类有ArrayList、LinkedList和Vector。 Set:无序集合&#xf…

一、集合的分类有哪些?

Java集合框架主要分为两大类:CollectionMap

Collection主要分为以下三类:

  • List:有序集合,允许重复元素。常见的实现类有ArrayListLinkedListVector

  • Set:无序集合,不允许重复元素。常见的实现类有HashSetLinkedHashSetTreeSet

  • Queue:队列,通常用于存储待处理元素。常见的实现类有PriorityQueueLinkedList(也实现了Deque接口)。

Map主要分为以下两类:

  • HashMap:基于哈希表实现,允许null键和null值,不保证顺序。

  • TreeMap:基于红黑树实现,键值对按照键的自然顺序或自定义顺序排序。

二、迭代器的实现原理是什么?

在Java中,迭代器(Iterator)是一种设计模式,用于遍历集合中的元素。

迭代器通常用于遍历List、Set等集合类型。

迭代器的实现通常依赖于集合的内部数据结构

三、为什么new ArrayList<>()时建议指定初始化容量值?

ArrayList是基于数组实现的动态数组。

如果没有指定初始化容量,ArrayList会使用默认的初始容量(通常是10)。

指定初始化容量可以避免频繁的数组扩容操作。

四、为什么ArrayList的扩容机制默认扩容为原数组的1.5倍?

避免性能开销。

减少扩容次数。

减少内存浪费。

避免内存碎片。

五、ArrayList是线程安全的吗?

不是线程安全的。它是一个基于动态数组的数据结构,适用于单线程环境。在多线程环境下,如果多个线程同时访问和修改ArrayList,可能会导致数据不一致或其他并发问题。

六、CopyOnWriteArrayList的实现原理

修改时创建一个新的数组,并在新数组上进行修改。修改完成后,将原数组的引用指向新的数组。

读操作直接在原数组上进行,无需加锁。

七、HashMap添加元素流程

1.根据key的hashCode()方法计算哈希值。

2.哈希值与数组长度减一进行按位与计算桶位置。

3.将元素插入到桶位置。

如果该位置为空直接插入;

如果该位置不为空:

第一种情况:该位置节点的结构是链表,插入链表尾部(1.7及以前插入头部)。

第二种情况:该位置节点的结构是红黑树,按照红黑树的规则插入到树中。

4.扩容检查,如果容量超过阈值,创建一个新数组,长度为原来的2倍,并将原数组中的元素重新哈希分配到新数组。

八、HashMap的负载因子为什么是0.75

负载因子越大,数组中元素填满成都越高,越容易出现哈希冲突;负载因子越小,数组中元素填满成都越低,空间利用率低。

避免频繁扩容。

可以使阈值是整数,因为阈值=容量*负载因子,容量通常是2的幂次方,优化位运算操作,提高计算效率。

九、HashMap扩容为什么扩容为数组长度的2倍

减少哈希冲突,提高操作效率,方便数据迁移

十、HashMap是线程安全的吗

不是

十一、ConcurrentHashMap的实现原理

它是多线程环境下可以安全的存储和访问键值对的哈希表实现。

数据结构上采用数组+链表+红黑树。

1.7以前采用分段锁机制,将HashMap分成多个段(segment),每段有一个锁,可以实现不同段的并发访问,同时访问一个段才需要获取锁。

现在使用CAS和synchronized关键字实现锁机制,一段时间内只有一个线程可以对一个桶位置进行操作。

采用多线程的方式进行扩容中的数据迁移。

十二、泛型是什么?泛型的好处?类型擦除是什么?

泛型是编程语言中用于参数化类型的一种机制,允许在定义类、接口、方法时使用类型参数,实际使用时再指定具体类型。

避免运行时因类型转换导致的错误同一段逻辑可以适用于多种数据类型,提高代码可读性

类型擦除就是在编译后将泛型类型信息擦除,替换为原始类型(如Object)或边界类型(如泛型的上界)。

十三、反射是什么?反射的好处?反射的使用场景?

反射是指在程序运行时动态获取类型信息操作对象的能力。

可以通过反射编写通用代码,提高灵活性动态性,动态分析对象状态

框架开发:利用反射实现依赖注入动态代理等功能。

动态代理:AOP中,反射生成代理对象拦截方法调用。

序列化与反序列化。

注解处理:反射读取注解信息实现自定义逻辑。

十四、动态代理有哪些方式?原理是什么?

JDK动态代理、CGLIB动态代理、Javassist动态代理

运行时字节码生成:动态代理在运行时通过修改或生成字节码创建代理类

方法调用拦截:所有代理方法调用会被转发到统一的处理逻辑

十五、JDK动态代理和CGLIB动态代理的区别?

JDK动态代理基于反射机制生成代理对象,要求目标类必须实现接口

CGLIB动态代理通过字节码技术生成目标类的子类作为代理对象,无需目标类实现接口

JDK动态代理性能略低于CGLIB动态代理,因为后者无需目标类实现接口,适用于高性能场景。

十六、虚拟线程的原理

虚拟线程是Java19引入的轻量级线程,由JVM管理而非操作系统,开销低,适合高并发场景。

其实现依赖于载体线程

http://www.dtcms.com/a/510010.html

相关文章:

  • 江苏省交通建设厅门户网站WordPress数据库备份还原
  • 建设网站怎么加购物车城乡与住房建设部网站首页
  • 杭州设计企业网站高端公司网站服务内容怎样选
  • 电子商务网站的建设与规划论文WordPress简体中文设置教程
  • 网站中怎么做网站统计宁波网站建设制作哪家好
  • 网站建设 盈利品牌网站设计服务
  • 网站建设系永久云服务器免费领
  • 无锡建设建设局网站优化方案历史
  • 泉州网站优化排名长沙制作网站公司
  • 深圳设计网站公司torrentkitty磁力猫
  • 一学一做看视频网站网络营销大师排行榜
  • 网站建设优化教程全国中小企业网
  • 网站建设招标书模板wordpress自定义前端
  • 网站建设 启象科技孟村网站建设
  • 类网站建设江门市蓬江区最新发布
  • 军博网站建设公司成都的科技公司有哪些
  • 北京网站的建立的国泰君安建设工程官方网站
  • 怎样建立免费的个人网站软件工程属于什么专业类别
  • 网站备案为什么要闭站长春哪家公司做网站好
  • ph域名网站网站内容方案
  • 石油网站编辑怎么做全网营销解决方案
  • 做mip网站必须备案吗手机网页无法访问
  • 网站免费空间哪里申请余姚市城乡建设局网站
  • 要写网站建设方案网站建设 秦皇岛公司哪家好
  • 网站建设克隆wordpress ueditor
  • 网站首次备案网站策划与运营
  • 搭建个人网站赚钱企业网站优化咨询
  • 网站框架怎么搭建wordpress 首页调用栏目文章
  • 58同城商业后台如何做网站wordpress 警告
  • 做环境设计的网站深圳建网站多少钱