
Java
lxgwm2008
软件工程师 Engineer
展开
-
Google protobuf(1)-简介
一、简介。protobuf是由Google开发的一套对数据结构进行序列化的方法,可用做通信协议,数据存储格式,等等。其特点是不限语言、不限平台、扩展性强,就像XML一样。与XML相比,protobuf有以下特点:1、操作更简单。例如,我们要定义一个个人信息的结构,其中包括名称和邮箱地址两个部分。用XML定义如下: John Doe jdoe@exampl原创 2012-07-05 22:18:18 · 9612 阅读 · 0 评论 -
Java之synchronize
Java中synchronize关键字用于进行线程间的同步。synchronize同步块根据同步级别不同,可分为三个层次:一、单个对象的同步。每个方法可以同步到不同的对象,对象之间是相互独立的。 private Object synObject1 = new Object(); private Object synObject2 = new Object(); }原创 2013-01-23 11:16:21 · 6015 阅读 · 0 评论 -
Java之Reflection
反射(Reflection)是Java被视为动态(或准动态)语言的一个关键性质。Reflection允许程序在运行时,通过各个反射API,来获得任何一个已知名称的class的各种信息,包括:1、修饰符modifier。包括public、protected、private、static等等。2、继承的父类superclass。3、实现的接口interface。4、类定义的内部变量fi原创 2013-01-24 13:40:48 · 783 阅读 · 0 评论 -
Java之可变参数
与C预言类似,Java中也有可变参数的形式。其格式如下:public static void printInteger(int... integers);在接收参数的时候,其参数格式可以是不定的,例如:package com.example.vararguments;public class Main { /** * @param args */原创 2013-01-25 11:02:36 · 857 阅读 · 0 评论 -
命令模式场景之undo
命令模式可以应用到很多场景,比如实现do/undo功能、实现导航功能。本文使用命令模式实现了一个基本的do/undo功能。角色介绍如下:Command:抽象命令接口CutCommand:具体命令之一——剪切命令CommandManager:命令管理器,存储执行过的命令Client:客户端代码如下:package com.pattern.command;public原创 2013-01-29 22:23:50 · 2677 阅读 · 2 评论 -
排列组合之01法的演变
关于排列组合,一种常见的非递归算法是"01交换法",其过程是这样的:使用0或1表示集合中的元素是否出现在选出的集合中,因此一个0/1列表即可表示选出哪些元素。例如:[1 2 3 4 5],选出的元素是[1 2 3]那么列表就是[1 1 1 0 0]。过程如下:comb(set, n, k){ (1) 从左到右扫描0/1列表,如果遇到“10”组合,就将它转换为”01”.原创 2013-03-22 14:06:40 · 2001 阅读 · 0 评论 -
Top 10 Methods for Java Arrays
0. Declare an arrayString[] aArray = new String[5];String[] bArray = {"a","b","c", "d", "e"};String[] cArray = new String[]{"a","b","c","d","e"};1. Print an array in Javaint[] intArray = {转载 2014-01-26 13:55:23 · 706 阅读 · 0 评论 -
怎么理解Condition
转自:http://www.liuinsect.com/2014/01/27/%E6%80%8E%E4%B9%88%E7%90%86%E8%A7%A3condition/在java.util.concurrent包中,有两个很特殊的工具类,Condition和ReentrantLock,使用过的人都知道,ReentrantLock(重入锁)是jdk的concurrent包提供的一种转载 2014-02-14 12:40:58 · 1029 阅读 · 0 评论 -
关于java的构造方法(2)
考虑类中有static变量的时候,测试程序如下:FatherProp.java:public class FatherProp { public FatherProp( ) { System.out.println( "I am father prop" ); } public FatherProp( String name原创 2012-06-28 17:19:32 · 497 阅读 · 0 评论 -
Java 常量池
Java的常量池中包含了类、接口、方法、字符串等一系列常量值。常量池在编译期间就已经确定,并保存在*.class文件中一、对于相同的常量值,常量池中只保存一份拷贝。而且,当一个字符串由多个字符串常量链接而成时,多个字符串被组成一个字符串常量。例如:package lxg;public class main {public static void main(String[]原创 2012-06-28 22:44:25 · 979 阅读 · 0 评论 -
Java 内存模型
与C/C++一样,Java程序的内存也分为两个部分:栈内存和堆内存。 在函数中定义的8种基本类型的变量(boolean/byte/char/short/int/long/float/double),以及对象的引用变量,都是在函数的栈空间中分配内存。当超过变量的作用域后,Java会自动释放掉为该变量分配的内存空间。该内存空间可以立即被另作他用。 堆内存用来存放由new产生的对象。原创 2012-06-28 22:09:50 · 488 阅读 · 0 评论 -
Netty ChannelBuffer 简介
ChannelBuffer是Netty中比较常用的一个类,其功能类似于字符数组,可以对其进行读写操作。ChannelBuffer的模型图如下: +-------------------+------------------+------------------+ | discardable bytes | readable bytes | writable bytes原创 2012-07-11 09:43:00 · 16928 阅读 · 5 评论 -
Java 嵌套类与内部类
在Java中,可以在一个类内部定义另一个类,这种类称为嵌套类(nested class)。嵌套类有两种类型:静态嵌套类和非静态嵌套类。静态嵌套类较少使用,非静态嵌套类使用较多,也就是常说的内部类。其中内部类又分为三种类型:1、在外部类中直接定义的内部类。2、在函数中定义的内部类。3、匿名内部类。对于这几种类型的访问规则,示例程序如下:package lxg;原创 2012-06-29 22:46:47 · 3734 阅读 · 0 评论 -
Java String类型浅谈
一、String大小。此处大小指字符串占用的内存字节数。按照官方解释,Java的字符大小是按照16位的Unicode来保存。因此字符串"冷lengxuegang"在内存中占据24个字节。二、toCharArray()方法。该方法返回字符串中所有的字符,此时汉字和字母一样,作为一个字符看待。例如:System.out.println("冷lengxuegang".toCharArra原创 2012-06-28 23:06:15 · 2930 阅读 · 0 评论 -
Java 集合类
一、Java集合类继承层次Collection|----List| |----LinkedList| |----ArrayList| |----Vector| |----Stack|----SetMap|----HashTable|----HashMap|----WeakHashMap原创 2012-07-01 20:09:08 · 1063 阅读 · 0 评论 -
Java中常用的加密方法
加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。大体上分为双向加密和单向加密,而双向加密又分为对称加密和非对称加密(有些资料将加密直接分为对称加密和非对称加密)。双向加密大体意思就是明文加密后形成密文,可以通过算法还原成明文。而单向加密只是对信息进行了摘要计算,不能通过算法生成明文,单向加密从严格意思上说不能算转载 2012-07-13 15:06:59 · 869 阅读 · 0 评论 -
Java String StringBuffer StringBuilder比较
String、StringBuffer、StringBuilder是Java中三种很常用的类。其继承层次如下:Object|----String|----AbstractStringBuilder| |----StringBuffer| |----StringBuilderString,字符串常量StringBuffer、字符串变量,线程安全St原创 2012-07-02 22:36:03 · 609 阅读 · 0 评论 -
Java Map的排序
要对Map中的key-value键值对进行排序,可以使用Collections类提供的sort方法。该方法允许用户使用自定义的排序方法,可以按键进行排序,或者按值进行排序。具体代码如下:1、产生需要的数据Map map_Data = new HashMap();map_Data.put("A", 98);map_Data.put("B", 50);map_Data.put(原创 2012-07-03 08:42:53 · 918 阅读 · 0 评论 -
Java 正则表达式基础
正则表达式是一种用于模式匹配或替换的规范。编程时经常遇到字符串查找,匹配,或者屏蔽特殊字符等等,如果采用正则表达式,则可以起到事半功倍的效果。一、正则表达式基本语法。1、.----句点符号句点符号可以匹配任意单个字符,如a-z, 0-9,!,@,#,$等特殊字符,即通常意义上所说的通配符。Pattern pattern = Pattern.compile( "leng" );M原创 2012-07-03 22:05:58 · 927 阅读 · 0 评论 -
Java反射经典实例 Java Reflection Cookbook
Java提供了一套机制来动态执行方法和构造方法,以及数组操作等,这套机制就叫——反射。反射机制是如今很多流行框架的实现基础,其中包括Spring、Hibernate等。原理性的问题不是本文的重点,接下来让我们在实例中学习这套精彩的机制。1. 得到某个对象的属性# public Object getProperty(Object owner, String fieldName) th转载 2012-07-13 16:56:54 · 570 阅读 · 0 评论 -
设计模式之中介者模式(Mediator)
中介者模式属于行为型模式,描述了对象之间的一种行为模式。当多个对象之间需要进行通信,而通信过程又比较复杂,此时可以使用中介者模式。用一个中介对象来封装对象之间的一系列的交互,使各对象不需要显式的相互引用,从而使其耦合松散,而且可以独立地改变它们。 比如现实世界中的租房。如果让房东和房客之间直接进行交互,房东需要四处发放租房信息,而房客也需要四处寻找租房信息,而且需要签订租房合同等等法律条原创 2012-11-08 20:36:30 · 684 阅读 · 0 评论