- 博客(74)
- 收藏
- 关注
原创 【工具推荐】关于《轻笔记》
这是一款《轻笔记》工具,让瞬间的灵感(短文字、idea列表、图片、链接等)更容易被记录. https://wowule.cc/lightNotes
2022-11-15 13:42:17
213
2
原创 快如闪电的开源搜索引擎:Typesense ,比Elasticsearch更快更易用
就如同Redis使用内存存储数据一样(这在Redis出现之前是不敢想象的,几乎没有人把全部的mysql数据存储到内存中),搜索引擎也是,之前各家做法都是尽量存磁盘,需要的时候按需加载索引到内存,但是这个搜索引擎Typesense 另辟蹊径,,可能是内存比较廉价吧,所以速度上的优势就极其明显,。.........
2022-08-03 22:16:22
1363
简单_原型模式(Prototype)
原型模式说白了也就是克隆自身,为了解决某些复杂对象的创建工作而生的。网上许多关于原型模式的文章东西倒是说了很多而且还扯到了工厂模式等一些其他的模式,我个人认为那样真是啰嗦的要死不说还把问题搞负责了。克隆分为浅克隆和深克隆,浅克隆紧紧克隆对象的基本数据类型的值,深克隆会连引用类型也克隆。JAVA中凡是实现了java.lang.Cloneable接口的类都具有克隆功能,而这样的克隆...
2012-02-07 21:26:36
157
简单_适配器模式(Adapter)
[img]http://dl.iteye.com/upload/attachment/0062/7952/e51a3151-339d-332b-a00e-242a9bf562f4.jpg[/img]jdk中io流InputStreamReader/OutputStreamWriter就运用了适配器模式,其目的就是为了把字节流接口转换成字符流接口来使用。[color=red]写这...
2012-02-06 22:08:20
103
简单_调停者模式(mediator)/中介者模式
[img]http://dl.iteye.com/upload/attachment/0062/7446/215fc6b9-ed40-3ba9-a9d4-a969bf1b7efe.jpg[/img]调停者模式(mediator)/中介者模式:以唐僧作为调停者,孙悟空、八戒、沙僧他们互相进行问候.为例子。假设他们3个互相打招呼不用这个设计模式而是直接打招呼,那么以后有改动的话将会...
2012-02-05 14:20:12
137
简单_模板方法模式(Template Method)
[img]http://dl.iteye.com/upload/attachment/0062/7369/0050e697-6914-382b-8990-95dc86b9c968.bmp[/img]以“见人说人话见鬼说鬼话”来理解模板方法模式:[code="java"]package design.templateMethod2;/** * @author 作者 E...
2012-02-04 20:41:27
134
简单_代理模式(proxy)/装饰模式(decorator)
[img]http://dl.iteye.com/upload/attachment/0062/6556/cb8fec12-8155-3246-96a4-742f29cd7513.jpg[/img]代理模式是一种很常用的设计模式,其目的是对其他对象提供一种代理以控制对这个对象的访问。代理模式又分为静态代理和动态代理,静态代理是在程序运行之前就已经存在了代理类,动态代理是程序运行中在...
2012-02-02 21:36:38
121
简单_命令模式(command)
命令模式定义:命令模式用一句话表示就是说:一个命令一个类。在面向对象程式设计的范畴中,命令模式是一种设计模式,将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。先来看一看我本人认为每个人学设计模式不得不看的图,尽管“奇丑无比”,甚至曾经“束缚过我们的思想”[img]http://dl.iteye.com/upload/at...
2012-02-01 23:55:04
145
简单_从java ui事件模型看发布订阅模式和观察者模式的区别
jdk中的UI事件模型使用的是发布订阅模式,但是jdk也提供了观察者模式的支持,对于名字上的区别可能发现不了什么东东,为什么UI事件模型用的是发布订阅模式而非观察者模式,在参考了一些网上的文章后明白了一点,现记录下。先来看看jdk中ui事件模型的理论代码(参考jdk写的):[code="java"]package design.eventListener2;/** * @au...
2012-01-28 23:56:41
155
简单_工厂方法(Factory Method)模式
方法工厂模式属于创建型模式,很简单很实用,java.util.Collection.#iterator即运用了此模式。以下的代码是本人初学设计模式的简单理解,参考于java.util.Collection.#iterator[code="java"]package design.methodFactory2;/** * @author 作者 E-mail: jqsl20...
2012-01-27 22:50:13
141
简单_策略模式(Strategy)
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。(原文:The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchangeable. Strategy lets the algorithm ...
2012-01-27 21:45:53
95
原创 高效编写JAVA代码的几条建议(转)
(1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如: ThisIsAClassName thisIsMethodOrFieldName 若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母。这样便可标志出它们属于编译期的常数。 Java包(Package)属于一种...
2011-11-23 20:34:08
91
java正则表达式及java.util.regex包的学习
没有事做,就会堕落。。这个世界有太多的浮躁,要耐得住诱惑;要时刻告诫自己,认清方向,否则就可能就真的堕落了!!闲来无事学习了java正则表达式及java.util.regex包贴上学习的代码,虽然是入门级的东东,希望能以此方式记录下自己曾经努力过付出过。参考正则表达式[url]http://www.cnblogs.com/deerchao/archive/2006/...
2011-11-16 22:34:03
107
原创 quartz的配置(转自网络)
[code="java"]周允许的是1-7 其中1是周日 7是周六格式: [秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 1 秒 是 0-59 , - * / 2 分 是 0-59 , - * / 3 小时 是 0-23 , - * / 4 日 是 1-3...
2011-11-16 20:18:17
111
原创 [转自网络]freeMarker的常用语法(以后可能会用到)
[code="xml"]常用语法EG.一个对象BOOK1.输出 $…{book.name}空值判断:$…{book.name?if_exists },$…{book.name?default(‘xxx’)}//默认值xxx$…{ book.name!”xxx”}//默认值xxx日期格式:$…{book.date?string(’yyyy-MM-dd’)}数字格式:$…{...
2011-11-16 09:48:18
96
开源定时器quartz入门
[size=small][color=darkred]闲来无事学习了下quartz框架,其实JAVA下的定时器框架还有几个,比如java.util.Timer可以实现简单的定时器任务,但是呢这个东东有个缺点就是一个Timer内部只开了一个线程来跑的,所以它只适合做最简单的单任务事情,如果有多件事情在同一时刻发生,那么它只能做完其中一件事情才能再去做另外一件事情,请看:[url]http://jqs...
2011-11-15 20:03:15
129
freeMarker入门
freeMarker是一个 JAVA开源模版引擎下面以创建一个静态的HTML页面为例作为入门:首先需要去下载freeMarker的包,地址[url]http://www.freemarker.org/index.html[/url]该地址含有中文的pdf帮助文档[code="java"]package freemarker;import java.io.Buffered...
2011-11-14 22:26:30
95
原创 java.util.logging包的学习
[code="java"]package sunfa.lx;import java.io.IOException;import java.io.PrintWriter;import java.io.StringWriter;import java.text.SimpleDateFormat;import java.util.Date;import java.util.l...
2011-11-11 22:07:58
79
原创 mybatis中的一个OOXX
mybatis :mybatis XML中执行多条语句: begin update bs_cc_store_info t set t.cc_jgzt=3 where t.kbh=#{kbh}; update bs_cc_store_info t set t.bs_lock_status=0,t.bs_kb_status=0,t.bs_lock_ldd=1 where t.kb...
2011-11-08 15:11:05
500
原创 答复: 百度一面算法题(常数时间内求栈中最大值)
yeshaoting 写道 算法描述:一个栈stack,具有push和pop操作,其时间复杂度皆为O(1)。设计算法max操作,求栈中的最大值,该操作的时间复杂度也要求为O(1)。可以修改栈的存储方式,push,pop的操作,但是要保证O(1)的时间复杂度,空间时间复杂度无要求。思路:我借助一个变量count和一个数组空间(其实就是一个栈)完成该...
2011-11-04 23:36:41
263
原创 <转>李开复:算法的力量
[size=small]算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门,就产生了一种误解,认为 学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实,大家被这些公司误导了。编程语言虽然该学,但是学习计算机 算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论...
2011-11-04 19:17:58
107
简单_分治算法
[b]分治算法,多么简单的思想!可是它无处不在。btree,b+树中都有它的身影![/b][size=large]1、分治算法:[/size]分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。[size=large]2、二分法:[/size]利用分治策略求解时,所需时间取决于分解后子问题的个...
2011-10-29 19:44:40
104
由HashMap的实现联想到的
首先温故一下java.util.HashMap的实现[code="java"]int i = indexFor(hash, table.length);[/code][code="java"]static int indexFor(int h, int length) { return h & (length-1);}[/code]原理:java中的HashM...
2011-10-25 21:42:05
124
简单_随机平衡二叉树(Treap)
我们可以看到,如果一个二叉排序树节点插入的顺序是随机的,这样我们得到的二叉排序树大多数情况下是平衡的,即使存在一些极端情况,但是这种情况发生的概率很小,所以我们可以这样建立一颗二叉排序树,而不必要像AVL那样旋转,可以证明随机顺序建立的二叉排序树在期望高度是,但是某些时候我们并不能得知所有的带插入节点,打乱以后再插入。所以我们需要一种规则来实现这种想法,并且不必要所有节点。也就是说节点是顺序输入的...
2011-10-25 21:19:23
387
关于递归和尾递归的原理
[b][color=red]基础很重要,这是永远不变的真理。[/color][/b][code="java"]package sunfa;public class DiGui { public static void main(String[] args) { Stack stack = new Stack(5); for (int i = 0; i < 5; ...
2011-10-25 21:05:11
144
关于Swing打印二叉树
[img][/img]最近研究二叉树一类的树结构,总用调试的办法去搞好麻烦,想用界面显示树结构,想看是不是AVL啊,(红黑树那个还在弄,太麻烦),于是就想弄出界面来,考虑了下准备用flex做也网页图形的,毕竟研究过用flex绘图等简单的东西,又想想swing这东西还一直没弄过呢,学java的不会swing惭愧啊,就是今天给按钮加个点击事件都纠结了半天。。。。唉 性格所致 ,越是不会的东西越要去折腾...
2011-10-21 21:52:12
236
简单_伸展树(Splay tree)
如果你注意观察你会发现,输入法就打某个字,如果你下次还打那个字,那么它的位置将在它上一次位置的前面,如果你一直打某个字,那么它每次都往前移动一格或多格。所以不同的人使用搜狗输入法啊、紫光啊、QQ输入法啊都觉得好使,因为它会根据每个人的不同习惯把你经常打的字弄到靠近前面。输入法也是要求查询效率的,所以输入法其实也是btree,但是为了更加的智能它使用了另一种树结构-----------伸展树...
2011-10-21 21:00:55
133
原创 简单_Trie树与三叉Trie树
[code="java"]package sunfa.tree;import java.util.HashMap;import java.util.Iterator;import java.util.Map;/** * 参考:http://book.51cto.com/art/201106/269044.htm * Trie树,又称单词查找树或键树,是一种树形结...
2011-10-20 21:10:13
362
简单_快速选择算法(RANDOMIZED-SELECT)
[code="java"]package sunfa.midNum;import java.util.Arrays;import java.util.Comparator;import java.util.Random;/** * * 参考:--------------------------------------------- * http://blo...
2011-10-19 23:32:35
341
原创 字符匹配算法(KMP)
[code="java"]package sunfa.kmp;/** * 朴素字符串匹配算法 */public class SimpleKMP { public static void main(String[] args) { int index = simpleKmp("12444abababab", "444ababab"); System.out.p...
2011-10-18 22:15:59
76
原创 简单_堆排序算法
[code="java"]package sunfa.sort;import java.util.Arrays;import java.util.Comparator;import java.util.Random;public class HeapSort { public static void main(String[] args) { int n = ...
2011-10-18 16:19:25
67
原创 简单_插入排序(Insertion-sort)
[code="java"]package sunfa.sort;import java.util.Arrays;import java.util.Random;public class InsertionSort { public static void main(String[] args) { Random ran = new Random(); int...
2011-10-18 10:48:07
103
简单_二叉堆
堆是一种比较有用的数据结构,是二叉树的一种数组的表示形式。最大堆和最小堆是二叉堆的两种形式。 最大堆:根结点的键值是所有堆结点键值中最大者。 最小堆:根结点的键值是所有堆结点键值中最小者。 而最大-最小堆集结了最大堆和最小堆的优点,这也是其名字的由来。 最大-最小堆是最大层和最小层交替出现的二叉树,即最大层结点的儿子属于最小层,最小层结点的儿子属于最大层。 以...
2011-10-16 13:40:33
90
关于:一道腾讯面试题:从大量数字中取出top100
一道腾讯面试题:从大量数字中取出top100http://www.iteye.com/topic/628707虽然题目并不难,但看到许多的人回复了,当然有回复的水平高的也有低的反正各种回复千奇百怪。能想到用二叉树或堆来做的算想对思路了,用多线程部分排序的感觉至少思路上就差得远了。有个兄弟第一时间用TreeSet给出了代码,当然代码很简单,如下:[code="java"]pa...
2011-10-14 23:51:01
552
原创 BloomFilter(布隆过滤器)
[code="java"]package sunfa;import java.util.BitSet;import java.util.Random;/** * BloomFilter(布隆过滤器) * http://www.cnblogs.com/allensun/archive/2011/02/16/1956532.html * */public ...
2011-10-11 19:30:36
79
Timer和ScheduledExecutorService区别
Timer里面的任务如果执行时间太长,会独占Timer对象,使得后面的任务无法几时的执行ScheduledExecutorService不会出现Timer的问题(除非你只搞一个单线程池的任务区)Timer搞了一个最小堆,每次取距离当前时间最近的那个任务来执行,创建Timer的时间会创建TimerThread做为执行线程,所以一个Timer对应一个线程,一个线程当然不能同时执...
2011-10-09 23:59:58
81
原创 java io流之 装饰模式
初学java.io的时候容易被众多的IO类搞晕头,其实java.io还是很容易理解的,主要就是通过装饰模式来进行功能的扩充。扩充基类的功能,一般我们都是通过继承来解决的,但是继承会造成类的膨胀,而使用装饰模式就不会。其实装饰模式就是在扩展类里面搞了个被扩展类的引用而已。[code="java"]package design.decorator;/** * “装饰模式(D...
2011-10-05 21:41:31
114
原创 java nio学习笔记<一>
[code="java"]package nio;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import...
2011-10-05 21:04:03
86
原创 java.util.concurrent.atomic.*包的体会
java.util.concurrent.atomic.*包的体会[code="java"]package thread.concurrent.atomic;import java.util.HashMap;import java.util.Map;import java.util.Random;import java.util.concurrent.atomic....
2011-10-01 18:10:48
97
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人