`

8_(JAVA基础300集最全教程 学习)Collectioin各容器实现方式

阅读更多
1.ArrayList :
实现方式(非可序化Object数组):private transient Object[] elementData;
扩容方式:历史值的3倍与2取商再加1((oldCapacity * 3)/2 + 1);
public void ensureCapacity(int minCapacity) {
	modCount++;
	int oldCapacity = elementData.length;
	if (minCapacity > oldCapacity) {
	    Object oldData[] = elementData;
	    int newCapacity = (oldCapacity * 3)/2 + 1;
    	    if (newCapacity < minCapacity)
		newCapacity = minCapacity;
            // minCapacity is usually close to size, so this is a win:
            elementData = Arrays.copyOf(elementData, newCapacity);
	}
    }


注意到代码中有这么一处:elementData[--size] = null;后面给出的注释是: Let gc do its work(让GC回收),这告诉我们在代码开发中也可以在对于不再使用的空间,将引用置为Null,让gc更好的回收空间。

  public void clear() {
	modCount++;

	// Let gc do its work
	for (int i = 0; i < size; i++)
	    elementData[i] = null;

	size = 0;
    }

2.
分享到:
评论

相关推荐

    Java基础 学习笔记 Markdownr版

    本学习笔记主要涵盖了Java的基础知识,包括面向对象、集合、IO流、多线程、反射与动态代理以及Java 8的新特性等方面,旨在帮助初学者或有经验的开发者巩固和提升Java编程技能。 1. 面向对象(OOP):Java的核心是...

    Java基础教程完整版

    Java基础教程完整版 Java基础教程完整版是JAVE_LOVER作者提供的一系列Java教程,总共包含18个章节,涵盖了JavaSE基本知识点、UML建模、单元测试等内容。下面是对每个章节的详细介绍: Java学习系列(一):Java的...

    Word2VEC_java 源代码

    总之,这个“Word2VEC_java”项目提供了一个在Java环境中实现Word2Vec的基础框架。通过学习和实践,开发者不仅可以掌握Word2Vec的实现细节,还能提升在自然语言处理领域的技能。不过,由于描述中提到这个版本未经...

    韩顺平_循序渐进学Java零基础【完整笔记】1

    【描述】:这个课程是为初学者设计的,旨在通过系统的学习帮助学生掌握Java编程的基础。课程分为三个阶段,详细讲解了Java语言的核心概念、就业前景以及在不同领域的应用。 【标签】:虽然没有具体的标签,但可以...

    java基础教程

    《Java基础教程(第3版)》以通俗易懂的语言,循序渐进地向读者介绍了Java语言编程的基础知识。针对较难理解的问题,所列举的例子都是由简到繁,便于读者掌握Java编程技巧。在第3版中加大了面向对象的知识容量,补充...

    Java 中文入门学习手册合集[chm版]

    第三章 Java程序设计基础 第四章 Java应用程序的基本框架 第五章 Java的类 第六章 Java图形用户接口 第七章 多线程 第八章 Java的"异常" 第九章 Java输入输出操作 java新手教程.chm JAVA_精通swing程序设计...

    java基础教程----精华版

    Java是一种广泛使用的面向对象的编程语言,以其平台独立性、安全性、健壮...这份"java基础教程----精华版"应该涵盖了这些主题,并且可能还有更多的实践指导和示例代码,对于学习和巩固Java编程基础是非常有价值的资源。

    jdk1.8.0_144 (Java SE Development Kit 8u144)

    Java Standard Edition (SE) Development Kit 是Oracle公司提供的用于开发和部署Java应用程序的基础工具集。JDK是Java开发环境的核心组成部分,包含了Java编译器、Java运行时环境(JRE)、Java调试器以及其他开发...

    java大学简明教程

    《Java大学简明教程》是一本面向初学者的编程指南,旨在帮助学生快速掌握Java编程语言的基础知识。这个教程源代码包含了一系列实例,用于辅助学习和加深理解。下面将详细阐述Java编程语言的关键概念和重要知识点,...

    Java基础学习教程J2SE讲义ppt下半部分

    Java基础学习教程J2SE讲义ppt JAVA概述 JAVA语言基础 面向对象编程 JAVA异常处理机制 数组 JAVA常用类 JAVA容器类 JAVA流技术 JAVA多线程机制 JAVA网络编程 GUI编程

    Java2实用教程第六版课后习题答案答案

    8. **集合框架**:Java集合框架包括List、Set、Map等接口以及ArrayList、LinkedList、HashSet、HashMap等实现类,它们提供了高效的数据存储和操作方式。 9. **线程**:Java支持多线程编程,通过Thread类和Runnable...

    java实现rtsp/rtmp转m3u8/flv/hls/mp4等实现web直播和回放

    Java 实现 RTSP/RTMP 转 M3U8/FLV/HLS/MP4 是网络直播和视频回放的重要技术,它涉及到多种协议、工具和格式的交互。在这个场景下,Java 通常作为后端处理服务器,处理来自不同来源(如海康、大华等监控设备)的实时...

    Java2实用教程.rar

    Java2实用教程 rar 第1章Java入门 1 1Java的诞生 1 2Java的特点 1 3安装Sun公司的SDK 1 4一个Java程序的开发过程 1 5一个简单的Java应用程序的开发过程 1 6一个简单的Java小应用程序 1 7什么是JSP 习题 第2章标识符...

    下载 传智播客_Springmvc+Mybatis由浅入深全套视频教程

    MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集的过程,可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects)映射成数据库中的记录。 #### 主要特点 1. **SQL...

    Java实现Socket长连接和短连接

    综上所述,Java实现Socket长连接和短连接涉及网络通信基础、连接管理、异常处理等多个方面,开发者需要根据实际需求权衡选择合适的方式。通过深入理解这些概念和技术,可以有效地优化网络服务,提升应用的性能和用户...

    Java Web程序设计教程.pdf

    标题《Java Web程序设计教程》与描述《Java Web程序设计教程 Java Web程序设计教程》中的知识点主要涵盖了Java Web应用开发领域的核心技术与实践。本书作为21世纪高等学校计算机规划教材,由范立锋与林果园共同编著...

    JAVA_API1.6文档(中文)

    java.lang 提供利用 Java 编程语言进行程序设计的基础类。 java.lang.annotation 为 Java 编程语言注释设施提供库支持。 java.lang.instrument 提供允许 Java 编程语言代理检测运行在 JVM 上的程序的服务。 java....

    java-jdk-8u51-windows-x64.exe.zip

    Java JDK 8u51是Oracle公司发布的一个针对Windows x64操作系统的64位Java开发工具包。这个版本在2015年7月20日被标记为最新的,对于开发者来说,它是构建和运行Java应用程序的基础。下面将详细阐述Java JDK 8u51的...

    几个推荐算法的java实现

    总的来说,这个项目提供了多种推荐算法的Java实现,对于学习和应用推荐系统,尤其是对Java编程感兴趣的开发者,是非常有价值的资源。通过理解和实践这些算法,不仅可以提升对推荐系统的理解,也有助于提高解决实际...

    最新JAVA编程题全集 50题及答案

    本资源汇集了 50 个 JAVA 编程题目,涵盖了 JAVA 基础知识、数据结构、算法、面向对象编程等方面的内容。 从文件的标题、描述和标签可以看出,本资源主要关注 JAVA 编程语言的基础知识和实践应用。下面,我们将从四...

Global site tag (gtag.js) - Google Analytics