可能是新手的原因,总是会遇见莫名其妙的问题,而我总是又喜欢抠一些小细节,于是就有了下面的问题:
1,对遇见的问题想不明白,就一步一步的跟程序,看看是哪里添加了null(我的问题就是ArrayList总是添加了一个null),万能解决问题的方法就是一步一步跟程序看看是哪行代码添加的null
元素9插入的为null, 一步步跟,看下原因吧:
刚初始化ArrayList类型的 nearWords, 查看图右边两个红色椭圆内的值,size = 0; Object[0]
此时向List中存储一个元素“The” 查看上图右侧红色椭圆里的内容, size = 1, Object[10]
arrayList是可变数组,不给10的话他会无限增长,给了10是设定他的能存10个object的对象
当为List<T>对象添加第一个Item元素时,List<T>对象会申请能存储10个Item元素的内存空间,然后将Item元素存放在申请的空间里
更为详细的可以参考的文献是:http://blog.csdn.net/loganwong/article/details/24433361
2,两个独立的List<String>结构,在调试的时候类型会不一样,具体如下:
两个List<String>类型,调试的时候:segNearWords的类型是ArrayList<E>, specialWords的类型是Arrays$ArrayList<E>, 真是个大大的问题?????
究其原因是:segNearWords 初始化为 new ArrayList<String>();
specialWords的初始化Arrays.asList("", "", "","");
初始化和赋值方式不一样
3. 程序代码行前出现的黄色尖头,我一直不明白为什么有时候会出现黄色尖头,后来才发现一个规律:
如果我用快捷键 Ctrl + H 在程序搜索东西的时候,搜索到的程序片段出现的代码行前就会出现黄色尖头,黄色尖头应该是指搜索结果所在行所给的提示的。
感觉还有个问题需要写的,一打岔又给忘记了,好吧,想起来再写。