自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DK的专栏

JAVA开发工程师,好记性不如烂笔头,一点一点的积累,一堆一堆的收货,哈哈!

  • 博客(42)
  • 资源 (6)
  • 问答 (3)
  • 收藏
  • 关注

转载 Java中的线程(十三)- ThreadLocal的设计与使用

在jdk1.2推出时开始支持java.lang.ThreadLocal。在J2SE5.0中的声明为:public class ThreadLocal extends ObjectThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是thread local variable(线程局部变量)。也许把它命名为ThreadLocalVa

2013-11-30 11:33:28 596

转载 Java中的线程(十二)- 并发集合类

本文由作者收集整理所得,作者不保证内容的正确行,转载请标明出处(http://blog.sina.com.cn/s/blog_616e189f0100rw7x.html)。作者:关新全Java多线程 阻塞队列和并发集合       本章主要探讨在多线程程序中与集合相关的内容。在多线程程序中,如果使用普通集合往往会造成数据错误,甚至造成程序崩溃。Java为多线程专门提供了特有

2013-11-30 11:28:55 822

转载 Java中的线程(十一)- AtomicInteger的用法

J2SE 5.0提供了一组atomic class来帮助我们简化同步处理。基本工作原理是使用了同步synchronized的方法实现了对一个long, integer, 对象的增、减、赋值(更新)操作. 比如对于++运算符AtomicInteger可以将它持有的integer 能够atomic 地递增。在需要访问两个或两个以上 atomic变量的程序代码(或者是对单一的atomic变量执行两个

2013-11-30 11:24:18 5501

翻译 云计算(七)-HDFS利用QJM实现HA(HDFS High Availability Using the Quorum Journal Manager)

目的本指南概述HDFS的高可用性(HA)的特性,以及如何配置和管理HA HDFS集群,使用QJM特性。本文假设读者有一个大致了解通用组件和一个HDFS集群中的节点类型。详情请参阅HDFS架构指南。注意:QJM或者共享存储本指南将要讨论如何配置并利用QJM实现HA通过在活动的NameNode与备份的NameNode之间共享edit日志,对于如何通过共享存储代替QJM实

2013-11-30 11:17:35 4414 1

翻译 云计算(六)-HDFS 用户手册(Hadoop2.2)

HDFS Users Guide这篇文章作为工作在Hadoop分布式文件系统(HDFS),无论是作为Hadoop集群的一部分还是作为一个独立的通用的分布式文件系统的用户的一个起点。HDFS设计用来在多种环境中轻松的使用,HDFS的工作知识非常有助于对一个特定集群配置的提升和诊断工作。综述HDFS是Hadoop应用程序所使用的主要分布式存储。一个HDFS集群主要有

2013-11-28 21:23:10 1940

转载 云计算(五)- Hadoop FS Shell命令

FS Shell调用文件系统(FS)Shell命令应使用 bin/hadoop fs  的形式。 所有的的FS shell命令使用URI路径作为参数。URI格式是scheme://authority/path 。对 HDFS文件系统,scheme是hdfs ,对本地文件系统,scheme是file 。其中scheme和 authority参数都是可选的,如果未加指定,就会使用配置中指定

2013-11-25 19:03:14 896

原创 云计算(四)- Hadoop2.2.0命令大全

概述所有hadoop的命令都是在bin/hadoop下,不需要参数进行调用,一些默认的参数和用法如下:用法: hadoop [--config confdir] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]COMMAND_OPTIONDescription--config confdir

2013-11-25 18:49:32 1966

转载 云计算(三)- Hadoop2.2.0编译安装

Hadoop-2.2.0编译安装步骤  环境: 系统 CentOS 6.3 64位 * 3  Master   192.168.80.90Slave1   192.168.90.91Slave2   192.168.80.92软件: Hadoop-2.2.0-src.tar.gz   一,准备环境 1.1  分别设置三台节点ip地址(固定

2013-11-25 09:05:10 2276

原创 云计算(二)- Hadoop2.2 集群安装

环境准备拷贝一份master的虚拟机文件并重新命名为node1启动两台虚拟机setup命令修改node1 ip重启服务service network restartvi/etc/sysconfig/networkhostnamenode1删除datanode没用的数据文件修改主机名修改slaves运行master启动节点cd /home/soft

2013-11-25 08:17:44 1040

原创 云计算(一)- Hadoop2.2 单点安装

软件CentOS-5.8-i386  Hadoop2.2.0 VMWare 8 Eclipse JUNO JDK 7u45 FileZilla Putty规划两台虚拟机组成的集群(下篇介绍集群,机器差带不起来更多了):192.168.1.103 master192.168.1.133 node1安装基础环境:安装操作系统并使用桥连方式设置主机名为

2013-11-24 13:08:26 2400

转载 Java中的线程(十)- condition lock

Lock and Condition Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也应该是一个对象。两个线程执行的代码片段要实现同步互斥的效果,它们必须用同一个Lock对象。l读写锁:分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,这是由jvm自己控制的,你只要上好相应的锁即可。如果你的代码只读数据,可以很多人同时读,但不能同时写

2013-11-19 20:58:23 930

转载 Java中的线程(九)- Executor框架

Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等。他们的关系为: 并发编程的一种编程方式是把任务拆分为一些列的小任务,即Runnable,然后在提交给一个Executor执

2013-11-18 20:41:45 864

转载 Java虚拟机类加载机制浅谈

转载自http://computerdragon.blog.51cto.com/6235984/1223354Java语言是一种编译后再经过解释器执行的过程, 解释器主要就是如何处理解释Class文件的二进制字节流。JVM主要包含三大核心部分:运行时数据区,类加载器和执行引擎。       虚拟机将描述类的数据从Class文件加载到内存,并对数据进行校验、准备、解析和初始化

2013-11-18 15:26:28 841

原创 JVM体系结构

Java虚拟机(Java VirtualMachine,JVM)是软件模拟的计算机,它可以在任何处理器上(无论是在计算机中还是在其他电子设备中)安全兼容地执行保存在.class文件中的字节码。Java虚拟机的“机器码”保存在.class文件中,有时也可以称之为字节码文件。Java程序的跨平台特性主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行,Java虚拟机中的Java

2013-11-18 13:38:27 1923

转载 JVM垃圾回收(GC)原理

一、相关概念 基本回收算法 1. 引用计数(Reference Counting) 比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。 2. 标记-清除(Mark-Sweep) 此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍

2013-11-17 18:00:52 841

转载 CMS GC总结

转载自http://www.iteye.com/topic/473874 首先感谢阿宝同学的帮助,我才对这个gc算法的调整有了一定的认识,而不是停留在过去仅仅了解的阶段。在读过sun的文档和跟阿宝讨论之后,做个小小的总结,如果有谬误,敬请指正。    CMS,全称Concurrent Low Pause Collector,是jdk1.4后期版本开始引入的新gc算法,在jdk5和j

2013-11-17 17:55:49 771

转载 Java中的线程(八)- Single Threaded Execution模式

单线程执行模式(Single Threaded Execution Pattern)是最简单的多线程设计模式,几乎所有其他的模式都在不同程度上应用了该模式。先看一个程序,通过它可以体验多线程程序无法正确执行的场景,这里所写的是个关于“只能单个通过的门”的程序:有三个人频繁地、反复地经过一个只能容许单人经过的门,当人通过门的时候,这个程序显示出通过人的“姓名”与“出生地”,其代码如下: 

2013-11-17 16:11:04 794

原创 Java中的线程(七)- 生产者消费者模式

什么是生产者消费者模式某个线程或进程负责产生数据,这些数据由另一个线程或进程来负责处理。产生数据的线程称为生产者;而处理数据的线程称为消费者。在生产者与消费者之间在加个缓冲区,我们形象的称之为仓库,生产者负责往仓库了进商品,而消费者负责从仓库里拿商品,这就构成了生产者消费者模式。结构图如下:生产者消费者的参与者

2013-11-17 15:51:35 806

转载 JDK5.0垃圾收集优化之--Don't Pause

作者:江南白衣,最新版链接:http://blog.csdn.net/calvinxiu/archive/2007/05/18/1614473.aspx,版权所有,转载请保留原文链接。      原本想把题目更简单的定为--《不要停》的,但还是自己YY一下就算了。      Java开发Server最大的障碍,就是JDK1.4版之前的的串行垃圾收集机制会引起长时间的服务暂停,明白原理后

2013-11-17 12:14:37 783

原创 Java中的线程(六)- Guarded Suspension 模式

什么是Guarded Suspension 模式

2013-11-13 12:14:36 1429 1

原创 多线程设计模式

多线程模式总共有 13 个 Pattern,它们分别是Single Threaded Execution Pattern(一次只能一个线程执行的模式)Immutable Pattern (不可变模式)Guarded Suspension Pattern (保护停止模式)Balking Pattern (Balking模式, 实在不知道怎么称呼)Producer-Consumer P

2013-11-10 11:07:24 562

转载 由迅雷笔试题想到的——Guarded Suspension Pattern设计模式

有个网友,发了个帖子其中说到了迅雷的笔试题。帖子地址如下:http://topic.csdn.net/u/20091129/21/4bbf398d-431a-4f8e-accc-b8de6572b8af.html 其中有道关于多线程的题目,觉得挺好玩,拿来分析一下:有三个线程ID分别是A、B、C,请有多线编程实现,在屏幕上循环打印10次ABCABC… 

2013-11-10 10:34:21 1000

原创 Java中的线程(五)- Master-Worker模式

什么是Master-Worker模式Master-Worker模式(有些时候也称作Master-Slave 或者 Map-Reduce模式)是用来并行处理。是通过master和worker线程或进程的协作完成计算,其中master进程负责接收并分配任务,worker负责处理各个子任务,当worker将子任务完成后返回给master,由master进行归纳和总结。Master-Worke

2013-11-10 10:17:57 2033 1

原创 Java中的线程(四)- Future模式

什么是Future【例子】我去蛋糕店取蛋糕,下订单后,店员请我"请在天黑后再来店里取货",并给我一张提货单。在店员做蛋糕的时候,我可以陪MM逛街,看电影等,而不需要在蛋糕店外等候。黄昏后,我拿着这张提货单到蛋糕店来取货。店员说了声"先生,你的蛋糕好了",并把蛋糕给了我。 上面的例子就是Future Pattern的一个直观的使用例子。假设有一个执行起来要花很久的方法(如

2013-11-09 16:54:54 834

转载 CAS原理

在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁(后面的章节还会谈到锁)。锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile是不错

2013-11-09 14:31:30 629

原创 Java中的线程(三)-Java的锁机制

多线程同步的实现依赖于锁机制,被synchronized修饰的代码或方法被一个线程执行之前,他要先拿到执行这段代码的权限,在java里边就是拿到某个同步对象的锁(一个对象只有一把锁); 如果这个时候同步对象的锁被其他线程拿走了,他(这个线程)就只能等了(线程阻塞在锁池等待队列中)。 取到锁后,他就开始执行同步代码(被synchronized修饰的代码);线程执行完同步代码后马上就把锁还给同步对象,

2013-11-09 13:34:11 912

转载 详细分析Java中断机制

1. 引言当我们点击某个杀毒软件的取消按钮来停止查杀病毒时,当我们在控制台敲入quit命令以结束某个后台服务时……都需要通过一个线程去取消另一个线程正在执行的任务。Java没有提供一种安全直接的方法来停止某个线程,但是Java提供了中断机制。如果对Java中断没有一个全面的了解,可能会误以为被中断的线程将立马退出运行,但事实并非如此。中断机制是如何工作的?捕获或检测到中断后,是抛出

2013-11-09 13:13:00 690

原创 Java中的线程(二)-线程相关的常用方法介绍

static Thread currentThread() 返回当前执行的线程。public Thread.State getState()返回该线程的状态。 该方法用于监视系统状态,不用于同步控制。public ClassLoader getContextClassLoader()返回该线程的上下文 ClassLoader。上下文 ClassLoade

2013-11-09 09:49:55 633

原创 Java中的线程(一)-线程的定义与创建

线程的定义:      线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建

2013-11-06 21:32:27 743

转载 对象的强、软、弱和虚引用

本文介绍对象的强、软、弱和虚引用的概念、应用及其在UML中的表示。author: ZJ 07-12-1Blog: [url]http://zhangjunhd.blog.51cto.com/[/url]1.对象的强、软、弱和虚引用在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使

2013-11-05 21:28:24 497

转载 JAVA NIO 简介

1.   基本 概念IO 是主存和外部设备 ( 硬盘、终端和网络等 ) 拷贝数据的过程。 IO 是操作系统的底层功能实现,底层通过 I/O 指令进行完成。所有语言运行时系统提供执行 I/O 较高级别的工具。 (c 的 printf scanf,java 的面向对象封装 )2.    Java 标准 io 回顾Java 标准 IO 类库是 io 面向对象的一种抽象。基于本地方法的底层

2013-11-05 21:02:20 501

转载 Tomcat类加载器体系结构

与Java语言相似,Tomcat提供了分级类加载机制,当然,最顶端非BootStrap Loader莫属,它由C++编写,JVM启动且完成初始化后首先被调用。不过在Tomcat中类加载体系中,缺少了ExtClassLoader的身影(待验证),ExtClassLoader加载sun公司提供的扩展机制(参考文章:<<Extension Mechanism Architecture>>)。下面是架

2013-11-04 22:58:32 827

转载 java 类加载器体系结构

2013-11-04 22:46:55 577

转载 接口 RandomAccess

RandomAccess接口是List 实现所使用的标记接口,用来表明其支持快速(通常是固定时间)随机访问。此接口的主要目的是允许一般的算法更改其行为,从而在将其应用到随机或连续访问列表时能提供良好的性能。在对List特别的遍历算法中,要尽量来判断是属于RandomAccess(如ArrayList)还是SequenceAccess(如LinkedList),因为适合RandomAcces

2013-11-04 21:56:06 704

转载 String类substring方法导致的Java内存泄漏问题

此问题在项目中被发现,经查看JDK源码(JDK1.6),String类的public String substring(int beginIndex, int endIndex)的实现让我很意外。想重现这个场景很容易,请看代码。  [java] view plaincopyimport java.util.ArrayList;

2013-11-04 21:18:18 1515

转载 观察者模式

Observer模式的意图是“定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新”。从这段话里我们可以得到两个信息,如下: 1, 观察者(具体执行操作的对象,有多个) 2, 被观察者(顾名思义是被观察的对象,如果该对象发生某些变化则通知观察者执行对应的操)这个图是观察者模式的真实体现,在这个图中有两个类,java.util

2013-11-04 20:36:35 734

转载 享元模式

一、FlyWeight模式定义:运用共享技术有效地支持大量细粒度对象。二、模式解说也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象。在Flyweight模式中,由于要产生各种各样的对象,所以在Flyweight(享元)模式中常出现Factory模式。Flyweight的内部状态是用来共享的,Flyweight factory负责维护一个对象存

2013-11-04 12:44:47 609

转载 装饰模式

装饰模式:给一个类添加一些额外的职责,并且在添加这些额外的职责时不会控制该类的执行逻辑。 UML类图:  组成部分: 抽象构件:原始的功能接口 具体构件:具体的原始功能类 装饰角色:持有具体构件类的对象,以便执行原有功能 具体装饰:具体扩展的功能在这里 下面看一个对开车功能拓展的实例(晚上+开车): 抽象构件: Java代码  

2013-11-03 10:30:27 553

转载 Oracle隐式数据类型转换对索引的影响

对于oracle数据库来说,在条件允许的情况下,oracle可以帮我们自动做数据类型的转换,但是oracle还是建议我们最好使用转换函数(to_char()、to_date()、to_number()等)做显示的转换下面这个例子简单的测试了,由于oracle自动执行隐式转换 ,导致索引无法正确使用的例子建表T,其中ID列是字符类型scott@DB01> create table

2013-11-03 10:13:54 1375

转载 CDN

CDN是什么 CDN全称是Content Delivery Network,即内容分发网络,建立并覆盖在承载网之上、由分布在不同区域的节点服务器群组成的分布式网络,通过一定规则将源内容发布到最接近用户的边缘,使用户可以就近取得所需的内容,解决Internet网络拥塞状况,提高用户访问的响应速度 随着CDN技术的逐渐成熟,互联网迎来了一次重大变革,传统的以WEB Server为中心的模式被彻

2013-11-01 15:55:31 762

oracle分析函数

oracle分析函数

2014-04-06

HBase in action(实战)

HBase in action(实战)

2014-01-19

hive高级编程

hive高级编程

2014-01-19

细解Hadoop

细解Hadoop

2013-12-10

服务器硬件选择

服务器硬件选择

2013-12-10

Hadoop2.2 安装手册

Hadoop2.2 安装手册附完整截图,包含单点和集群两种方式

2013-11-25

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

TA关注的人

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