- 博客(7)
- 资源 (7)
- 收藏
- 关注
转载 HashMap的实现原理
1.HashMap的数据结构 数组的特点是:寻址容易,插入和删除困难;而链表的特点是:寻址困难,插入和删除容易。那么我们能不能综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构?答案是肯定的,这就是我们要提起的哈希表,哈希表有多种不同的实现方法,我接下来解释的是最常用的一种方法—— 拉链法,我们可以理解为“链表的数组” ,如图: 从上图我们可以发现哈希表是由数组+链表组成的...
2018-08-21 10:05:48 138
转载 MySQL中MyISAM与InnoDB区别及选择
InnoDB:支持事务处理等 不加锁读取 支持外键 支持行锁 不支持FULLTEXT类型的索引 不保存表的具体行数,扫描表来计算有多少行 DELETE 表时,是一行一行的删除 InnoDB 把数据和索引存放在表空间里面 跨平台可直接拷贝使用 InnoDB中必须包含AUTO_INCREMENT类型字段的索引 表格很难被压缩MyISAM:不支持事务,回滚将造成不完全...
2018-08-07 15:32:51 213
转载 用redis实现消息队列(实时消费+ack机制)
消息队列首先做简单的引入。MQ主要是用来:解耦应用、 异步化消息 流量削峰填谷 目前使用的较多的有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ等。 网上的资源对各种情况都有详细的解释,在此不做过多赘述。本文 仅介绍如何使用Redis实现轻量级MQ的过程。为什么要用Redis实现轻量级MQ?在业务的实现过程中,就算没有...
2018-08-07 15:12:21 2107
转载 BIO与NIO、AIO的区别
IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到拒绝请求,...
2018-08-06 11:36:59 131
转载 浅谈Java 10的10个新特性
Java 9才发布几个月,很多玩意都没整明白,现在Java 10又要来了。这时候我真想说:线上用的JDK 7,甚至JDK 6,而JDK 8 还没用熟,JDK 9 才发布不久不知道啥玩意,JDK 10……刚学Java的同学是不是感觉一脸蒙逼?就连我这个老司机也同样感觉如此!Java 更新越来越快,我们做技术的也要跟上步伐,不然总会慢别人一拍,这新东西从国外到国内应用一般要好几年的时间...
2018-08-03 14:49:48 128
转载 Java 9 新特性简述
Java 8 发布三年多之后,已经于在2017年9月21日发布了。 你可能已经听说过 Java 9 的模块系统,但是这个新版本还有许多其它的更新。 这里有九个令人兴奋的新功能。Java 平台级模块系统Java 9 的定义功能是一套全新的模块系统。当代码库越来越大,创建复杂,盘根错节的“意大利面条式代码”的几率呈指数级的增长。这时候就得面对两个基础的问题: 很难真正地对代码进行封装, 而...
2018-08-03 10:19:21 80
转载 HashMap、hashTable、ConcurrentHashMap的区别
HashMap和HashTable的区别一种比较简单的回答是:HashMap是非线程安全的,HashTable是线程安全的。HashMap的键和值都允许有null存在,而HashTable则都不行。因为线程安全、哈希效率的问题,HashMap效率比HashTable的要高关于使用ConcurrentHashMap的理由:众所周知,哈希表是中非常高效,复杂度为O(1)的数据结构,...
2018-08-03 09:49:19 165
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人