1.为啥 String s = "w";可以,而 StingBuffer s1 = "w";不可以,而除了String类,其余都要创建对象?
2.还有 List list =new ArrayList();和ArrayList list1 = new ArrayList();有什么区别吗?

解决方案 »

  1.   

    StingBuffer 你写错了 StringBuffer
    List list =new ArrayList();和ArrayList list1 = new ArrayList();
    list和list类型不一样
      

  2.   

    list是一个接口,arraylist是实现它的一个类
      

  3.   

    1.  String 和 String 是2个类,都是继承于Object类的,他们之间没有继承关系,所以StringBuffer s1 = "w"是不行的2.  List只是一个接口,ArrayList是其具体的实现
      

  4.   

    还有就是关于第一点 
    Integer i = 1;
    Long l = 100L;
    这些都是可以的...还有其他就不列举了
      

  5.   

    "2.还有 List list =new ArrayList();和ArrayList list1 = new ArrayList();有什么区别吗?"
    前者是多态的用法.
    list 还可以指向其他实现了List接口的类的对象,比如list=new LinkedList();或 list=new Vector();
    list1不行了,他只能指向ArraList对象了。
      

  6.   

    1.“w”是一个String型,那么右面的就是String型,不能自动转换成StringBuffer对象上
    为什么呢?虽然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类
      

  7.   

    String s = "sldkfjsd"; 可以这样赋值是Java内部规定的,String是一个常用对象,这样赋值比较方便.
    至于第二个问题跟多态有关,这东西说起来麻烦,自己去领会
      

  8.   


    这个还用问吗?
    你学java se的时候,我想,你对java集合应该很了解,最起码集合的书型结构应该了解。