Java集合框架深入解析:ArrayList、Vector与HashMap

需积分: 10 0 下载量 161 浏览量 更新于2024-09-14 收藏 37KB TXT 举报
"Java基础知识概览" 在Java编程语言中,掌握基础是非常关键的,这里我们探讨几个核心概念,包括访问修饰符、集合框架、线程安全和异常处理。 1. 访问修饰符: Java中的访问修饰符用于控制类、方法和变量的可访问性。主要有四种: - `public`: 可被任何地方访问,不受包限制。 - `private`: 只能在定义它的类内部访问。 - `protected`: 在同一包内以及不同包的子类中可以访问。 - `default`(没有明确指定修饰符): 同一包内的类可以访问,但跨包不行。 2. ArrayList和Vector的区别: - 同步性:ArrayList是非线程安全的,而Vector是线程安全的。这意味着在多线程环境下,如果你需要保证数据的一致性,那么使用Vector会更合适,因为它对所有操作进行了同步处理。 - 扩容策略:当数组需要扩大容量时,Vector默认会将其容量翻倍,而ArrayList则会将容量增加到原来的1.5倍。这导致Vector在性能上可能会比ArrayList慢,因为频繁的同步操作会降低效率。 3. HashMap与HashTable: - 用途:HashTable是Java早期提供的字典类,而HashMap是自Java 1.2起引入的Map接口的一个实现。 - 线程安全性:HashTable是线程安全的,而HashMap不是。因此,HashMap在单线程环境中通常更快。 - 空值处理:HashMap允许键和值为null,而HashTable不允许。 4. char字符编码: Java中的char类型占用两个字节(16位),因此它可以表示Unicode字符集,包含了超过65536个字符。一个char可以表示一个基本的Unicode码点,但某些Unicode字符需要两个char来表示,这就是所谓的代理对(Surrogate Pair)。 5. 线程与实现方式: 创建线程有两种方式:通过继承Thread类或实现Runnable接口。实现Runnable接口更为常见,因为它允许类去继承其他类,而继承Thread类的话,你的类就只能直接继承Thread。 6. Java集合框架: 集合框架是Java中用于存储和管理对象的重要工具,它包括: - Collection:所有单值容器的根接口,如List、Set。 - List:有序且允许重复元素,如ArrayList、LinkedList。 - Vector:线程安全的列表,与ArrayList类似。 - Stack:后进先出(LIFO)的数据结构。 - Set:不允许重复元素,如HashSet。 - Map:键值对存储,如HashMap、HashTable、WeakHashMap。 7. 异常处理: Java使用异常处理来捕获和处理程序运行时可能出现的问题。异常是通过throw语句抛出的,然后由try-catch-finally块来捕获和处理。异常类都继承自Throwable,常见的有IOException、NullPointerException、ArrayIndexOutOfBoundsException等。 8. 线程状态与方法: - `wait()`: 调用此方法的线程会释放它持有的锁,并进入等待状态,直到被其他线程调用`notify()`或`notifyAll()`唤醒。 - `sleep()`: 让当前线程暂停执行指定的时间,不会释放锁。 - `notify()`: 唤醒等待在该对象监视器上的一个线程,但不释放锁。 - `notifyAll()`: 唤醒所有等待在该对象监视器上的线程,但同样不释放锁。 理解这些核心概念对于深入学习和使用Java编程至关重要,它们构成了Java编程的基础。