08 2016 档案

摘要:代理模式:为另一个对象提供一个替身或占位符以访问这个对象 代理模式为另一个对象提供代表,以便控制客户对对象的访问,管理访问的方式有许多种。 远程代理管理客户和远程对象之间的交互,虚拟代理控制访问实例化开销大的对象,保护 代理基于调用者对象方法的访问,代理模式有许多变体,例如:缓存代理,同步代理,防 阅读全文
posted @ 2016-08-24 17:20 玉曲风 阅读(148) 评论(0) 推荐(0)
摘要:public class Singleton{ private static Singleton uniqueInstance; private Singleton(){} public static syschronized Singleton getInstance(){ if(uniqueIn 阅读全文
posted @ 2016-08-23 16:28 玉曲风 阅读(139) 评论(0) 推荐(0)
摘要:简单工厂不是工厂模式,只是一种用法的习惯。 工厂方法模式:定义了一个创建对象的接口,但是由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。(可以说工厂方法是一个特殊的模板方法) public abstract class PizzaStore{ public Pizza orderPi 阅读全文
posted @ 2016-08-23 15:25 玉曲风 阅读(165) 评论(0) 推荐(0)
摘要:abstract class AbstactClass{ final void tempalteMethod(){ primitiveOption1(); primitiveOption2(); concreteOperation(); hook(); } abstarct void primiti 阅读全文
posted @ 2016-08-23 12:41 玉曲风 阅读(133) 评论(0) 推荐(0)
摘要:>>可变状态是至关重要的。 所有的并发问题都可以归结为如何协调并发状态的访问。可变状态越少,就越容易确保线程的安全性。 >>尽量将域声明成final类型,除非需要它们是可变的。 >>不可变对象一定是线程安全的。 不可变对象能极大地降低并发编程的复杂性,它们更为简单而且安全,可以任意共享而无需使用加锁 阅读全文
posted @ 2016-08-06 19:24 玉曲风 阅读(186) 评论(0) 推荐(0)
摘要:快速排序算法有几种种优化方式:基准点的选择,减去不必要的交换位置,优化小数组时的优化,递归的优化(在数组长度很短,用直接插入算法就行了) 时间复杂度(nlog2n)public class QuickSort { public static void main(String[] args) { in 阅读全文
posted @ 2016-08-06 19:05 玉曲风 阅读(203) 评论(0) 推荐(0)
摘要:归并排序,也就是二路归并排序 阅读全文
posted @ 2016-08-06 16:35 玉曲风 阅读(159) 评论(0) 推荐(0)
摘要:堆排序是对选择排序的改进(时间复杂度和希尔排序一样O(nlog2n)) 数据结构:完全二叉树(大顶堆,根节点都比左右节点大,小顶堆,根节点小于双亲节点) public class HeapSort { public static void main(String[] args) { int a[]= 阅读全文
posted @ 2016-08-06 16:20 玉曲风 阅读(143) 评论(0) 推荐(0)
摘要:希尔排序突破了O(n2),它的时间复杂度是O(nlog2n) 分组再排序 public insertSort(int a[],int n){ int i,j,temp; int gap=n;//间隔 do{ gap=gap/3+1; for(int i=gap;i<n-1;i++){ if(a[i] 阅读全文
posted @ 2016-08-06 15:01 玉曲风 阅读(176) 评论(0) 推荐(0)
摘要:向已经排好序的序列,插入一个元素 public insertSort(int a[],int n){ int i,j,temp; for(int i=1;i<n-1;i++){ if(a[i]<a[i-1]){ temp=a[i];//作为哨兵 for(j=i-1;k[j]>temp;j--){ k 阅读全文
posted @ 2016-08-06 14:46 玉曲风 阅读(159) 评论(0) 推荐(0)
摘要:选择排序:先不交换,先找到最小的,找到了再交换 public void selectSort(int a[],int n){ int i,j,temp,min;//min存放最小元素的位置 for(i=0;i<n;i++){ min=i; for(j=i+1;j<n;j++){ if(a[j]<a[ 阅读全文
posted @ 2016-08-06 13:27 玉曲风 阅读(157) 评论(0) 推荐(0)
摘要:冒泡的排序是两两比较(相邻的元素),以下算法算不上冒泡排序 //a需要排序的数组,n数组长度 public void bubbleSort(int a[],int n){ int temp; for(int $i=0;$i<n-1;$i++) for(int j=i+1;j<n;j++){ if(a 阅读全文
posted @ 2016-08-06 13:12 玉曲风 阅读(140) 评论(0) 推荐(0)
摘要:对于知根知底的东西可以用递归,不到万不得已,不推荐使用递归。如文件夹的层数,可以使用递归 递归的效率很低的。递归是在操作栈(不断的出栈和进栈),这个比较耗资源。(汉诺塔问题就是使用递归,函数自己调用自己) >迭代:循环结构,递归:选择结构 >>斐波那契数列,打印前40位的数字 //迭代的实现 pub 阅读全文
posted @ 2016-08-05 18:35 玉曲风 阅读(232) 评论(0) 推荐(0)
摘要:默认情况下是无法切换的,需要给root用户设置上密码 mars@mars-LIFEBOOK-LH531:~$ sudo passwd root[sudo] password for mars: 输入新的 UNIX 密码: 重新输入新的 UNIX 密码: passwd:已成功更新密码mars@mars 阅读全文
posted @ 2016-08-04 19:07 玉曲风 阅读(7814) 评论(0) 推荐(0)
摘要:事务处理: redis对事务的支持目前还是比较简单,redis只能保证一个 client发起事务中的命令可以连续执行,而中间不会插入其他 client的命令,当一个client 在一个连接中发出multi命令时,这个 连接会进入一个事务上下文,该连接后续的命令不会立即执行, 而是先放到一个队列中,当 阅读全文
posted @ 2016-08-03 21:42 玉曲风 阅读(208) 评论(0) 推荐(0)
摘要:1.安全性 2.主从复制 3.事务处理 4.持久化机制 5.发布订阅消息 6.虚拟内存的使用 安全性:设置客户端连接后进行任何其他指定前需要使用的密码 警告:因为redis速度相当快,所以在一台比较好的服务器下,一个 外部用户可在一秒钟进行150K次的密码尝试,这就意味着你需要指定 非常非常强大的密 阅读全文
posted @ 2016-08-03 19:39 玉曲风 阅读(168) 评论(0) 推荐(0)
摘要:键值得相关命令: keys * 返回满足给定patternd的所有key exists 确认一个key是否存在 del 删除一个key expire 设置一个key的过期时间 ttl 查看过期时间还有多久 move 将当前键移动到另一个数据库 select 选择数据库 默认一共16个数据库0到15, 阅读全文
posted @ 2016-08-03 18:57 玉曲风 阅读(140) 评论(0) 推荐(0)
摘要:sorted sets类型及操作: sorted set是set的一个升级版本,它是在set的基础上增加了一个顺序 属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会 自动重新按新的值调整顺序。可以理解为两列的mysql表,一列存value, 一列存顺序。操作中key理解为zset的 阅读全文
posted @ 2016-08-03 15:49 玉曲风 阅读(205) 评论(0) 推荐(0)
摘要:sets类型及操作: set是集合,它是string类型的无序集合。set是通过hash table实现的, 添加、删除和查找的复杂度都是O(1).对集合我们可以取并集、交集、差集。 通过这些操作我们可以实现sns中好友推荐(如QQ)和blog的tag(标签)功能。 sadd方法:添加元素 smem 阅读全文
posted @ 2016-08-03 15:13 玉曲风 阅读(234) 评论(0) 推荐(0)
摘要:redis的list类型其实就是一个每个子元素都是string类型的双向链表。 我们可以通过push,pop操作从链表的头部或者尾部添加删除元素,这样list即可以作为 栈,又可以作为队列。 lpush方法:从头部添加字符串元素 lrange方法:从list中取数据,从头部取 127.0.01:63 阅读全文
posted @ 2016-08-03 14:30 玉曲风 阅读(186) 评论(0) 推荐(0)
摘要:redis hash 是一个string类型的field和value的映射表。 它的添加、删除操作都是O(1)(平均),hash特别适合用于存储对象 将一个对象存储在hash类型总会占用更少的内存,并且可以更方便的存取 整个对象。 hset方法:设置hash field为指定值,如果key不存在,则 阅读全文
posted @ 2016-08-03 13:05 玉曲风 阅读(220) 评论(0) 推荐(0)
摘要:String是最简单的数据类型,一个key对应一个value,string类型是二进制安全的,redis的String可以包含任何数据, 比如jpg图片或者系列化的对象。 Set方法: 设置key对应的值为String类型的value,例如我们添加一个 name=xiaoming的键值对。 [roo 阅读全文
posted @ 2016-08-03 12:30 玉曲风 阅读(206) 评论(0) 推荐(0)
摘要:redis应用场景: 1.对数据高并发读写 2.对海量数据的高效存储和访问 3.对数据的高可扩展性和高可用性 做分布式扩展很简单,因为没有固定的表结构 redis介绍: redis是一个key-value存储系统, key的数据类型包含:Strings,hashes,lists,set(集合),zs 阅读全文
posted @ 2016-08-03 11:38 玉曲风 阅读(267) 评论(0) 推荐(0)