首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/u/1762727/blog/4652368

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

腾讯一面!说说ArrayList的遍历foreach与iterator时remove的区别,我一脸懵逼

本文基于JDK-8u261源码分析 1 简介 ​ ArrayList作为最基础的集合类,其底层是使用一个动态数组来实现的,这里“动态”的意思是可以动态扩容(虽然ArrayList可以动态扩容,但却不会动态缩容)。但是与HashMap不同的是,ArrayList使用的是1.5的扩容策略,而HashMap使用的是2的方式。还有一点与HashMap不同:ArrayList的默认初始容量为10,而HashMap为16。 有意思的一点是:在Java 7之前的版本中,ArrayList的无参构造器是在构造器阶段完成的初始化;而从Java 7开始,改为了在add方法中完成初始化,也就是所谓的延迟初始化。在HashMap中也有同样的设计思路。 另外,同HashMap一样,如果要存入一个很大的数据量并且事先知道要存入的这个数据量的固定值时,就可以往构造器里传入这个初始容量,以此来避免以后的频繁扩容。 2 构造器 /** * ArrayList: * 无参构造器 */ public ArrayList() { //DEFAULTCAPACITY_EMPTY_ELEMENTDATA是一个空实现“{}”,这里...

分布式通信子系统之发起 discover 请求 | 解读鸿蒙源码

背景 偶然在doc/readme目录里看到readme/分布式通信子系统README.md · OpenHarmony/docs - 码云 - 开源中国 对这个还是比较感兴趣的,所以决定把这个部分拿出来解读下,加上还没有看到有人写。 特定到网上搜了下“分布式通信子系统 鸿蒙”,只搜到一篇,我觉得还是比较相关的,讲了分布式通信的需求来源,解析鸿蒙操作系统,不过他这个题目起的有点随意。 理解计划 如何阅读理解分布式通信子系统的源代码呢? 这边的思路主要是: 阅读文档入手; 绘制思维导图; 通过关键词定位源代码,通过调用关系确定执行流程(流程图可视化) 流程,剩下的基本就是数据结构和算法方面的事情了; 思维导图 用思维导图的树形结构就够了(下图里的蓝色方块就是这篇博文关注的部分): 在线浏览链接 事实上这个文档读起来还是比较费力的,但是软件毕竟数学,工程的东西,你多重复读几遍没有看不懂的。 先说几个名词的个人理解: 能力:能力应该是一种拟人化的说法,其实就是功能吧,能力的使用者是服务。 服务:服务是一个日常口语,我理解就是现代流行的以人为本的抽象,比如为人民服务,这里的服务就多了去了,需求方...

相关文章

发表评论

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册