string与stringbuffer的重要的区别就是string在内存中是不能被改变的
stringbuffer是可以改变的
经常的打印东西对调试程序有帮助
file类如果打了包 那么创建文件时他找的是包的上层路径而不是class的上层路径(默认是class的路径)
enum枚举类型
取特定值的类 可以用public enum MyColor{,,,};
调用的时候直接 MyColor m = MyColor.green;//静态变量
容器 1136
collection包括set、list 往里面装东西是一个一个的装 map是一对一对的装(两个)
set没有顺序并且不可以重复 list是有顺序 并且可以重复 重复是两个对象equals
map是定义了“键(key)--值(value)”两个两个装
当容器类想调用contains,remove需要比较两个对象是否相等必须涉及到equals和hashcode方法
自定义类里必须重写这两个方法来判断是不是两个相同的对象(制定相等的规则) //BasicContaner/BasicContainer.java
重写equals方法必须重写hashcode方法
两个对象是否equals主要是看两个对象的hashcode是否相等 hashcode主要是体现出索引
iterator是一个迭代器 统一的来遍历collection中所有元素的方法
关于增强的for循环
数组:for(int i : a) 其中a是数组 System.out.println(i);
Collection for(object o : c) System.out.println(o); 简单遍历打印的时候使用
Set的add方法与addAll方法
add是把后者当做一个对象加入
addAll是把后者在前者中没有的加入
List中比较其他object类型和Collection中的remove方法一样(list插入是之间在两个数中间进行插入操作挤一个内存出来)
Collections类 定义了关于list接口的算法
一定要在自定义类中实现comparable接口 解决比较两个对象之间的大小排序等问题 并在类中重写String类的compareTo方法来进行排序 TestIterator.java/ListCompareto.java
ArrayList读快改慢 删除的时候 把内存中要删除数之前和之后的数copy出来组成一个新的数组
LinkedList改快读慢
hash在两者之间
自动的打包自动解包在1.5之后加入auto-boxing/unboxing TestMap.java
可以把基础数据类型转换成对象 不用在new Integer(1);之间在堆上分配
泛型
在集合类使用的时候使用泛型
能直接往里面扔东西
implements compareTo<类名>既是泛型