Java基础语法知识

Java基础知识对比

1、STRING与STRINGBUFFER的区别

2、ArrayList和Vector的区别,HashMap和Hashtable的区别 

3、JAVA SERVLET API中forward() 与redirect()的区别?

1、String与StringBuffer 与StringBuilder的区别。 
1)它们都是处理字符串的类,但它们有一个最大的区别,那就是String对象是存储你不能改动的文本字符串,相反,如果你希望改动,则应使用StringBuffer类作为替换。

2)StringBuffer是可变的,而String是不可变的。
3)而且String用得多个的话会占用不同的内存:
如:String str = “bb”;
str = “aa”;
前一个bb的内存地址不变,当又给它赋值为aa时它又指向aa的地址,
而StringBuffer就不会这样.
:”==”比较的是两个对象的地址,”equals()”比较的是两个对象的值。

java.lang.StringBuilder一个可变的字符序列是5.0新增的。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。

该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。两者的方法基本相同。

2、ArrayList和Vector的区别,HashMap和Hashtable,Map的区别 
答:就ArrayList与Vector主要从二方面来说
.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的 
.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半 
HashMap与HashTable主要从三方面来说。 
.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现 
.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的 
.值:只有HashMap可以让你将空值作为一个表的条目的key或value 

Map集合的特点:
1、Map集合一次存储两个对象,一个键对象,一个值对象
2、键对象在集合中是唯一的,可以通过键来查找值
HashMap特点:
1、使用哈希算法对键去重复,效率高,但无序
2、HashMap是Map接口的主要实现类

原文地址:https://www.cnblogs.com/shangshen/p/11925916.html