1.为啥 String s = "w";可以,而 StingBuffer s1 = "w";不可以,而除了String类,其余都要创建对象?
2.还有 List list =new ArrayList();和ArrayList list1 = new ArrayList();有什么区别吗?
2.还有 List list =new ArrayList();和ArrayList list1 = new ArrayList();有什么区别吗?
List list =new ArrayList();和ArrayList list1 = new ArrayList();
list和list类型不一样
Integer i = 1;
Long l = 100L;
这些都是可以的...还有其他就不列举了
前者是多态的用法.
list 还可以指向其他实现了List接口的类的对象,比如list=new LinkedList();或 list=new Vector();
list1不行了,他只能指向ArraList对象了。
为什么呢?虽然String和StringBuffer都可修饰一串字符串。StringBuffer是可变对象,也是可变类!向StringBuffer赋值时是用append方法来赋值!而String其实是StringBuffer的扩展,核心还是他的,只是他扩着了可以直接这样赋值s="".是不可变对象他们都属于类,不过String是不可变类2.后面那个问题,其实就是List和Arraylist的区别!ArrayList是一个用数组来实现List的类!其实他们两那个写都一样!不一样的是后期维护工作!
一般一个借口比如这里的List类借口,他可能有许多实现的类比如(ArrayList和HashList)List list = new ArrayList()当你这样写的时候,你发现ArrayList满足不了你的需求时,你可以直接改成List list = new HashList();这样就不用该它要涉及到的List类以及用到它的list类
至于第二个问题跟多态有关,这东西说起来麻烦,自己去领会
这个还用问吗?
你学java se的时候,我想,你对java集合应该很了解,最起码集合的书型结构应该了解。