java基础
Fredok_915
微信公众号【技术架构公社】
展开
-
java队列——queue详细分析
Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Deque接 口。Queue的实现1、没有实现的阻塞接口的LinkedList: 实现了java.util.Queue接口和java.util.AbstractQueue接口 内置的不阻塞队列: PriorityQu...转载 2018-12-20 17:59:58 · 107 阅读 · 0 评论 -
LinkedList、ConcurrentLinkedQueue、LinkedBlockingQueue对比分析
写这篇文章源于我经历过的一次生产事故,在某家公司的时候,有个服务会收集业务系统的日志,此服务的开发人员在给业务系统的sdk中就因为使用了LinkedList,又没有做并发控制,就造成了此服务经常不能正常收集到业务系统的日志(丢日志以及日志上报的线程停止运行)。看一下add()方法的源码,我们就可以知道原因了:public boolean add(E e) { linkLa...转载 2018-12-20 18:04:23 · 539 阅读 · 0 评论 -
Java map 详解 - 用法、遍历、排序、常用API等
Map用法类型介绍Java 自带了各种 Map 类,这些 Map 类可归为三种类型:通用Map用于在应用程序中管理映射,通常在 java.util 程序包中实现:HashMap、Hashtable、Properties、LinkedHashMap、IdentityHashMap、TreeMap、WeakHashMap、ConcurrentHashMap专用Map通常我们不必亲自...转载 2018-12-20 18:44:38 · 238 阅读 · 0 评论 -
Java中的经典算法之选择排序(SelectionSort)
a) 原理:每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕。也就是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。(这里只介绍常用的简单选择排序)b) 简单选择排序的基本思想:给定数组:int[] arr={里面n个数据};第1趟排序,在待排序数据...转载 2018-12-26 14:53:24 · 126 阅读 · 0 评论 -
总结平衡二叉树概念、插入(旋转)对应java实现
一、定义及原理平衡二叉树要求对于每一个节点来说,它的左右子树的高度之差不能超过1,如果插入或者删除一个节点使得高度之差大于1,就要进行节点之间的旋转,将二叉树重新维持在一个平衡状态。这个方案很好的解决了二叉查找树退化成链表的问题,把插入,查找,删除的时间复杂度最好情况和最坏情况都维持在O(logN)。但是频繁旋转会使插入和删除牺牲掉O(logN)左右的时间,不过相对二叉查找树来说,时间上稳定了...原创 2018-12-21 19:00:57 · 577 阅读 · 1 评论 -
web优化必须了解的原理之I/o的五种模型和web的三种工作模式
web优化必须了解的原理之I/o的五种模型和web的三种工作模式===========================================图解五种I/O模型=========================================== 五种I/O: 1)阻塞I/0 2)非阻塞I/O 3)I/O复用 4)事件(信号)驱动I/O 5)异步I/O...转载 2019-01-15 16:43:21 · 264 阅读 · 0 评论