javase-collection-210623-02
-
HashTable
-
Properties
HasTableTest01.java
package bgy_hashtable01;
import java.util.Hashtable;
import java.util.Map;
/*
1. HashTable中的方法都带有synchronized关键字,是线程安全的
线程安全目前有其它方案,HashTable对线程的处理导致效率较低,所以使用较少
2. HashTable 和 HashMap 一样,底层都是哈希表数据结构
3. HashTable的初始化容量是11,默认加载因子是:0.75f
HashTable的扩容是: 原容量 * 2 + 1
4. HashTable的 key 和 value 都不允许为空
*/
public class HashTableTest01 {
public static void main(String[] args) {
Map map = new Hashtable();
map.put(null,1); // java.lang.NullPointerException
map.put(1,null); // java.lang.NullPointerException
System.out.println(map.size());
}
}
PropertiesTest01.java
package bgy_hashtable01;
/*
1. Properties 继承于 HashTable
2. Properties的key和value都是String类型
3. Properties被称为属性类对象
4. Properties是线程安全的
*/
import java.util.Properties;
public class PropertiesTest01 {
public static void main(String[] args) {
Properties properties = new Properties();
// 添加元素
properties.setProperty("root","root");
properties.setProperty("password","root");
properties.setProperty("driver","com.mysql.cj.jdbc.Driver");
properties.setProperty("url","jdbc://localhost:3306/test?&useSSL=false&serverTimezone=UTC");
// 获取元素
String root = properties.getProperty("root");
String password = properties.getProperty("password");
String driver = properties.getProperty("driver");
String url = properties.getProperty("url");
System.out.println(root);
System.out.println(password);
System.out.println(driver);
System.out.println(url);
}
}
本文介绍了Java中的HashTable和Properties类。HashTable是线程安全的哈希表,但因效率问题使用较少,其容量初始为11,扩容方式为原容量*2+1,且键值对不允许为空。Properties类继承自HashTable,专门用于处理属性配置文件,键值对都是String类型,线程安全,适合读取和设置配置参数。
208

被折叠的 条评论
为什么被折叠?



