teiba

导航

2019年3月29日 #

实现对HashMap的value排序

摘要: 问题:如何对HashMap中的value值进行排序 关键点:1.取HashMap的Map.Entry,放入List2.利用Collections.sort(List, Comparator<? extents T>)对Map.Entry中的value进行排序3.实现内部类Comparator,实现S 阅读全文

posted @ 2019-03-29 12:28 teiba 阅读(642) 评论(0) 推荐(0) 编辑

装饰者模式

摘要: 装饰者模式:动态的将额外的责任添加到对象上去,相对于继承,提供更加灵活的扩展方案。 装饰者模式,有4个抽象的类概念: 关系类图如下: 其中重点是:抽象装饰者接口继承了被装饰对象的接口,这点非常重要,它是能够进行动态装饰的关键,根据接口动态的去匹配具体构件类。 举例:咖啡店原本提供有2种咖啡:Coff 阅读全文

posted @ 2019-03-29 11:30 teiba 阅读(157) 评论(0) 推荐(0) 编辑

实现一个简单的二叉树容器,并且实现中序、先序、后续遍历

摘要: 二叉树定义:是一种树形结构,他的特点是每个结点最多只有两颗子树(即二叉树中不存在度大于2的结点),并且二叉树的子树有左右之分,其次序不能任意颠倒。 二叉树的性质: 二叉树的第i层上最多有 2^(i-1) 个结点,(i>=1); 深度为k的二叉树最多有 2^k - 1 个结点,(k >=1); 对任何 阅读全文

posted @ 2019-03-29 10:15 teiba 阅读(376) 评论(0) 推荐(0) 编辑

2019年3月27日 #

Java中java.util.concurrent包下的4中线程池代码示例

摘要: 先来看下ThreadPool的类结构 其中红色框住的是常用的接口和类(图片来自:https://blog.csdn.net/panweiwei1994/article/details/78617117?from=singlemessage) 为什么需要线程池呢?我们在创建线程的时候,一般使用new 阅读全文

posted @ 2019-03-27 17:08 teiba 阅读(307) 评论(0) 推荐(0) 编辑

2018年6月11日 #

常见的几种排序方法

摘要: 冒泡排序 原理:进行多次比较,每次比较都将较大的元素放置在后面,这样,一趟排序下来,就可以找到最大的数放置在数组的最后。 代码: 插入排序 原理:取待的其中一个,和已经排序好的序列比较,并且插入到其中,二分法排序是插入排序的一种优化。 代码特点: 1.取待排序的数组的第一位作为已经排好序的序列; 2 阅读全文

posted @ 2018-06-11 17:35 teiba 阅读(322) 评论(0) 推荐(0) 编辑

2018年5月26日 #

Redis基础入门

摘要: 学习redis之前,要了解NoSQL。。 一、NoSql概述 由于关系型数据库很难实现: 1.高并发读写 2.海量数据的高校率存储和访问 3.高可扩展性和高可用性 所以出现NoSql,(Not Only SQL)非关系型数据库,是不同于传统的关系型数据库的一种全新数据库管理系统的统称,用于超大规模数 阅读全文

posted @ 2018-05-26 18:48 teiba 阅读(203) 评论(0) 推荐(0) 编辑

2018年5月25日 #

HashMap源码解析

摘要: 变量: 构造方法: 走完构造方法,HashMap创建了一个空的数组,transient Entry<K,V>[] table = (Entry<K,V>[]) EMPTY_TABLE; 当使用put(K, V)存入键值对的时候,才会使用inflateTable(initialCapacity)初始化 阅读全文

posted @ 2018-05-25 11:28 teiba 阅读(218) 评论(0) 推荐(0) 编辑

2018年5月13日 #

ArrayList和Vector区别及源码

摘要: 本文基于jdk1.7 1.ArrayList 类图来自:作者 Java3y 源码分析: 1.1 属性 1.2 构造方法 Arrays.copyOf源码: 1.3 trimToSize方法, 修改当前 ArrayList实例的容量为存入的实际值数量的大小。 1.4 扩容方法,以确保它可以至少保存min 阅读全文

posted @ 2018-05-13 22:53 teiba 阅读(176) 评论(0) 推荐(0) 编辑

2018年5月7日 #

java创建线程的几种方式,了解一下

摘要: 1.继承Thread,重写run() 2.实现Runnable,重run() 3.实现Callable,重写call() 注意:Callable接口是一个参数化的类型,只有一个call方法,call返回类型是参数类型。 面试题:有线程A、B、C,A、B同时执行,A、B执行完毕之后,执行C 分析:考同 阅读全文

posted @ 2018-05-07 21:36 teiba 阅读(1481) 评论(0) 推荐(0) 编辑

2017年4月25日 #

oracle服务的一些问题,先发2个,以后慢慢添加~~

摘要: OracleOraDb11g_home1TNSLister服务启动后停止解决办法:1.修改文件C:\app\zhuwei\product\11.1.0\db_1\NETWORK\ADMIN\listener.ora和tnsnames.ora两个文件中Host的IP地址。2.修改注册表中HKEY... 阅读全文

posted @ 2017-04-25 13:54 teiba 阅读(192) 评论(0) 推荐(0) 编辑