java里面有一个LinkedList类,在查看它的源代码是发现它的底层实现实际上是双向循环链表,并且还是带头结点的,并且在进行插入和删除操作时也不需要移动头结点的指向,那么按照常规思路,header属性就应该被final修饰才对,可是我却发现它的header属性居然不是final类型的,有哪位大侠能够告诉我这是为什么呢? 

解决方案 »

  1.   

    可能某些情况建立linkedlist的时候里面是空的,会没有header的情况?
      

  2.   

    回复2楼,在LinkedList为空的情况下,它会产生一个只有头结点的链表的……
      

  3.   

    我的分数不够 来灌水,Java,linklist就是个链表
      

  4.   

    有些源码是不规范的,我看Core Java这本书里讲到SDK源码里java.awt里有个这样的东西
    public class Windows extends Container
    {
        String WarningString;
        ...
    }
    这里的WarningString还不加private呢,你想修改就能修改……
      

  5.   

    如果用final修饰的话 那么header的引用就不能改变了吧,linkedList里面不仅可以存放原生数据也可以存放引用型数据例如数组,那么header一旦指向下一个引用型数据就不能更改了,也就是说不能进行增删改了吧,我的一点浅识,不知道说的对不对。