一 string为什么是final
这个问题可以从两方面考虑 效率和安全性
当string类被声明为final时,其相应的string的方法也为final,能够提高代码的执行效率
当string类被声明为final时,表明其不可被继承,也就是说如果有一个string的引用其一定是string对象,而不可能是其他对象
二 string中的方法
erquals hashcode toendwith split trim indesxof
三 equals == hashcode
比较两个对象是否相同使用== 对于地址比较
equals 对于基本数据类型 其比较的是值是否相同 对于其他还是比较其对象是否相同 但是有些类中会重写equals方法如string 其比较的还是值是否相同
hashcode
存入对象时 会首先判断其hashcode是否相同,若不重复直接插入,若重复,使用eauals方法,若不同直接插入,相同则不插入
也就是说equals方法若为true则hashcode一定相同,hashcode相同equals不一定为true
四 hashmap hashtable currenthashtable
hashtable 是线程安全的,不允许null作为key值,实现了map接口以及directionary接口,初始容量也不同
五 set list
set 无序 不可重复
list 有序 可重复