java细小知识补充(四)

一、Hashtable与HashMap的区别(面试题

1、主要:Hashtable线程安全,同步,效率相对低下

  HashMap线程不安全,非同步,效率相对高

2、父类:Hashtable 是Dictionary HashMap是AbstractMap

3、null:Hashtable键与值不能为null;

         HashMap键最多一个null,值可以多个null;

二、Properties

1、作用:读写资源配置文件

2、键与值只能为字符串

3、方法:

setProperty(String key ,String value)

getProperty(String key)【不建议使用】

用指定的键在此属性列表中搜索属性,如果不存在返回空

getProperty(String key ,String defaultValue)

如果不存在,返回默认值

存储后缀为.properties

store(OutputStream out ,String comments)

store(Writer writer , String comments)

load(InputStream instream)

load(Reader reader)

.XML格式

storeToXML(OutputStream os, String comment):UTF-8字符集

storeToXML(OutputStream os,String comment,String encoding)

loadFormXML(InputStream in)

4、相对路径与绝对路径

1)、绝对路径:盘符  windows:、lInux:/

2)、相对路径:当前项目、工程


5、类路径加载资源文件

类所在的根路径

1)、类.class.getResourceAsStream("/")

2)、Thread.currentThread().getContextClassLoader().getResourceAsStream("")


三、实现Map的几个接口

1、WadkHashMap 

引用分类:(面试

强引用:StrongReference:引用指向对象,gc(Garbage collection)运行时不回收

软引用:SoftReference gc运行时可能回收(jvm内存不够)

弱引用:WeakReference gc运行时立即回收

虚引用:PhantomReference类似于无引用,主要跟踪对象被回收的状态,

      不能单独使用,必须与引用队列(ReferenceQueue)联合使用


目的:避免对象长期驻留在内存中,解决垃圾回收机制回收时机问题

三个Map接口的实现类

WeakHashMap:

键为弱引用,回收键后自动删除key-value对象


IdentityHashMap:

键只以地址去重,而不是比较hashcode与equals。

注意:键是常量池中的字符串


EnumMap:

键必须为枚举的值

构造器:public EnumMap(指定枚举class对象)

四、同步控制与只读设置

同步控制多线程并发访问集合的线程安全
1、常用容器ArrayList HashSet HashMap 等都是线程不安全的
2、Collections提供了synchronizedXxx()方法,将制定容器包装成同步
synchronizedList();
synchronizedSet();
synchronizedMap();
不可变设置:“只读” 访问,Collections提供了三种方法
1、emptyXxx()空的不可变的集合
2、singletonXxx()一个元素不可变的集合
3、unmodifiableXxx()不可变容器



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值