20180417
集合类 Collection
如果是实现了list接口的集合类,具备的特点是有序,可重复;
如果是实现了set接口的集合类,具备的特点是无序,不可重复;
Collection中的方法 增加 删除 查看
add("添加任意类型的元素到集合中");
addall("添加一个集合的元素到另外一个集合中")
clear("") 清空集合中的元素
remove 删除集合中指定的元素 删除成功返回true,删除失败返回false
removeall() 删除两个集合中的交集元素
retainall() 保留两个集合的交集元素,其他元素删除
isEmpty() 集合是否为空
contains() 是否包含指定元素 !!!
日期类 Calendar
日期格式化类 SimpleDateFormat
两个方法 1 format 把日期转换为指定的字符串 2 parse 把字符转换为日期;
StringBuffer与String是不同的类型,不能进行强制的类型转换。下面的两个是错误的
StringBuffer s = “abc”; //赋值类型不匹配
StringBuffer s = (StringBuffer)”abc”; //不存在继承关系,无法进行强转
StringBuffer对象和String对象之间的互转的代码如下:
String s = “abc”;
StringBuffer sb1 = new StringBuffer(“123”);
StringBuffer sb2 = new StringBuffer(s); //String转换为StringBuffer
String s1 = sb1.toString(); //StringBuffer转换为String
20180414
==和equals ==是用来判断对象的内存地址是否相等,equals方法默认是用来判断对象的内存地址是否相等。但是String类重写了equals方法,判断的是内容是否相等。String str1="hello"; String str2="hello"; String str3=new String("hello"); String str4=new String("hello"); str1==str2 true; str2==str3 false; str3==str4 false; str3.equals(str4) true; 解释: String str1="hello"; 先去字符串常量池中检查是否有"hello",如果有,则把地址给str1,如果么有,则在字符串常量池中创建一个"hello",然后把地址给str1;而String str3=new String("hello"); 则是先去字符串常量池中检查是否有"hello",如果有,则将给内容拷贝一份到堆内存中,并将地址给str3;所以new String("hello")这个动作是创建了两个对象。如果常量池中没有"hello" 则先在常量池中穿件一个"hello" 然后再将给内容拷贝一份到堆内存中,并将地址给str3。
Java StringBuffer 和 StringBuilder 类
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。