自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Nathan Yan

想要出类拔萃,就要努力至少一万小时

  • 博客(102)
  • 资源 (8)
  • 收藏
  • 关注

原创 个人翻译文集目录

以下文章发表在 并发编程网 了解 CMS 垃圾回收日志Java 正则表达式JVM实用参数(五)新生代垃圾回收

2015-07-02 13:54:09 596

原创 Creating JSON from Java

Jackson 是一般比较常用的JSON解析框架, Spring mvc 中就是用Jackson解析JSON的. 官方网址: https://github.com/FasterXML/jackson 需要注意 Jackson 有两个版本,1.X 版已经是废弃状态. 新版的是2.X . 本系列文章基于Jackson 2 讲解Java Bean 到 JSON要想把Java Bean 转换为 JSO

2016-08-17 15:44:09 700

原创 Maven 插件之 maven-antrun-plugin

虽然Maven已经代替Ant,成为Java 工业领域事实上的构建标准.但在某些情况下,如果可以用Ant命令,还是很方便的. 借助 maven-antrun-plugin 插件,可以在Maven执行时,额外执行Ant脚本. maven-antrun-plugin打包完成后,把构建结果复制到其他位置<plugin> <groupId>org.apache.maven.plugins</group

2016-08-17 14:37:22 14822

原创 MySQL 01 通过二进制包安装MySQL

原文二进制包是针对一些通用环境做的编译包,在大部分 linux平台上都能直接安装。相比 yum 和 rpm 安装,预编译二进制包安装的优势有: 1. 更灵活,可以自定义安装路径,不像 yum/rpm 那样,只能安装到固定陌路下 2. 可以安装最新版本, 不受发行版限制卸载原有MySQL大多数Linux版本会默认有MySQL,安装前需要卸载原MySQLrpm -qa | grep mysql  /

2016-03-20 12:43:39 693 1

转载 设计模式 02 创建类模式之简单工厂模式

工厂模式根据抽象程度的不同分为三种:简单工厂模式(也叫静态工厂模式)、工厂方法模式、以及抽象工厂模式。简单工厂模式,简单说就是有一个类,提供静态方法,可以创建多个对象。interface Human { public void Talk(); public void Walk();}  class Boy implements H

2015-07-09 21:14:08 613

原创 08 Java JUC 中的 ThreadPoolExecutor

通过 Executors 工具可以创建普通的线程池以及schedule调度任务的调度池。来看下内部是怎么实现的public static ExecutorService newFixedThreadPool(int nThreads) { return new ThreadPoolExecutor(nThreads, nThreads,

2015-07-01 21:44:06 377

原创 07 Java JUC 中的 Executor 框架 周期性任务调度

ScheduledExecutorService基于ExecutorService,是一个完整的线程池调度。另外在提供线程池的基础上增加了四个调度任务的API。schedule(Runnable command,long delay, TimeUnit unit):在指定的延迟时间一次性启动任务(Runnable),没有返回值。schedule(Callable callable, lon

2015-07-01 21:43:16 495

原创 05 Java JUC 中的 Executor 框架 提交线程

Executors类里面提供了一些静态工厂,生成一些常用的线程池。newSingleThreadExecutor:创建一个单线程的线程池。这个线程池只有一个线程在工作,也就是相当于单线程串行执行所有任务。如果这个唯一的线程因为异常结束,那么会有一个新的线程来替代它。此线程池保证所有任务的执行顺序按照任务的提交顺序执行。newFixedThreadPool:创建固定大小的线程池。每次提交一个

2015-07-01 21:42:09 450

原创 03 Java 并发 线程安全理论基础

线程安全问题线程安全问题可能是非常复杂的。竞态条件当两个线程竞争同一资源时,如果对资源的访问顺序敏感,就称存在竞态条件。导致竞态条件发生的代码区称作临界区。public class Counter { protected long count = 0; public void add(long value){

2015-07-01 21:40:57 377

原创 Linux 学习 01 基本命令

参数以-开始一行输入多条命令,用; 分割命令后面加 & 表示将命令放在后台运行关机[nathan@hadoop ~]$ shutdown -h now[nathan@hadoop ~]$ poweroff[nathan@hadoop ~]$ rebootHELP几乎所有的命令都可以使用-h或 --help获得使用方法

2015-07-01 16:50:35 369

原创 Linux 学习 00 系统启动流程

为了更好的了解Linux系统的运行原理,非常有必要了解系统启动的流程。首先,计算机会加载BIOS,BIOS默认会从硬盘上的第0柱面,第0磁道,第一个扇区中读取被称为MBR(主引导记录)的东西。一个扇区的大小是512字节,存放的内容是一段引导程序和分区信息,其中引导程序占446字节,磁盘分区表DPT占64字节,最后2字节是MBR的结束位。由于Grub本身比较大,常见方式是在MBR

2015-07-01 16:42:26 626

原创 02 Java 并发 JDK1.5之前的多线程

Java 1.5之前的版本,只提供了有限的多线程支持。1.5之前提供的多线程功能实在太过简陋,实际工作中已经很少用到了。本章简单介绍下 JDK 1.5 之前的多线程。定义并启动一个线程应用程序在创建一个线程实例时,必须提供需要在线程中运行的代码。有两种方式去做到这一点:1 提供一个Runnable对象。Runnable对象仅包含一个run()方法,在

2015-07-01 08:36:43 806

原创 Zookeeper 05 示例代码-主备节点切换

主备节点的切换,是分布式应用的基本要求。现在用 Zookeeper 实现主备节点自动切换功能。基本思路:1 多个服务启动后,都尝试在 Zookeeper中创建一个 EPHEMERAL 类型的节点,Zookeeper本身会保证,只有一个服务会创建成功,其他服务抛出异常。2 成功创建节点的服务,作为主节点,继续运行3 其他服务设置一个Watcher监控节点状态,4 如果主节点消

2015-06-18 15:41:31 4887

原创 Linux 命令 wget

wget是Linux/Unix命令行文件下载器,它是下载网站上文件的免费的非交互下载工具,它支持HTTP、HTTPS和FTP协议,也支持通过HTTP代理检索。Wget是非交互的,这就是说它可以在用户没有登录到系统时在后台工作。下载单个文件wget http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406

2015-06-17 21:55:36 419

原创 Zookeeper 04 异步访问ZooKeeper

ZooKeeper提供的Java API.每一个方法有一个异步调用版本。异步调用和同步调用的区别之处:同步调用中,需要处理异常。异步调用中已经把异常封装为返回码。 同时异步调用会得到更好的性能。这里要注意,一般来说异步调用会在命令发送到Zookeeper服务器之前,就返回继续执行之后的代码。推荐使用异步方法访问Zookeeper,除了可以简化异常处理,提高性能外。还应为Watcher的

2015-06-16 16:50:18 1574

原创 Zookeeper 03 Java访问Zookeeper

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务框架.本文主要针对ZooKeeper提供的Java API.搭建开发环境ZooKeeper 的压缩包中,已经提供所需的Jar文件。这里我们用Maven搭建环境。在POM文件中,加入zookeeper依赖:                            org.apache.zookeeper 

2015-06-16 15:09:05 461

原创 Zookeeper 02 zkCli

可以通过zkCli 启动客户端,连接Zookeeper服务器:bin/zkCli.sh接下来执行几个简单命令[zk: localhost:2181(CONNECTED) 0] ls / [NameService, configure, zookeeper][zk: localhost:2181(CONNECTED) 4] ls /Name

2015-06-16 09:08:45 562

原创 Zookeeper 01 数据模型

Sessions在向Zookeeper集群提交的任何请求之前,客户端都必须建立一个会话(session)。客户端提交的任何操作都与一个Session相关。当Session中断时,在本session期间创建的ephemeral节点会消失。Zookeeper 保证在一个Session内提交的命令,按FIFO的顺序执行。如果一个客户端交替创建Session,Zookeeper 无法保证跨

2015-06-16 09:04:07 453

原创 Zookeeper 00 安装

ZooKeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper本身可以以Standalone模式安装运行,不过它的长

2015-06-16 08:57:09 548

原创 ExtJS 4.2 03 Javascript 中的类

参考文章:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.htmlhttp://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance.htmlExtJS 比较难入门的原因,

2015-06-16 08:53:55 476

转载 ExtJS 4.2 02 ExtJs 基础

动态引用加载ExtJs有庞大的类型库,很多类可能在当前的页面根本不会用到,我们可以引入动态加载的概念来即用即取。这些代码都要写在Ext.onReady外面。1.动态引用外部Js//加载配置可用Ext.Loader.setConfig({ enabled: true });//动态引用“../ux/”目录下所有Js文件类,映射到对应命名空间Ext.Loader.setPat

2015-05-29 16:38:04 389

原创 ExtJS 4.2 01 Hello ExtJS

参考文章:http://www.cnblogs.com/youring2/p/3269503.html下载 ExtJSExtJS 目前的最新版本是 4.2,我们可以从官方网站下载最新版本的ExtJS。下载地址:http://cdn.sencha.com/ext/gpl/ext-4.2.1-gpl.zip官网地址:http://www.sencha.com

2015-05-12 17:30:18 679

原创 Java 加密框架 02 Base64

一段文字在经过 Base64 编码后面目全非,而经过Base64解码后又能恢复。这很有加密解密的意味。不过Base64 算法并不是加密算法,Base64 算法的转换方式很像古典加密算法中的单表置换算法。Base64 算法最早用于解决邮件传输问题。在早期电子邮件只允许ASCII码字符。非ASCII码字符在传输时会有问题,所以出现了 Base64编码。Base64 是一种基于6

2015-01-28 21:39:42 734

原创 Java 加密框架 00 密码学基础

密码学的分类按时间划分:古典密码,以字符为基本加密单元;现代密码以信息块为基本加密单元。按保密内容的算法划分:受限制算法:算法的保密性基于保持密码的秘密。这是古典密码学的主要特征。基于密钥算法:算法的保密性基于对密钥的保密。这是基于柯克霍夫原则设计的算法,这样的好处是:算法的公开有助于算法安全性的验证。这正是现代密码学的主要特征。按密码体制划分对称密码体制:

2015-01-28 21:35:57 906

原创 多线程死锁分析

使用 VisualVM 和 jstack 分析线程死锁场景

2014-02-25 11:22:42 815

原创 Java 序列化 格式

public class A implements Serializable {      private static final long serialVersionUID = 1L;      public byte version = 100;      public static void main(String[] args) throws IOExcept

2014-02-21 16:15:21 1349

原创 Java 序列化 Serializable

将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要了解被序列化的类需要实现 Serializable 接口,使用 ObjectInputStream 和 ObjectOutputStream 进行对象的读写。然而在有些情况下,光知道这些还远远不够,文章列举了笔者遇到的一些真实情境,它们与 Java 序列化相关

2014-02-21 16:12:00 742

原创 Java 设计模式 单例模式

通常单例模式在Java语言中,有两种构建方式:懒汉方式:指全局的单例实例在第一次被使用时构建。延迟初始化。饿汉方式:指全局的单例实例在类装载时构建。 急切初始化。1,饿汉式单例类/** * 饿汉模式,是线程安全的,但是性能不好 * @author Administrator */public class StarvingSingleton {

2013-12-23 22:58:13 705

原创 Hadoop MapReduce 深入MapReduce Job 提交

一个job的运行,涉及4个实体:客户端,JobTracker,TaskTracker,HDFS【客户端】使用Job.submit()提交任务,任务提交后。1 向 jobtracker 请求一个新的作业ID (JobTracker.getNewJobId())2 检查输出目录,例如输出目录已经存在,就不提交3 计算作业的输入数据分片。如果分片无法计算(输入路径不存在),就

2013-12-20 08:22:50 2611

原创 Hadoop MapReduce 过程概述

一个MapReduce任务就是一个Job。Job分为2个阶段:Map 和 ReduceMap函数接收一个形式的输入,然后产生一个形式的中间输出,Hadoop会把相同中间Key值的value集合在一起传给reduce函数。reduce 函数接收key,(list of values)> 形式的输入,然后对values集合进行处理,输出形式。一个MapReduce Job 包括

2013-12-20 08:16:54 1234

原创 冒泡排序 Bubble Sort

时间复杂度为 O(N^2)。虽然冒泡排序与插入排序的时间复杂度 应该避免使用冒泡排序,重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。public class BubbleSort

2013-12-10 09:24:09 616

原创 Hadoop HDFS SequenceFile

SequenceFile 是一个由二进制序列化过的 key/value 的字节流组成的文本存储文件,它可以在map/reduce过程中的input/output 的format时被使用。在map/reduce过程中,map处理文件的临时输出就是使用SequenceFile处理过的。 所以一般的SequenceFile均是在FileSystem中生成,供map调用的原始文件。Sequen

2013-12-07 12:35:22 2213

原创 插入排序 Insertion sort

是一种简单的排序方法。时间复杂度为 O(n^2),即N的平方。在数据量较小的情况下,是比较有效的排序方式。输入:N个数 输出:输入序列的一个排序 要求 a'1思想:把序列分为2部分:已排序,未排序。 每次从未排序中取一个数,与已排序中的值比较,插入到合适的位置。public class InsertSort {      public stat

2013-12-04 22:14:59 434

原创 归并排序 Merge sort

是一种简单的排序方法。时间复杂度为 O(N*logN)。思想:归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出

2013-12-04 22:13:53 570

原创 Hadoop HDFS 数据一致性

HDFS 会对写入的所有数据计算校验和(checksum),并在读取数据时验证校验和。针对指定字节的数目计算校验和。字节数默认是512 字节,可以通过io.bytes.per.checksum属性设置。通过CRC-32编码后为4字节。Datanode 在保存数据前负责验证checksum。client 会把数据和校验和一起发送到一个由多个datanode 组成的队列中,最后一个Da

2013-12-03 15:42:43 3998

原创 Hadoop Pig 安装

1 从http://pig.apache.org/ 下载安装包2 解压 tar xvf pig-0.12.0.tar.gz3 配置环境变量export PIG_CLASSPATH=$HADOOP_INSTALL/conf/export PATH=$PATH:/home/nathan/hadoop/pig-0.12.0/bin4 Pig 分为2中运行模式本

2013-11-25 15:32:09 747

原创 Hadoop MapReduce Shuffle and Sort

Hadoop 确保每个reduce 的输入都是按 key 排序的。系统执行排序的过程称为shuffle.Map 端,map 产生输出时,并不是简单的把数据写到磁盘。会先缓冲在内存中,并进行一些预排序。每个map 任务都有一个环形内存缓冲区,默认为100M,通过io.sort.mb设置,一旦缓冲区内容达到80%(io.sort.spill.percent,设置为0.80),后台线

2013-11-21 22:00:19 1029

原创 Hadoop HDFS 添加节点

1 在新结点上安装Hadoop,从集群中已存在的节点上复制配置文件2 为新节点与集群中已有节点配置免密码SSH登录3 添加新节点的IP 到Master的 conf/slaves 中4 在新节点上运行: bin/hadoop-deamon.sh start datanode 启动数据节点,日志查看$HADOOP_HOME/logs/hadoop-*-datanod

2013-11-20 20:55:10 995

原创 Hadoop MapReduce 计数器

Hadoop 为每个 job 维护了一系列的内置计数器。计数器被分为组通过定义一个 Java 枚举类型可以在代码中自定义计数器。枚举类型名称是计数器组名,枚举字段是计数器名称。public class SalarySumTemplate extends Configured implements Tool {      enum COUNTER {     

2013-11-20 20:46:23 938

转载 编程名言名句

下面是一些迄今为止最好的关于编程的名言名句。阅读它们时相信你会有几分愉悦,你可以在一些会谈场合引用它们,一定能为你的团队吸引到不少的好程序员。UNIX很简单。但需要有一定天赋的人才能理解这种简单。    –Dennis Ritchie软件在能够复用前必须先能用。–Ralph Johnson优秀的判断力来自经验,但经验来自于错误的判断。–Fred Brooks

2013-10-16 21:56:11 735

Spring MVC 1 资源文件

Spring MVC 1 资源文件 http://blog.csdn.net/yanliang1/article/details/12289305

2013-10-04

Spring-mvc

一个简单的Spring-MVC的工程,对应 http://blog.csdn.net/yanliang1/article/details/12287075

2013-10-04

VMware_Workstation_7.1.3

VMware_Workstation_7.1.3 有注册码。 可以直接打开lion的映像。 使用前需要打补丁

2012-03-28

Mac_OS_X_Lion_10.7.2_VMware_Image

VMware 的 映像文件,直接打开就可以用

2012-03-28

xcode4.2+ios5sdk for snowleopard

xcode4.2 ios5sdk snowleopard

2011-11-04

xcode4.2+ios5 for lion

xcode4.2+ios5 for lion

2011-11-04

jQuery.in.Action.2nd.Edition

jQuery.in.Action.2nd.Edition pdf

2011-03-03

新闻发布系统v0.9测试版

仿照popten的样子 用JSP+servlet+Mysql实现的一个简单的新闻发布系统.有完整的前台界面和后台管理.大家看看 给点意见

2007-03-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除