java
文章平均质量分 86
liulin_good
在互联网行业打拼多年,曾在大型互联网公司任资深架构师,现在哆啦宝任CTO。在互联网服务架构、大数据、云计算方面有多年的实战经验。
展开
-
程序员必读:JavaBean规范
<br /><br />作为Java程序员,对于JavaBean也许你会说再熟悉不过了,它活跃于系统的很多层,不同的说法有 PO、VO、DTO、POJO。然而它无外乎就是一个Class类,带上些属性和它们的setter/getter方法,set/get后面那一个字母大写。虽然我们现在很少把JavaBean与那个古老的2.0的EJB搞混,但为什么明明用IDE为属性生成的getter/setter方法,应用一运行,还是报找不到某个bean属性的setter或getter方法呢? <br /> <原创 2010-12-08 10:19:00 · 671 阅读 · 0 评论 -
The C10K problem
编写连接数巨大的高负载服务器程序时,经典的多线程模式和select模式都不再适用。应当抛弃它们,采用epoll/kqueue/dev_poll来捕获I/O事件。最后简要介绍了AIO。 网络服务在处理数以万计的客户端连接时,往往出现效率低下甚至完全瘫痪,这被称为 C10K问原创 2011-08-31 14:45:03 · 2447 阅读 · 0 评论 -
cglib源码学习交流
<br />背景<br /> 前段时间在工作中,包括一些代码阅读过程中,spring aop经常性的会看到cglib中的相关内容,包括BeanCopier,BulkBean,Enancher等内容,以前虽大致知道一些内容,原理是通过bytecode,但没具体深入代码研究,只知其所用不知其所以然,所以就特地花了半天多的工作时间研究了CGLIB的相关源码,同时结合看了下 spring Aop中对CGLIB的使用。<br /> 本文主要通过对cglib有原理的分析,反编译查看源码,例子等方式做一个介绍原创 2011-05-11 10:35:00 · 8812 阅读 · 3 评论 -
探索 Eclipse 的 ASTParser
探索 Eclipse 的 ASTParser如何使用这种解析器生成代码简介: 如果曾经编写过处理代码的应用程序,就会知道事情可能变得非常复杂,尤其在使用像 Java™ 这样复杂的语言时。不过对于那些使用 Eclipse 的人来说,有一个好消息:可以利用 Java Development Tooling (JDT) 和 ASTParser。本文就说明如何做。E原创 2011-06-20 18:47:00 · 24539 阅读 · 1 评论 -
Eclipse JDT--AST入门
最近做program analysis,需要解析Java的源代码,于是就去看了看Abstract Syntax Tree(AST,中文为抽象语法树)。有点无奈的是,网上关于这方面的资料比我想象中的少,可能是涉及的东西太底层了吧。AST一般属于编译原理方面的内容,也经常用于程序分析等等。简单来说,你写了一坨代码,编译器会把代码转化成一棵抽象语法树用原创 2011-06-20 19:12:00 · 2638 阅读 · 0 评论 -
HBase技术介绍
<br />HBase简介<br />HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。<br />HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop原创 2011-04-22 14:27:00 · 1854 阅读 · 0 评论 -
memcache 机制分析
1.关于本文档 本文档所有的分析都是在1.2版本之上,偶尔会提到比较1.1版本.其他版本没有阅读. 一个星期时间的工作,不可能对memcache有很深刻的分析.文档本身的目的在于为以后的研究准备一个总结资料.刚接触memcache时,对其设计分 布式的思路感到十分欣喜,因为在中间层以极小的代价实现简单分布式无疑成为一些要求不是很高的分布式应用的一个很好的设计思路,这个特性决定 memcache本身在分布式应用中,单个结点之间是Server相互独立,不会存在同级之间的通信.一个结点拒原创 2011-04-15 13:59:00 · 4340 阅读 · 1 评论 -
cglib相关性能测试对比
背景: 继上一篇文章 cglib源码学习交流 很多同学提出,因中文文档缺乏,导致对文章中的介绍看的不是很明白,更多的只是想了解具体的使用即可。所以趁势写了这篇博文,主要是将cglib中的几个工具类和常用的Reflect ,BeanUtils做一个对比,顺便也介绍一下cglib的相关用法,一举两得,望大家多多支持。 正题:1. 首先定义一份Pojo Bean ,后续的测试主要围绕这个进行。 Java代码 public static class CopyB原创 2011-05-11 10:41:00 · 5419 阅读 · 1 评论 -
使用 Eclipse Memory Analyzer 进行堆转储文件分析
获得堆转储文件巧妇难为无米之炊,我们首先需要获得一个堆转储文件。为了方便,本文采用的是 Sun JDK 6。通常来说,只要你设置了如下所示的 JVM 参数:-XX:+HeapDumpOnOutOfMemoryErrorJVM 就会在发生内存泄露时抓拍下当时的内存状态,也就是我们想要的堆转储文件。如果你不想等到发生崩溃性的错误时才获得堆转储文件,也可以通过设置如下 JVM 参数来按需获取堆转储文件。-XX:+HeapDumpOnCtrlBreak除此之外,还有很多的工具,例如 JMap,JConsol原创 2011-03-17 17:30:00 · 3311 阅读 · 1 评论 -
JAVA IO 设计模式彻底分析
<br /><br />一。引子(概括地介绍Java的IO)<br /> 无论是哪种编程语言,输入跟输出都是重要的一部分,Java也不例外,而且Java将输入/输出的功能和使用范畴做了很大的扩充。它采用了流的 机制来实现输入/输出,所谓流,就是数据的有序排列,而流可以是从某个源(称为流源或Source of Stream)出来,到某个目的地(称为流汇或Sink of Stream)去的。由流的方向,可以分成输入流和输出流,一个程序从输入流读取数据向输出流写数据。<br /> 如,一个程序可以用FileI原创 2011-03-08 15:57:00 · 2766 阅读 · 0 评论 -
Java 集合类图
有序否允许元素重复否Collection否是List是是SetAbstractSet否否HashSetTreeSet是(用二叉树排序)MapAbstractMap否使用key-value来映射和存储数据,Key必须惟一,value可以重复HashMapTreeMap是(用二叉树排序)原创 2011-02-28 17:51:00 · 20940 阅读 · 2 评论 -
字符编码笔记:ASCII,Unicode和UTF-8
<br />今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。 <br /><br />结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。 <br /><br />下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。 <br /><br />1. ASCII码 <br /><br />我们知道,在计算机内部,所原创 2011-01-07 17:43:00 · 654 阅读 · 0 评论 -
java.util.Collections.copy()方法注意点
<br />今天发现单独的将一个ArrayList的对象添加到另外一个ArrayList的时候,总是源列表和目的列表相同的内存地址。原因如下:偶然看到了Collections的copy(List desc,List src)方法.当时就想这个方法和初始化一个List desc=new ArrayList(List c)【参数必须实现Collection接口】的区别。<br /><br />两者的差别很大,后者是一个浅拷贝,只是对源list的元素进行拷贝,拷贝的只是引用。拷贝后两个list的元素(引用)不原创 2010-12-31 10:52:00 · 39080 阅读 · 10 评论 -
JDK里的设计模式
<br /><br />下面是JDK中有关23个经典设计模式的示例,在stakeoverflow也有相应的讨论:<br />http://stackoverflow.com/questions/1673841/examples-of-gof-design-patterns<br /> Structural(结构模式)Adapter:<br />把一个接口或是类变成另外一种。java.util.Arrays#asList()javax.swing.JTable(TableModel)java.io.Inp原创 2010-12-19 21:52:00 · 789 阅读 · 0 评论 -
JSONUtil.bean2Json()报has no read method. SKIPPED问题
<br />问题剖析: 1、错误警告信息描述:<br />2、分解:调用方法JsonUtil.bean2Json(queryHistogramVO,newString[]{}));将VO对象转换成JSON对象格式jsonUtil包路径:queryHistogramVO 对象的属性和方法:public class HistogramVO { privateInteger userNum; privateInteger topCategory; privat原创 2010-12-11 17:06:00 · 20029 阅读 · 3 评论 -
Java开发环境
<br /><br />JDK<br />JDK(版本 1.6.x)<br />JCE(Java Cryptography Extension)安全补丁:解压到$JAVA_HOME/jre/lib/security中,覆盖原local_policy.jar和US_export_policy.jar<br />JVM参数 ...<br />Eclipse<br />Eclipse(版本 3.4.x+)<br />插件列表<br />easyshell update:http://pluginbox.sourc原创 2010-12-11 17:23:00 · 1865 阅读 · 0 评论 -
Java虚假机jvm关于内存的设置与调优
<br />JVM内存的设置的原理<br /> <br />默认的java虚拟机的大小比较小,在对大数据进行处理时java就会报错:java.lang.OutOfMemoryError。<br />设置jvm内存的方法,对于单独的.class,可以用下面的方法对Test运行时的jvm内存进行设置。<br />java -Xms64m -Xmx256m Test<br />-Xms是设置内存初始化的大小<br />-Xmx是设置最大能够使用内存的大小(最好不要超过物理内存大小)<br原创 2010-10-19 17:28:00 · 650 阅读 · 0 评论 -
DK NEW TOOLS——jps、jinfo、jstat、jmap、jconsole
JDK NEW TOOLS——jps、jinfo、jstat、jmap、jconsole 收藏 最近压力测试和调优Liferay portal,所以需要找到一种工具,可以比较好的监测VM工具。本来想使用商用工具,但偶然间发现SUN 的JDK中新添了几个工具,并且非常好用。秉承着有免费,不用商用的原则。开始使用新的JDK工具,以下简单介绍一下这几种工具。(注:本文章下的所有工具都存在JDK5.0以上版本的工具集里,同j原创 2010-10-19 17:29:00 · 634 阅读 · 0 评论 -
计算机存储单位:bit, Byte, KB, MB, GB, TB, PB, EB, ZB, BB
一、计算机的存储单位有哪些呢? 计算机存储单位一般用 bit, Byte, KB, MB, GB, TB, PB, EB, ZB, BB来表示, 我们经常将Byte简称为B,将KB简称问K。什么几K了,什么几B了。。 二、他们换算关系是怎样的呢? 1、计算机存储信息的最小单位: 位 bit (比特)(Binary Digits):存放一位二进原创 2012-01-20 15:11:37 · 3855 阅读 · 0 评论