
Java基础
torvalds_29
这个作者很懒,什么都没留下…
展开
-
java基础之 Object
java基础之 Object Object hashcode与equals方法,都可以用来比较两个对象是否相等,Object中hashcode返回对象地址,equals比较的是内存地址,hashCode返回的是一个整数,一般情况hashcode计算要比equals简单,使用hash结构存储数据可以达到O(1)时间复杂度,如果直接使用equals循环比较时间复杂度为O(n)。因此使用hash结构存储...原创 2019-01-03 20:30:55 · 119 阅读 · 0 评论 -
java io与nio
io与nio一、概念二、NIO和IO的主要区别1、面向流与面向缓冲2、阻塞与非阻塞IO3、选择器(Selectors)三、NIO和IO如何影响应用程序的设计 一、概念 NIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多。在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套...原创 2019-01-03 20:33:48 · 135 阅读 · 0 评论 -
java基础之 Map
MapHashMapLinkedHashMapTreeMapHashTableConcurrentHashMap HashMap 数组加链表结构,数组初始容量为16,负载因子为0.75,扩容阀值为容量*负载因子或默认容量最大值+1,每次扩容2倍,如果扩容量达到最大可扩容量后,扩容阀值改为整型最大值,不再进行扩容。线性不安全,体现在需要扩容时使用头插法重新计算拷贝节点数据,多线程同时执行transf...原创 2019-01-02 22:15:39 · 125 阅读 · 0 评论 -
java基础之 List
List ArrayList非线性安全,体现在多个线程add值的时候数组下标没有相应移动导致值相互覆盖丢失与多线程add值时扩容机制有可能判断失误判断为不需要扩容,导致最终条件的元素超过数组大小越界异常。线性安可使用CopyonwriteList读写分离,写入移除元素时加锁。ArrayList每次扩容siz*3/2+1,遍历时不允许修改List元素个数,每次遍历输出元素时校验修改次数,如果修改次数...原创 2019-01-02 22:17:39 · 191 阅读 · 0 评论