- 博客(55)
- 收藏
- 关注
转载 设计模式六大原则(1):单一职责原则
定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T2时,也
2014-10-23 16:13:06
652
转载 linux中shell变量$#,$@,$0,$1,$2的含义解释
变量说明:$$Shell本身的PID(ProcessID)--------当前shell的PID$!Shell最后运行的后台Process的PID$?最后运行的命令的结束代码(返回值)$-使用Set命令设定的Flag一览$*所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。$@所有参数列表。如"$@"
2014-05-07 18:43:15
752
转载 zookeeper集群安装配置
192.168.1.2192.168.1.3zk安装包下载[192.168.1.1]$ wget http://archive.apache.org/dist/hadoop/zookeeper/zookeeper-3.3.1/zookeeper-3.3.1.tar.gzsudo tar -zxvf /home/wanghua.wh/zookeeper-3.3.1.tar.gz -C
2014-04-28 21:45:26
753
转载 zookeeper python接口
上文讲了zookeeper集群安装配置,本文主要讲python支持zookeeper的接口库安装和使用。zk的python接口库有zkpython,还有kazoo,下面是zkpython,是基于zk的C库的python接口。zkpython安装前提是zookeeper安装包已经在/usr/local/zookeeper下 cd /usr/local/zookeeper/src/c./
2014-04-27 22:28:32
11362
转载 zookeeper基本原理
zookeeper介绍前文介绍了zookeeper的应用场景,本文介绍下zookeeper工作原理。zk service网络结构zookeeper的工作集群可以简单分成两类,一个是Leader,唯一一个,其余的都是follower,如何确定Leader是通过内部选举确定的。Leader和各个follower是互相通信的,对于zk系统的数据都是保存在内存里面的,同样也会备份一份在
2014-04-27 22:25:51
3017
转载 java NIO基础
1. 基本概念IO是主存和外部设备(硬盘、终端和网络等)拷贝数据的过程。IO是操作系统的底层功能实现,底层通过I/O指令进行完成。所有语言运行时系统提供执行I/O较高级别的工具。(c的printf scanf,java的面向对象封装)2. Java 标准io回顾Java标准IO类库是io面向对象的一种抽象。基于本地方法的底层实现,我们无须关注底层实现。 InputStream\
2013-12-25 12:34:32
672
转载 利用 Java dump 进行 JVM 故障诊断
引言对于大型 java 应用程序来说,再精细的测试都难以堵住所有的漏洞,即便我们在测试阶段进行了大量卓有成效的工作,很多问题还是会在生产环境下暴露出来,并且很难在测试环境中进行重现。JVM 能够记录下问题发生时系统的运行状态并将其存储在转储(dump)文件中,从而为我们分析和诊断问题提供了重要的依据。常见的转储文件包括 Java Dump,Heap dump 和 System dump。这
2013-12-01 22:34:30
809
转载 过滤字符串中的Emoji表情
iOS 5.0之前,苹果都是采用3个字节来承接emoji表情,Java的普通char可以支持显示。但iOS 5.0之后,苹果升级了系统自带的emoji表情输入法,用的Unicode 6标准来统一,是采用4个bytes来承接一个emoji表情。如果不做处理的话,这种表情直接存储到mysql5.5以下的数据库是会报错的。就像这两个表情一样:
2013-09-08 21:39:29
34065
1
转载 Java NIO原理 图文分析及代码实现
前言: 最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。可以参考:http://baike.baidu.com/view/32726.htm )机制时,发现hadoop的RPC机制的实现主要用到了两个技术:动态代理(动态代理可以参考博客:http:/
2013-06-23 13:39:49
867
转载 MySQL日期时间函数大全
DAYOFWEEK(date) 返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准)mysql> select DAYOFWEEK('1998-02-03'); -> 3 WEEKDAY(date) 返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 mysql> select WEEKDAY('1997-10-04
2013-04-25 17:49:21
518
转载 Jetty 的工作原理以及与 Tomcat 的比较
简介: Jetty 应该是目前最活跃也是很有前景的一个 Servlet 引擎。本文将介绍 Jetty 基本架构与基本的工作原理:您将了解到 Jetty 的基本体系结构;Jetty 的启动过程;Jetty 如何接受和处理用户的请求。你还将了解到 AJP 的一些细节:Jetty 如何基于 AJP 工作;以及 Jetty 如何集成到 Jboss;最后我们将比较一下两个 Servlet 引擎:Tomcat
2013-04-12 10:40:58
706
转载 solr+tomcat例子
Solr开发文档Solr 是一种可供企业使用的、基于 Lucene 的搜索服务器,它支持层面搜索、命中醒目显示和多种输出格式。在这篇文章中,将介绍 Solr 并展示如何轻松地将其表现优异的全文本搜索功能加入到 Web 应用程序中。开发环境: System:Windows WebBrowser:IE6+、Firefox3+ JDK:1.6+ JavaEE Server:t
2013-03-07 19:12:11
8332
转载 Solr分布式搜索技术实现分析
概述Solr单机支持的搜索数据量是有一定上限的,这个取决于搜索的复杂程度,服务器的硬件配置与业务的要求等等,所以将搜索功能分布化将是对于大数据搜索的一个必然趋势。Solr从1.3版本开始,自带了分布式搜索(Distributed Search)。这个功能使得Solr能够通过多服务器进行横行扩展,对数据进行水平拆分,从而支持海量数据的搜索功能。Solr-3.6.1版本对分布式搜索的支持功
2013-03-07 19:09:07
1012
转载 LevelDb
LevelDb日知录之一:LevelDb 101 说起LevelDb也许您不清楚,但是如果作为IT工程师,不知道下面两位大神级别的工程师,那您的领导估计会Hold不住了:Jeff Dean和Sanjay Ghemawat。这两位是Google公司重量级的工程师,为数甚少的Google Fellow之二。 Jeff Dean其人:http://research.g
2013-03-07 18:39:09
8831
转载 memcached完全剖析–1. memcached的基础
本系列文章导航memcached完全剖析–1. memcached的基础memcached全面剖析–2.理解memcached的内存存储memcached全面剖析–3.memcached的删除机制和发展方向memcached全面剖析–4. memcached的分布式算法memcached全面剖析–5. memcached的应用和兼容程序asdfaafasdfsaf翻
2013-03-03 15:38:30
669
转载 Consistent Hashing 一致性hash算法
在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin)、哈希算法(HASH)、最少连接算法(Least Connection)、响应速度算法(Response Time)、加权法(Weighted )等。其中哈希算法是最为常用的算法. 典型的应用场景是: 有N台服务器提供缓存服务,需要对服务器进行负载均衡,将请求平均分发到每台服务器上,每台机器
2013-02-03 18:48:07
2653
转载 JNI简单实例
昨天和一部zzz一起研究解决一个java调用第三方dll的问题,从零开始学习了jni技术的应用,现在总结如下。 事情的起因是一部的一个项目需要用到一个爱国者提供的基于U盘的加密技术。对方提供了U盘和一个dll动态链接库hiddenIO.dll。在U盘的隐藏区域内可以储存USB-Key信息,通过这个dll里的两个方法可以使用c/c++编写程序在U盘的隐藏区域读写信息,对方提供了示例代
2013-01-27 21:13:11
400
转载 常见Oracle HINT的用法
1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 2. /*+FIRST_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳响应时间,
2013-01-27 19:35:18
353
转载 Oracle数据块实现原理深入解读
Oracle对数据库数据文件(datafile)中的存储空间进行管理的单位是数据块(data block),本文将详细介绍。Oracle对数据库数据文件(datafile)中的存储空间进行管理的单位是数据块(data block)。数据块是数据库中最小的(逻辑)数据单位。与数据块对应的,所有数据在操作系统级的最小物理存储单位是字节(byte)。每种操作系统都有一个被称为块容量(bloc
2013-01-14 21:29:44
517
转载 多线程编程中条件变量和虚假唤醒(spurious wakeup)的讨论
多线程编程中条件变量和虚假唤醒的讨论1. 概述条件变量(condition variable)是利用共享的变量进行线程之间同步的一种机制。典型的场景包括生产者-消费者模型,线程池实现等。对条件变量的使用包括两个动作:1) 线程等待某个条件, 条件为真则继续执行,条件为假则将自己挂起(避免busy wait,节省CPU资源);2) 线程执行某些处理之后,条件成立;则通知等待该
2012-12-31 22:55:11
1087
转载 VM 内部运行线程介绍
hi,all 最近抽时间把JVM运行过程中产生的一些线程进行了整理,主要是围绕着我们系统jstack生成的文件为参照依据。 前段时间因为系统代码问题,造成性能瓶颈,于是就dump了一份stack出来进行分析。 stack 里面线程非常多,排查起来需要一定的经验,所以,对它们有一定了解,可以提高排查问题的效率。 现在网上资料也不是特别全,所以,导致很多新人在拿到一个stac
2012-12-22 17:07:15
1875
转载 BTrace系列之一:简介
What is Btrace?Java进程诊断分析工具安全的工具 无侵入性 不修改应用任何应用数据 限制跟踪行为,没能有循环依赖组件 使用OjbectWeb ASM组件来完成字节码层面上的跟踪分析开源组件 项目主页:http://btrace.dev.java.netGPLv2
2012-12-15 17:16:13
531
转载 java 缓存
1. Cache简介:缓存(Cache)是计算机领域非常通用的概念。它介于应用程序和永久性数据存储源(如硬盘上的文件或者数据库)之间,其作用是降低应用程序直接读写永久性数据存储源的频率,从而提高应用的运行性能。缓存中的数据是数据存储源中数据的拷贝,应用程序在运行时直接读写缓存中的数据,只在某些特定时刻按照缓存中的数据来同步更新数据存储源。缓存的物理介质通常是内存,而永久性数
2012-12-02 16:20:21
1035
转载 JVM内存JAVA_OPTS参数说明
今天linux服务器上tomcat重新配置,启动参数时报错:在设置tomcat 启动时,我把JAVA_OPTS 设成-Xms800m -Xmx1024m总是报 Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the
2012-11-18 21:07:20
4965
转载 JMAP、jstat命令输出结果说明
显示java进程内存使用的相关信息jmap pid #打印内存使用的摘要信息 jmap –heap pid #java heap信息 jmap -histo:live pid #统计对象count ,live表示在使用 jmap -histo pid >mem.txt #打印比较简单的各个有多少个对象占了多少内存的信息,一般重定向的文件jmap -dump:format=b,file=
2012-11-18 20:55:54
8115
转载 VisualVM——JDK自带的性能分析工具
引子这段时间项目新版本要发了,所以跟着QA分析性能测试和压力测试,用了平时不怎么用的很多工具:jmap :idea: jmap -heap pid → 查看堆的使用状况信息 jmap -histo:live pid | less → 堆中活动的对象以及大小 jmap -dump:format=b,file=eclipse_heap.bin pid → Dump堆信息 jst
2012-11-18 14:45:26
1513
转载 Thread dump 性能调用
Thread Dump是非常有用的诊断Java应用问题的工具,每一个Java虚拟机都有及时生成显示所有线程在某一点状态的thread-dump的能力。虽然各个Java虚拟机thread dump打印输出格式上略微有一些不同,但是Thread dumps出来的信息包含线程;线程的运行状态、标识和调用的堆栈;调用的堆栈包含完整的类名,所执行的方法,如果可能的话还有源代码的行数。Thread D
2012-11-18 14:43:08
555
转载 JDK自带VM分析工具jps,jstat,jmap,jconsole
一、概述 SUN 的JDK中的几个工具,非常好用。秉承着有免费,不用商用的原则。以下简单介绍一下这几种工具。(注:本文章下的所有工具都存在JDK5.0以上版本的工具集里,同javac一样,不须特意安装) 。 我一共找到以下四个工具:重点看看jconsole和jmap。Java代码 jps :与unix上的ps类似,用来显示本地的
2012-11-18 14:41:37
525
转载 TCP报文格式详解
TCP协议只定义了一种报文格式 建立、拆除连接、传输数据使用同样的报文 TCP报文格式TCP报文段首部(20个字节) 源端口和目的端口:各占2个字节,16比特的端口号加上32比特的IP地址,共同构成相当于传输层服务访问点的地址,即“插口”; 这些端口可用来将若干高层协议向下复用;序号字段和确认序号字段: 序号:占4个字节,是本报文
2012-11-04 21:37:04
665
转载 NoSQL学习笔记(二)之CAP理论
1.CAP概述CAP理论是由EricBrewer教授提出的,在设计和部署分布式应用的时候,存在三个核心的系统需求,这三个需求之间存在一定的特殊关系。三个需求如下:C: Consistency 一致性A: Availability 可用性P:Partition Tolerance分区容错性CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,
2012-10-29 21:36:36
613
转载 java事务类型
Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。1、JDBC事务JDBC 事务是用 Connection 对象控制的。JDBC Connection 接口( java.sql.Connection )提供了两种事务模式:自动提交和手工提交。 java.sql.Connection 提供了以下控制事务的方法:publi
2012-10-10 22:05:07
821
转载 检查型异常和非检查型异常
对于因为编程错误而导致的异常,或者是不能期望程序捕获的异常(解除引用一个空指针,数组越界,除零,等等),为了使开发人员免于处理这些异常,一些异常被命名为非检查型异常(即那些继承自 RuntimeException 的异常)并且不需要进行声明。Checked Exception和Unchecked Exception的几点不同之处方法签名是否需要声明exception调用该方法时是否需要
2012-10-10 21:31:17
35510
转载 Java中十个常见的违规编码
转自:http://www.youkuaiyun.com/article/2012-09-11/2809829-common-code-violations-in-java摘要:作者Veera Sundar在清理代码工作时发现一些常见的违规编码,因此,Veera Sundar把针对常见的一些违规编码总结成一份列表,以便帮助Java爱好者提高代码的质量和可维护性。最近,我给Java项目做了一次代码清
2012-09-21 23:46:45
1541
转载 java设计模式—分类
设计模式在粒度和抽象层次上各不相同。由于存在众多的设计模式,所以我们可以用一种方式将它们组织起来。这里,我们根据两条准则对模式进行分类,如下表所示:第一是目的准则,即模式是用来完成什么工作的。模式依据其目的可分为创建型( Creational)、结构型( Structural)、或行为型( Behavioral )三种。创建型模式与对象的创建有关;结构型模式处理类或对象的组合;行为型模式对
2012-09-21 23:44:45
415
转载 计算机端口详解及常用默认端口列表
转自:http://blog.sina.com.cn/s/blog_4a149266010005g8.html计算机“端口”是英文port的义译,可以认为是计算机与外界通讯交流的出口。其中硬件领域的端口又称接口,如:USB端口、串行端口等。软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。面向连接和无连接
2012-09-21 23:43:12
1080
转载 Java序列化机制和原理
转自:http://www.java3z.com/cwbwebhome/article/article8/862.html 本文讲解了Java序列化的机制和原理。从文中你可以了解如何序列化一个对象,什么时候需要序列化以及Java序列化的算法。有关Java对象的序列化和反序列化也算是Java基础的一部分,下面对Java序列化的机制和原理进行一些介绍。Java序列化算法透析
2012-09-21 23:41:39
313
转载 TCP报文格式详解
TCP协议只定义了一种报文格式 建立、拆除连接、传输数据使用同样的报文 TCP报文格式TCP报文段首部(20个字节) 源端口和目的端口:各占2个字节,16比特的端口号加上32比特的IP地址,共同构成相当于传输层服务访问点的地址,即“插口”; 这些端口可用来将若干高层协议向下复用;序号字段和确认序号字段: 序号:占4个字节,是本报文
2012-09-21 23:39:17
460
转载 MYSQL下SQL的一些整理
应开发部门一个小MM的要求。整理了一份SQL的文档,内容很初级。但老手都知道,sql的命令不外乎那么几个,但却可以实现任何对数值的统计和排列。呵呵,专家往往都是钻研了一些看似很简单的东西,比如说ITPUB上newkid,还有几位版主。如果有时间,再来整理一下MSYQL的引擎,备份恢复,参数说明文档吧Mysql之sql总结前言本文档是对SQL语法的一些总结,如没做特别说明,此
2012-09-21 23:15:52
657
转载 关于jvm中类加载完全揭密
类加载是java语言提供的最强大的机制之一。尽管类加载并不是讨论的热点话题,但所有的编程人员都应该了解其工作机制,明白如何做才能让其满足我们的需要。这能有效节省我们的编码时间,从不断调试ClassNotFoundException, ClassCastException的工作中解脱出来。这篇文章从基础讲起,比如代码与数据的不同之处是什么,他们是如何构成一个实例或对象的。然后深入探讨java
2012-09-21 23:10:38
650
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人