最近又看了《Thinking in Java》一书,其中关于持有对象部分的总结非常好,现将其在下面分享!
java提供了大量持有对象的方式:
1、数组将数字与对象联系起来,他保存类型明确的对象,查询对象时,不需要对结果做类型转换。他可以是多维的,可以保存基本类型的数据。但是,数组一旦生成,其容量就不能改变。
2、 Collection保存单一的元素,而Map保存相关联的键值对。有了java的泛型,程序员就可以指定容器中存放的对象类型。因此程序员就不会将错误类型的对象放到容器中,并且在容器中获取元素时,不必进行类型转换。各种Collection和各种Map都可以在程序员向其中添加元素时,自动调整其尺寸。容器不能持有基本类型,但是自动包装机制会将基本类型和容器存放的类型进行转换。
3、像数组一样,List也建立数字索引与对象的关联。他们的区别是List能够自动扩充容量,而数组不能。
4、如果要进行大量的随机访问,就是用ArrayList;如果需要经常从表中间插入或删除元素,则应该使用LinkedList。
5、各种Queue以及栈的行为,有LinkedList提供支持。
6、Map是一种将对象(非数字)与对象先关联的设计。HashMap设计用来快速访问;而TreeMap保持“键”始终处于排序状态,所以没有HashMap快。LinkedHashMap保持元素插入的顺序,但是也通过散列提供了快速访问能力。
7、Set不接受重复元素。HashSet提供最快的查询速度,而TreeSet保持元素处于排序状态。LinkedHashSet以插入顺序保存元素。
8、新程序中不应该使用过时的Vector、Hashtable和Stack。
分享到:
相关推荐
在Java编程中,容器是用来存储和管理对象的类或接口,它们使得我们可以在程序中方便地组织和操作数据。在Java中,常见的容器主要分为三类:List、Set和Map,这些都是Java集合框架的重要组成部分。 首先,我们来看...
在Java编程中,容器对象是用于存储其他对象的类,它们是Java集合...通过阅读博客中的`持有对象.xmind`文件,可以进一步了解博主对这些概念的详细整理和分类。如果你对Java容器有深入学习的需求,这个资源将非常有价值。
总结来说,Java编程中的持有对象是通过容器类和泛型来实现的,这为开发者提供了强大的工具来管理各种类型的数据集合。同时,迭代器作为访问和操作这些集合的重要手段,进一步增强了代码的简洁性和可读性。掌握这些...
在Java编程中,对象的容纳主要分为两种方式:数组和容器。这里我们将详细讨论这两种方式。 **一、数组** 数组是一种基础的存储结构,它允许我们存储相同类型的对象引用。在Java中,数组的创建和使用可以通过以下...
但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地...
JAVA实用类库提供了一套容器类,其中基本的类型是List,Set,Queue和Map。也称为集合类? 可以将任意数量的对象放置到容器中? JAVA中的容器都是类,也是说JAVA没有直接的关键字支持 泛型 泛型指定了...
非静态实例初始化 5.8 数组初始化 5.8.1 可变参数列表 5.9 枚举类型 5.10 总结 第6章 访问权限控制 第7章 复用类 第8章 多态 第9章 接口 第10章 内部类 第11章 持有对象 第12章 通过异常处理错误 第13章 字符串 第...
Java是一种广泛使用的面向对象的编程语言,其特点包括强大的内存管理、丰富的类库以及高度的可移植性。本文将对Java中的几个关键知识点进行归纳和总结。 1. 逻辑操作(&, |, ^)和条件操作(&&, ||)的差别: - 逻辑...
这样做会使该对象不再被任何引用所持有,从而使其成为垃圾回收的目标。 综上所述,`null`在Java中扮演着重要的角色,它不仅是一个特殊的值,还是编程中常见的一种状态标志,用于处理不确定或未初始化的对象引用。...
6. **并发容器**:Java的`java.util.concurrent`包提供了线程安全的容器,如ConcurrentHashMap、CopyOnWriteArrayList等,它们在内部使用了高级同步机制,使得在并发环境下操作容器更加高效和安全。 7. **避免长...
- **按引用包含(By reference)**:包含对象持有被包含对象的引用。 - **按值包含(By value)**:包含对象直接存储被包含对象的数据成员。 **Java中的实现:** 在Java中,所有对象都是通过引用进行传递的,因此,...
### 黑马Java基础口述总结 #### 1. 注释 - **定义**:注释是用来解释程序中某一部分代码的功能或者用途的文字说明,它不会被编译器执行。 - **分类**: - 单行注释:使用`//`来表示,通常用于对单行代码进行注释。...
这份资深程序员的Java面试题总结涵盖了多个关键领域,包括Java基础、集合、多线程、反射以及对象拷贝等,这些都是Java程序员需要掌握的核心知识。 一、Java基础 1. JDK是Java Development Kit,包含了JRE(Java ...
2. **监听器**:注册了监听器但没有注销,导致监听器持有对象的引用,从而使得这些对象无法被垃圾收集器回收。 3. **内部类**:内部类持有外部类的引用,如果外部类对象本应被回收,但由于内部类的存在导致无法回收...
### Java基础知识大总结 #### 一、基础概念与特性 1. **Null的打印结果**:在Java中,如果尝试打印一个null值的对象引用,输出结果将会是`null`。 2. **字符串常量的拼接问题**:当在字符串中出现如`'10'`这样的...
但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地...
本笔记涵盖了Java编程思想的多个方面,包括访问权限控制、封装、继承、多态、接口、内部类、持有对象等。 访问权限控制 访问权限控制是为了把变动的事物与保持不变的事物区分开来。Java中有四种访问权限修饰词:...
`之后,指向Float对象的引用被置空,此时该对象不再被任何引用所持有,因此它可以被垃圾回收器回收。正确答案为C。 #### 10. 构造方法调用顺序 - **问题**: 如下代码的结果是什么? ```java class Base { Base...
Java的GC机制可以自动检测和清理不再被引用的对象,以释放内存供其他对象使用。 #### 垃圾回收机制 常见的垃圾回收策略包括分代收集、复制算法、标记-清除算法、标记-整理算法等。不同的垃圾回收器采用不同的策略...