Java多线程系列(0)基础概念

废话就不多说了,直接上总结吧线程的状态(API文档翻译)看了很多网上的那些关于Java中线程的状态转换图,但是我觉得比较靠谱的还是根据源代码中所定义的状态整出来的状态图。也是看到别人的指点吧。源代码位置:public static enum Thread.StateA thread can be i
阅读更多

Java中的NIO学习笔记

流与块的比较原来的 I/O 库(在 java.io.*中) 与 NIO 最重要的区别是数据打包和传输的方式。正如前面提到的,原来的 I/O 以流的方式处理数据,而 NIO 以块的方式处理数据。面向流 的 I/O 系统一次一个字节地处理数据。一个输入流产生一个字节的数据,一个输出流消费一个字节的数据。
阅读更多

try、catch、finally与return的执行顺序问题

finally一定会执行return以最后一次为准return后的finally是否修改了数据,得看具体类型try{} catch(){}finally{} return按照正常的顺序执行:有错会执行catch,finally都会执行,最后执行return。 private static in
阅读更多

Java中的值传递

在知乎上面看到的关于Java中值传递与引用传递的回答,非常赞!回答一作者:Intopass链接:https://www.zhihu.com/question/31203609/answer/50992895来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。首先,不要纠结于
阅读更多

HashMap源代码分析

HashMap 是日常工作开发中经常使用到的一个集合类,并且 hash 这一类数据结构有着类似的实现,比如 redis 中的 hash 结构与 HashMap 就有着惊人的类似。因此读完 HashMap 会有一种举一反三的感觉,非常值得学习。继承关系简要图HashMap类前注释(搓翻译)挑重点看,挑
阅读更多

Set的常用实现类源码分析

Set的实现基本上是依靠于相应的Map实现,从某种意义上来说,了解Set,只需要去分析相应的Map就可以了。Set实现类的继承关系图HashSet 源码简要分析翻开源码我们我可以清楚地看到HashSet中有一个变量map,它的类型是HashMap。不难想到,HashMap的键值是一个不可重复的集合,
阅读更多

LinkedList源码阅分析

LinkedList里面涉及到的一些操作,非常细致,以避免出现的空指针,理解后对于其优点与缺点会有一个更加整体的认识吧。继承关系图(对比ArrayList)元素的存储结构在LinkedList中,每一个元素都是Node存储,Node拥有一个存储值的item与一个前驱prev和一个后继next,如下:
阅读更多

Iterator、Iterable、ListIterator与ArrayList

Iterable从前文的继承关系图来看,Collection继承自Iterable。其接口详情如下:实现这个接口,就可以使用"for-each"循环来遍历其中的元素. 参考For-each Loop.// 此处返回一个Iterator,以遍历集合public Iterator&l
阅读更多