自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(47)
  • 资源 (1)
  • 收藏
  • 关注

原创 CollectionUtils的一个bug

CollectionUtils中求集合差集的方法有bug:按照集合论的定义:一般地,记A,B是两个集合,则所有属于A且不属于B的元素构成的集合,叫做集合A减集合B(或集合A与集合B之差),类似地,对于集合A、B,我们把集合{x∣x∈A,且x∉B}叫做A与B的差集,记作A-B(或A\B),即A-B={x|x∈A且x∉ B}(或A\B={x|x∈A且x ∉B},同理 B-A={x∣x∈B且x...

2013-11-09 15:03:21 320

原创 java enum的若干疑惑

1.关键字enum与java.lang.Enum 是什么关系?任何enum常量都是Enum的子类2.为什么自定义的enum类型 不能继承其他类?因为1的原因,每个enum都是Enum的子类,而java又不支持多重继承,所以自定义的enum类型不能再继承其他类。3.为什么自定义的enum的构造函数必须是private?因为enum的实例是固定的,你不能随便构建enum的实例,...

2013-09-26 17:32:17 249

原创 apache配置

httpd.conf文件中的主要配置参数:ServerType                               //服务器的两种类型为standalone和inetdServerRoot                             //设置服务器目录绝对路径,包含conf和log子目录Pidfile                                  ...

2013-07-31 16:19:29 266

原创 mina源码分析——bind

关于Minamina是开源的NIO框架,其project地址:http://mina.apache.org/mina-project/features.html想快速了解mina就看user guide:http://mina.apache.org/mina-project/userguide/user-guide-toc.htmlmina给我的感觉:干净、利落的抽象,非常...

2013-06-22 18:50:47 352

原创 JAX-RS

JAX-RS JAX-RS是JAVA EE6 引入的一个新技术。  JAX-RS即Java API for RESTful Web Services,是一个Java 编程语言的应用程序接口,支持按照表述性状态转移(REST)架构风格创建Web服务。JAX-RS使用了Java SE5引入的Java标注来简化Web服务的客户端和服务端的开发和部署。JAX-RS提供了一些标注将一个资源...

2013-05-20 23:37:42 147

原创 vmstat(转载)

vmstat是一个十分有用的Linux系统监控工具,使用vmstat命令可以得到关于进程、内存、内存分页、堵塞IO、traps及CPU活动的信息。51CTO编辑推荐:Linux监控工具大全一、前言很显然从名字中我们就可以知道vmstat是一个查看虚拟内存(Virtual Memory)使用状况的工具,但是怎样通过vmstat来发现系统中的瓶颈呢?在回答这个问题前,还是让我们回顾一下L...

2013-03-05 23:14:23 125

原创 perf counter

神农中经常出现PerfCounter这个名词,经查Perf(又叫Perf Event)是随linux内核一起发布的性能检测工具。一篇相关博文:http://hi.baidu.com/aixindan/item/5bfda23bae334140033edcf0...

2013-03-01 15:08:20 699

原创 linux ifconfig

ifconfigeth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500        ether 00:26:2d:fe:8f:fc  txqueuelen 1000  (Ethernet)        RX packets 0  bytes 0 (0.0 B)        RX errors 0  dropped 0  over...

2013-02-06 15:12:24 180

原创 linux screen(转载)

今天发现了一个“宝贝”,就是Linux的screen命令,对于远程登录来说,不仅提供了类似于nohup的功能,而且提供了我非常喜欢的“多个桌面”的功能。平常开一个putty远程登录,经常需要在两个程序之间来回切换,怎么办?ctrl-z和fg、bg?这些太麻烦了。其实我们可以借助screen命令来实现轻松便捷的切换。我主要是参考了下面的两篇文章(附在结尾),我自己总结的方法是:“首先用s...

2012-12-27 16:27:50 228

原创 c++ 边学边用

作为一个java程序员 转过来作c++,还是要有一段阵痛期的,以下是我个人c++成长路上 遇到的各种问题的收集(有时候太懒,有些问题没有收集进来,后悔) 1. undefined reference to 'xxx' 原因 :      编译过了,但是link时没有找到目标文件(.o,.so,.a等)解决 :     在编译中要加 -lxxx参数     e.x:gcc ...

2012-12-08 17:39:57 644

原创 编译异常:/usr/bin/ld: cannot find XXX

编译异常:/usr/bin/ld: cannot find XXX发表于572 天前 ⁄ 编程开发 ⁄ 评论数 1最近安装PHP的LAMP环境,编译PHP的时候,报异常:configure: error: mysql configure failed. Please check config.log查看config.log发现报错:usr/bin...

2012-12-03 15:53:02 271

原创 linux yum(转载)

linux yum命令详解yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,...

2012-12-03 11:45:36 127

原创 linux rpm使用说明(转载)

Linux rpm 命令参数使用详解[介绍和应用] RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”rpm 执行安装包二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。常...

2012-12-03 11:43:51 126

原创 关于代理类型以及如何在各种代理情况下获得客户端IP

http 代理有几种类型? 透明代理(简单代理):透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改编你的request fields(报文),并会传送真实IP。注意,加密的透明代理则是属于匿名代理,意思是不用设置使用代理了,例如Garden 2程序。 匿名代理。使用此种代理时,虽然被访问的网站不能知道你的IP地址,但仍然可以知道你在使用代理,有些侦测IP的网页也仍然可以...

2012-10-29 16:50:47 167

原创 hive ast

http://blog.youkuaiyun.com/zhifeidie/article/details/6919014  hive就是一个将sql语句转化为MR工具hive的工作原理:1、使用antlr定义sql语法,(详细见hive.g),由antlr工具将hive.g编译为两个java文件:HiveLexer.java    HiveParser.java,可以将输入的sql解析为a...

2012-10-18 20:26:10 786

原创 理解URI

通过一段代码来理解URI的构成:  import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.net.URI;import java.net.URISyntaxException;public class UriTest { ...

2012-08-05 17:36:23 151

原创 IdentityHashMap

之前很少用到IdentityHashMap, 简单说IdentityHashMap与常用的HashMap的区别是:前者比较key时是“引用相等”而后者是“对象相等”,即对于k1和k2,当k1==k2时,IdentityHashMap认为两个key相等,而HashMap只有在k1.equals(k2) == true 时才会认为两个key相等。 IdentityHashMap有其特殊...

2012-08-05 14:27:31 198

原创 libtcmalloc使用总结

libtcmalloc.so google的东西,绝对靠谱,使用它可以:1.替换c++标准的new操作符,来动态分配内存,消除内存碎片2.heap check:检查内存泄露3.heap profile: 具体用法:http://google-perftools.googlecode.com/svn/trunk/doc/heap_checker.html  ...

2012-06-15 18:48:39 943

原创 c++ 操作符重载-学习笔记

1.重载的限制:1)重载后的操作符必须至少有一个操作数是用户自定义的类型,这可以防止用户把标准操作符给重载。比如 T operator-(double a,double b)//ERROR2)不能违反原来操作符的句法规则。3)不能定义新的操作符,否则那就不叫重载了。4)不能重载下面的操作符;sizeof..*::?:typeidconst_cast...

2012-06-05 08:29:13 150

原创 c++ typedef用法总结(转载)

第一、四个用途用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针虽然:char *pa...

2012-05-19 16:52:13 148

原创 c++ STL标准容器之Iterator使用

C++ STL绝大多数标准容器都提供了Iterator,一些容器,比如priority_queue,因为语意上就不应该允许随便遍历容器中的元素,所以也就没有Iterator了。 23种经典设计模式中就有迭代器模式,java集合框架也实现了这个模式: package java.util;public interface Iterator<E> { ...

2012-05-19 16:07:32 554

原创 c++ 模板

 c++ 模板分为2类:1. 函数模板格式:template <typename 形参名,typename 形参名>  反回类型函数名(参数列表){函数体}比如:template <typename T> void swap(T& a, T& b){} 调用时:int a,b;swap(a,b); double d...

2012-05-15 23:34:43 160

原创 gdb

常用的gdb命令 backtrace显示程序中的当前位置和表示如何到达当前位置的栈跟踪(同义词:where) breakpoint在程序中设置一个断点 cd改变当前工作目录 clear删除刚才停止处的断点 commands命中断点时,列出将要执行的命令 continue从断点开始继续执行 delete删除一个断点或监测点;也可与其他命令一起使用 displa...

2012-05-07 08:22:43 112

原创 vim设置

好记性不如烂笔头。 1)首先找到系统自带的vim设置的demo。find . -name vimrc_example.vim 比如是:/usr/share/vim/vim73/vimrc_example.vim 2)把它copy到当前用户的根目录下:cp /usr/share/vim/vim73/vimrc_example.vim /home/wenfeng/....

2012-05-05 18:52:34 76

原创 c++ 通过JNI技术调用java代码使用总结

 由于工作需要,要写一段c++代码来调用java的api。下面把实现和调研的过程总结出来。 1. 如何解决?首选JNI,首先对JNI的原理和使用方法简单调研一下,JNI的权威资料是:http://java.sun.com/docs/books/jni/html/jniTOC.html 简单点说,JNI可以帮助我们解决两个问题:1)实现java代码调用其他代码(c,c...

2012-04-26 19:10:28 728

Activiti源码分析

Activiti是业界很流行的java工作流引擎,关于Activiti与JBPM5的关系和如何选择不是本文要讨论的话题,相关内容可以baidu一下。Activiti从架构角度看是比较优秀的,是很面向对象的,是我所阅读过的代码结构很棒的开源软件,个人认为比Spring,Hibernate的要好。Activiti的基础编程框架 Activiti基于Spring,ibatis等开源中间件作为...

2012-01-09 12:01:56 1400 1

java异步计算Future的使用

从jdk1.5开始我们可以利用Future来跟踪异步计算的结果。在此之前主线程要想获得工作线程(异步计算线程)的结果是比较麻烦的事情,需要我们进行特殊的程序结构设计,比较繁琐而且容易出错。有了Future我们就可以设计出比较优雅的异步计算程序结构模型:根据分而治之的思想,我们可以把异步计算的线程按照职责分为3类:1. 异步计算的发起线程(控制线程):负责异步计算任务的分解和发起,把分解好的任务...

2011-12-25 13:07:27 137

Jetty源码学习

Jetty设计的很简洁易懂:Jetty的核心组件及作用如下: HttpListener:监听客户端请求,有请求,则构建HttpConnection对象,就像建立了一个连接 HttpConnection:HttpConection会构建HttpRequest和HttpResponse对象,完成用户数据的封装,然后调用HttpServer.service(HttpRequest r...

2011-12-22 23:16:20 205

通过CountDownLatch来分析AbstractQueuedSynchronizer的源码

CountDownLatch:计数门闩,可以用来协调多个线程的协作,使用CountDownLatch的典型场景:某项工作需要多个线程共同来完成,并且其中一个线程(往往是主线程)需要等待其他线程都已经完成了自己的工作时才能继续进行,否则要等待。下面分析CountDownLatch源码: package java.util.concurrent;import java.util.concu...

2011-12-06 14:11:20 103

jvm连接模型

1 java虚拟机构成类加载系统 执行引擎 运行时数据区运行时数据区包括 堆、栈、方法区、本地方法区、pc寄存器。其中堆、方法区是多线程共享的,其它的是线程安全的。2 java虚拟机链接模型装载 连接 初始化装载的产物:一个堆上的class实例:是连接类实例与方法区数据结构的桥梁,通过class实例,类的实例能够知道类本身的详细构成信息方法区上的一个数据结构:用...

2011-12-05 12:28:22 106

TCP状态总结

tcp状态:LISTEN:侦听来自远方的TCP端口的连接请求SYN-SENT:再发送连接请求后等待匹配的连接请求SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认ESTABLISHED:代表一个打开的连接FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认FIN-WAIT-2:从远程TCP等待连接中断请求CLOSE-WAIT:等待从...

2011-12-05 12:28:00 120

java的CountDownLatch用法

关于java的CountDownLatch。Latch:门闩之意。CountDownLatch经常用来在多线程环境下,主线程协调多个子线程的步调。生活中最相似的场景就是运动员比赛,裁判员(主线程)控制比赛的开始和结束,运动员(子线程)完成自己的比赛,当且仅当所有运动员都完成比赛时,裁判员就可以下令整场比赛结束。下面转载网友针对上述场景的模拟代码,以便更好地理解CountDownLatc...

2011-12-05 12:27:44 111

javaHashMap

java.util.HashMap类提供了静态的hash方法和indexFor方法:/*** Applies a supplemental hash function to a given hashCode, which* defends against poor quality hash functions. This is critical* because HashMap use...

2011-11-29 18:35:11 303

mysql索引结构

刚接触db,索引貌似还是一个高级货,那么多新名词,新概念让人很晕,其实索引真的很简单。我们知道IO操作是数据库访问很耗时的操作,应该尽量避免。索引就是在内存中(当然如果索引太大,也可能在硬盘固定的,连续的存储块中)建立一个真实数据的映射,通过索引,我们确定要找的数据范围,然后再通过尽量少的IO到硬盘上把目标数据抓回来。以下是可以作为索引的数据结构,其中mysql采用的是B+树。 顺序文件:几种...

2011-11-29 18:28:55 109

jvm常量池

在jvm规范中,每个类型都有自己的常量池。常量池是某类型所用常量的一个有序集合,包括直接常量(基本类型,String)和对其他类型、字段、方法的符号引用。之所以是符号引用而不是像c语言那样,编译时直接指定其他类型,是因为java是动态绑定的,只有在运行时根据某些规则才能确定具体依赖的类型实例,这正是java实现多态的基础。 为了对常量池有更具体的认识,下面引用几个例子:1,常量...

2011-11-29 18:28:13 96

redis.conf配置项说明

#是否以后台进程运行,默认为no,如果需要以后台进程运行则改为yesdaemonize no  #如果以后台进程运行的话,就需要指定pid,你可以在此自定义redis.pid文件的位置。pidfile /var/run/redis.pid  #接受连接的端口号,如果端口是0则redis将不会监听TCP socket连接port 6379 # If y...

2011-11-29 15:54:57 489

jedis源码分析——JedisPool

jedis是Redis官网推荐的java客户端实现。下面分析一下JedisPool的实现 JedisPool源码如下:package redis.clients.jedis;import org.apache.commons.pool.impl.GenericObjectPool.Config;import redis.clients.util.Pool;pu...

2011-11-28 12:36:47 270

java方法区

 先以两个问题开篇:1.如果一个类有多个子类,那么new多个子类对象时,父类的对象是一个还是多个?2.每个类型有一个常量池,还是每个对象都有自己的常量池?你可以很快地正确回答吗?了解了java虚拟机方法区的原理,这两个问题就很清晰了。java虚拟机把内存划分为方法区、堆和线程栈。简单说方法区用来存储类型的元数据信息,一个.class文件是类被java虚拟机使用之前的表现形式,...

2011-11-27 22:28:18 137

包复用原则&实践

理论部分包的复用原则可以分为两大类组件的内聚性原则:粒度重用-发布等价原则(Reuse-Release Equialence Principle, REP)  重用的粒度就是发布的粒度。  你自己如果是某个可重用组件(包)的用户,这个组件(包)必须满足那些条件你才会乐于使用呢?  1)有清晰的文档和接口说明  2)有人维护  3)发布新版本时能够得到及时的通...

2011-11-27 22:28:00 170

pmd校验规则总结

括号使用规则If表达式必须使用{},无论有多少语句错误实例: public class Foo {   public void bar() {     int x = 0;     if (foo) x++;//if(foo){x++;}   } }                 While循环必须使用{},无论有多少语...

2011-11-27 22:27:44 683

spring

just a try!

2008-01-24

空空如也

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

TA关注的人

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