- 博客(23)
- 资源 (1)
- 收藏
- 关注
原创 Java8 Stream API介绍
Stream API是Java8中处理集合的关键组件,提供了各种丰富的函数式操作。Stream的创建任何集合都可以转换为Stream: //数组 String[] strArr = new String[]{"aa","bb","cc"}; Stream<String> streamArr = Stream.of(strArr); Stream<String> st
2016-09-01 00:34:22
14973
原创 Redis数据结构(二)字典
Redis字典其实就是Hash表,其实现和JAVA语言中的hashmap结构大同小异,按Key-Value方式存储键值对,但是又存在一定的差异。 java中的hashmap结构即包含hash表,又实现了rehash自我扩充; 而redis字典则通过dictht结构实现hash表,通过字典(dict)实现rehash(字典中包含一个dictht数组dictht ht[2])。Redis字典的实现
2015-05-16 13:36:36
842
原创 java tcp socket实现
tcpServer:public class MyTcpServer implements Runnable { private ServerSocket serverSocket; private ExecutorService pool = Executors.newCachedThreadPool(); public MyTcpServer(int port) throw
2015-05-12 00:36:11
923
原创 Redis消息队列
订阅操作命令为:subscribe [channel] [channel] ..,如【代码1】所示,即成功订阅频道[redis.blog]。发布操作命令为publish [channel] [message],如【代码2】所示,【图1】为订阅的客户端展示效果。 【代码1】:subscribe "redis. blog"【代码2】publish "redis.blog" "hello redis"【
2015-05-08 19:10:40
957
原创 设计模式(九)之责任链模式
今天来讲一个悲伤的故事,关于小明找小红的故事。加班狗小明某日不用加班,开开心心把家还,结果妻子小红不在家,发生了下面的一幕:上代码。首先定义好小红public interface Lover {}小红:public class WifeHong implements Lover { public WifeHong(Affairs affairs) { System.out.
2015-05-08 10:40:04
793
原创 Redis数据结构(一)简单动态字符串
Redis的字符串采用的是自定义的struct,名字叫做简单动态字符串(simple dynamic string,SDS)。结构如下:struct sdshdr{int len;int free;char buf[];};采用如此结构的好处是:【1】获取length的时候复杂度为O(1),不需要O(n);【2】动态分配空间,避免缓冲区溢出,避免每次修改或者append都重新分配;【
2015-05-07 17:37:35
1004
原创 一个简单的生产者消费者
使用ReentrantLock以及Condition实现的生产者消费者,也是java 1.5之后推荐写法,不再使用object类的notify()以及wait()方法。直接上代码:public class Stroge { private final int MAX_SIZE = 100; private LinkedList<Object> list = new LinkedList<
2015-05-07 14:41:55
524
原创 Hadoop学习笔记(四):HBase
HBase是在一个HDFS上开发的面向列的分布式数据库。HBase不是关系型数据库,不支持SQL。HTable一些基本概念Row key行主键, HBase不支持条件查询和Order by等查询,读取记录只能按Row key(及其range)或全表扫描,因此Row key需要根据业务来设计以利用其存储排序特性(Table按Row key字典序排序如1,10,100,11,2)提
2015-05-07 10:23:29
650
原创 Hadoop学习笔记(三):Hive简介
定义 Hive是一个构建在Hadoop上的数据仓库框架。可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。(来自百度百科~~)metastore m
2015-05-07 10:23:26
1096
原创 转帖-hadoop的JobId TaskId生成规则
在hadoop的任务job中,jobid是标志一个任务的唯一标志,可以用于定位到该job,查询该job相关信息,kill掉该job 。 jobId是如何生成的呢 ? 在一般的服务集群上我们通过JobTracker来管理job,该id既是通过JobTracke的getNewJobId()方法得到,具体代码如下: public synchronized JobID g
2015-05-07 10:23:24
1887
原创 Hadoop学习笔记(二):MapReduce的特性-计数器、排序
计数器 计数器是一种收集作业统计信息的有效手段,用于质量控制或应用级统计。说白了就是统计整个mr作业所有数据行中符合某个if条件的数量,(除某些内置计数器之外)。仅当一个作业执行成功之后,计数器的值才是完整可靠的。如果一个任务在作业执行期间失败,则相关计数器值会减小,计数器是全局的。 计数器分为以下几种: 1)内置计数器,内置的作业计数器实际上由j
2015-05-07 10:23:21
679
原创 Hadoop学习笔记(一):MapReduce的输入格式
Hadoop学习有一段时间了,但是缺乏练手的项目,老是学了又忘。想想该整理一个学习笔记啥的,这年头打字比写字方便。果断开博客,咩哈哈~~ 开场白结束(木有文艺细胞) 默认的MapReduce作业import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.conf.Configured;
2015-05-07 10:23:18
893
转载 HashCode相关
转帖,还是转帖哈希码产生的依据:哈希码并不是完全唯一的,它是一种算法,让同一个类的对象按照自己不同的特征尽量的有不同的哈希码,但不表示不同的对象哈希码完全不同。也有相同的情况,看程序员如何写哈希码的算法。 下面给出几个常用的哈希码的算法。 1:Object类的hashCode.返回对象的内存地址经过处理后的结构,由于每个对象的内存地址都不一样,所以哈希码也不一样。 2:String类的h
2015-05-07 10:23:16
475
转载 Java中的==和equals区别
中软国际电子政务部Jeff Chi总结,转载请说明出处。概述: A.==可用于基本类型和引用类型:当用于基本类型时候,是比较值是否相同;当用于引用类型的时候,是比较对象是否相同。 B.对于String a = “a”; Integer b = 1;这种类型的特有对象创建方式,==的时候值是相同的。 C.基本类型没有equals方法,equals只
2015-05-07 10:23:13
531
原创 设计模式(八)之单例模式
线程安全写法:public class Singleton { private Singleton() { } static class SigletonHandler { static Singleton instance = new Singleton(); } public static Singleton getInstance() {
2015-05-06 19:04:24
434
原创 设计模式(七)之观察者模式
被观察者接口:public interface IMonitorSubject { public void addListener(IMonitorListener listener); public void notifyListener(JobCtrl implJobCtrl);}观察者接口:public interface IMonitorListener { publi
2015-05-06 18:56:52
411
原创 设计模式(六)之抽象工厂模式
产品接口:public interface Car {}产品一:public class BMWSUV implements Car { public BMWSUV() { System.out.println("create BMW SUV."); }}产品二:public class BMWSportsCar implements Car { publ
2015-05-06 18:48:04
487
原创 设计模式(五)之工厂方法模式
产品类型接口:public interface Car {}产品工厂接口:public interface ICarFactory { public Car createCar();}产品一:public class BMW implements Car { public BMW(){ System.out.println("create BMW."); }
2015-05-06 18:41:59
415
原创 设计模式(四)之命令模式
命令接口:public interface Command { public void executor();}执行命令的真正实体:public class Diablo { private int currentLevel = 0; public void skillOne() { System.out.println("百裂拳!"); } pu
2015-05-06 18:35:47
428
原创 设计模式(三)之访问者模式
被访问者接口:public interface ITarget { public void doSomeThing(); public void accept(IVisitor visitor);}访问者接口:public interface IVisitor { public void visit(ITarget target);}被访问者:public class Tar
2015-05-06 18:13:46
410
原创 设计模式(二)之装饰器模式
定义一个代表被装饰事物的接口:public interface Coffee { public String getCoffer(); public double getPrice();}最初的具体事物:public class Starbucks implements Coffee { @Override public String getCoffer() {
2015-05-06 18:06:01
536
原创 设计模式(一)之适配器模式
**设计模式(一)之适配器模式**被适配的类:public class Adaptee { public void specificMethod(){ System.out.println("三脚插头"); }}适配接口public interface AppleInterface { public void phoneInterface();}适配器
2015-05-06 17:59:23
425
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人