Java基础知识对比
1、STRING与STRINGBUFFER的区别
2、ArrayList和Vector的区别,HashMap和Hashtable的区别
3、JAVA SERVLET API中forward() 与redirect()的区别?
1、STRING与STRINGBUFFER的区别。
1)它们都是处理字符串的类,但它们有一个最大的区别,那就是String对象是存储你不能改动的文本字符串,相反,如果你希望改动,则应使用StringBuffer类作为替换。
2)StringBuffer是可变的,而String是不可变的。
3)而且String用得多个的话会占用不同的内存:
如:String str = “bb”;
str = “aa”;
前一个bb的内存地址不变,当又给它赋值为aa时它又指向aa的地址,
而StringBuffer就不会这样.
:”==”比较的是两个对象的地址,”equals()”比较的是两个对象的值。
2、ArrayList和Vector的区别,HashMap和Hashtable的区别
答:就ArrayList与Vector主要从二方面来说.
一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的
二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半
就HashMap与HashTable主要从三方面来说。
一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现
二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的
三.值:只有HashMap可以让你将空值作为一个表的条目的key或value
原文:https://www.cnblogs.com/shangshen/p/11925916.html