Java基础:数组、内存理解与内存控制要点

需积分: 3 13 下载量 65 浏览量 更新于2024-09-25 收藏 275KB PDF 举报
本篇Java基础复习笔记主要涵盖了以下几个关键知识点: 1. **数组**:在Java中,数组是一种数据结构,用于存储具有相同数据类型的元素集合。如例中的`String[] array = new String[]{"1", "2", "3"};`展示了如何声明和初始化一个字符串数组。数组在内存中是连续存放的,可以通过索引访问每个元素。 2. **内存形式**:Java对象在内存中的存储通常包括堆内存(Heap)和栈内存(Stack)。栈内存用于存储基本数据类型、对象引用(包括数组引用),生命周期与方法执行相关。数组在Java中是对象,其实例通常在堆上分配,数组元素的引用存储在栈内存中。 3. **内存控制**:Java自动管理内存,通过垃圾回收机制来释放不再使用的对象所占用的内存。当对象不再被任何引用指向时,垃圾回收器会将其标记为垃圾,并在适当的时候回收。如例中创建的`ArrayTest`类中的`array`对象,在`main`方法结束后,如果没有其他引用指向它,垃圾回收器会将其内存空间收回。 4. **继承(父子关系)**:Java中的继承是面向对象编程的一个重要特性,允许一个类(子类)继承另一个类(父类)的属性和方法。虽然这部分内容没有直接在提供的代码片段中体现,但可以推测后续章节可能涉及这个概念,比如讨论类之间的继承关系和方法重写等。 5. **哈希码(hashCode)**:在`for`循环中,通过调用`String`对象的`hashCode()`方法获取字符串的哈希值,这是为了演示对象的唯一标识符在程序中的应用。`hashCode()`方法返回一个整数,不同对象的哈希值通常是不同的,但在实际应用中需注意冲突的可能性。 6. **字符串常量池**:`String`类中的字符串字面量会被放入一个全局的字符串常量池中,例如`"1"`、`"2"`和`"3"`。如果多次创建相同的字符串,实际上是在池中复用相同的对象,节省内存空间。 总结来说,这篇笔记主要围绕Java的基础概念展开,包括数组的使用、内存管理(尤其是对象的堆栈存储以及垃圾回收)、继承的原理以及对象的哈希码计算,有助于初学者理解Java的核心概念和内存工作方式。后续可能会深入讲解这些主题的更多细节。