java容器一些知识

来源:互联网 发布:软件定制开发流程 编辑:程序博客网 时间:2024/06/05 14:20
1.java关于集合(list,set,map)的遍历与增强for循环的使用(包括iterator、for的传统遍历、增强遍历    )
www.xuebuyuan.com/1659025.html
map的遍历不能直接用Iterator遍历,需要先将key放到set视图中,list,set可以使用iterator、for遍历

2.Arrays此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。(很有用,可以把list,set转换为数组,然后在用此方法操作)
底层实现是:采用iterator遍历后再放入数组中

3.ArrayDeque接口的大小可变数组的实现。数组双端队列没有容量限制;它们可根据需要增加以支持使用,禁止 null 元素。此类很可能在用作堆栈时快于 Stack,在用作队列时快于 LinkedList。

4.HashMap    允许使用null键、null值,HashMap 的实例有两个参数影响其性能:初始容量 和加载因子。容量 是哈希表中桶的数量,初始容量只是哈希表在创建时的容量。加载因子 是哈希表在其容量自动增加之前可以达到多满的一种尺度。
map中的键不能重复,若有重复的键,则后面的值会将前面的值进行覆盖。HashMap不是线程安全的,HashTable是线程安全的。
HashTable存值的时候不允许key、value为null。

5.properties:Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。尽量使用setProperty,getProperty设值、取值
调用方法store、storeXml将属性值写入属性文件,调用load读取属性文件中的。
可使用类路径加载文件,load(类.class.getResourceAsStream(指定的文件名))  "/"表示根目论
load(Thread.currentThread().getContextClassLoader().getResourceAsStream(指定的文件名))  ""表示根目录,不需要加"/"

6.<import resource=""/>  spring中引用资源

7.java的引用分类,对象的强、软、弱和虚引用
强引用(StrongReference) :gc(Garbage Collection)运行时不回收,指的是A a = new A()
软引用(SoftReference) :gc运行时可能回收(jvm内存不够)
弱引用(WeakReference) :gc运行时立即回收
虚引用(PhantomReference)类似不引用,不能单独使用,需要与引用队列联合使用

8.String str = new String("hello world"); 
//弱引用管理对象
        WeakReference<String> ref = new WeakReference<>(str);
    //断开引用后,表明是垃圾对象
        str = null;
        //运行垃圾回收器
        System.gc();

9.    (System很重要)在 System 类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。

10.WeakHashMap以弱键 实现的基于哈希表的 Map。在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条目。

11.WeakHashMap的用途:可以作为简单缓存表的解决方案,当系统内存不够的时候,垃圾收集器会自动的清除没有在其他任何地方被引用的键值对。

12.hashMap比较的是键的hashCode与equeal,因为键是唯一的,而不同的键可能有相同的值

13.IdentityHashMap比较的是键的地址,并不比较hashCode与equal,键以地址去重

14.Collections(很有用) 此类完全由在 collection 上进行操作或返回 collection 的静态方法组成。它包含在 collection 上操作的多态算法,即“包装器”,包装器返回由指定 collection 支持的新 collection,以及少数其他内容。
使用Collections.synchronizedXXX()等可把list、map、set变为线程安全的

15.容器只读控制
(1)获得空列表的类型安全方式 Collections. emptyList()
(2)只包含一个元素,若超过一个元素则报错,Collections.singletonList()
(3)返回指定列表的不可修改视图。Collections.unmodifiableList()

16.多使用工具类,避免写 重复的代码。
jar包就是由一组字节码文件组成的,java的类库

17.Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库
www.cnblogs.com/peida/archive/2013/06/08/3120820.html

18.collections在java中的常见用法
blog.sina.com.cn/s/blog_a46817ff01017hqr.html

    
0 0