`
wuxing429
  • 浏览: 15497 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
刚才在ibm上面看了一个关于敏捷开发中代码的高质量的文档,感觉总结的很好,在文档中也用到了很多工具来保证代码的质量,在这里mark下 首先上总体图:   步骤一:统一编码规范、代码样式 一般规则和格式规范。例如代码缩进、程序块规范、每行最大代码长度等。 命名规则。例如包名、类名、变量、方法、接口、参数等命名规范 文档规范。例如类文件头声明、类注释、成员变量和方法注释等规范。 编程规范。例如异常、并发、多线程等方面的处理方式。 其他规范。例如日志格式、属性文件格式,返回值和消息格式。 一旦编码规范确定,就可以利用 Eclipse 自身提供的功能来控制代码样式和格式。具体做 ...
今天在看spring代码的时候看到classutils中的梯归的的方法,也来回顾下梯归算法,我们在代码中经常用到:递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。 像最简单的求阶梯,最简单的梯归 int multiply(int n){ if(n==1||n==0) return n; else ret ...
今天看下了spring的源码,看到AbstractAutowireCapableBeanFactory类中creanbean方法自动创建bean时,用到了反射,下面就我看到的spring中package org.springframework.util 下的ReflectionUtils 和beanutils中下总结了,也和大家共同学习:     beanutils 中的copyProperties(Object source, Object target)大家一定不会陌生,apache中也用这个方法,大家也经常用,原理都是用到了反射:    private static void ...
策略模式定义 在软件开发中也常常遇到类似的情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能。 策略模式:定义一系列的算法,把每一个算法封装起来, 并 ...
装饰模式介绍  通过使用修饰模式,可以在运行时扩充一个类的功能。原理是:增加一个修饰类包裹原来的类,包裹的方式一般是通过在将原来的对象作为修饰类的构造函数的参数。装饰类实现新的功能,但是,在不需要用 ...
观察者模式 (有时又被称为发布/订阅模式)是软件设计模式的一种。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,让他们能够自动更新自己. 观察者模式的组成         1.抽象主题角色(subjuct):把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加、删除观察者角色、并主题信息发生改变是通知所有的观察者list。一般用一个抽象类或接口来实现         2.抽象观察者角色(observer):为 ...
       假如有一个mydemo的web项目,在这里我将该项目分为两个模块,分别为mydemo-core和mydemo-web,其中mydemo-core项目为核心java程序文件,输出为jar文件;mydemo-web为web部分,自身基本没有java程序文件,除了一部分与web集成较为紧密的,它主要使用mydemo-core生成的java lib。我们用maven创建一个project,来管理该项目,而mydemo-core和mydemo-web同时又是eclipse project,可以直接在eclipse中打开,并进行程序开发。 1.创建mydemo项目 cd d:\mywork ...
命令模式的定义:       命令模式是将一类对象的功能操作进行抽象,一般来说,这些对象有相同的方法,所以这类对象有着类似的操作,我们通过抽象,就可以定义出一个命令对象,通过这样的方式,用户程序在使用的 ...
在Java中每一个对象都有一个哈希码,这个值可以通过hashCode()方法获得。hashCode()的值和对象的equals方法息息相关,是两个对象的值是否相等的依据,所以当我们覆盖一个类的equals方法的时候也必须覆盖hashCode方法,HashMap可以看作是Java实现的哈希表。HashMap中存放的是key-value对,对应的类型为java.util.HashMap.Entry,所以在HashMap中数据都存放在一个Entry引用类型的数组table中。这里key是一个对象,为了把对象映射到table中的一个位置,我们可以通过求余法来,所以我们可以使用 [key的hashCode ...
今天看到有同事blog中有个淘宝的笔试题也写了一个读大文件的东西,欢迎拍砖 题目是    统计一个单词可重复的英文文件(假设4G)中每个单词出现的次数,把结果按照英文排序放入一个文件中。并能够检索特定单词的出现次数。由于文件过大,不重复单词总数有限,需要考虑到执行速度和内存使用情况。(淘宝笔试技术题) public String readFile(String fName, long start, int len) throws Exception { RandomAccessFile raf = new RandomAccessFile(fName, "rw& ...
  排序算法的分类如下:    1.插入排序(直接插入排序、折半插入排序、希尔排序);    2.交换排序(冒泡泡排序、快速排序);    3.选择排序(直接选择排序、堆排序);    4.归并排序;    5.基数排序。 关于排序方法的选择:    (1)若n较小(如n≤50),可采用直接插入或直接选择排序。  当记录规模较小时,直接插入排序较好;否则因为直接选择移动的记录数少于直接插人,应选直接选择排序为宜。    (2)若文件初始状态基本有序(指正序),则应选用直接插人、冒泡或随机的快速排序为宜;    (3)若n较大,则应采用时间复杂度为O(nlgn)的排序方法: ...
用反射机制调用对象的方法 Class<?> classType = A.class; try { // Object aa = classType.newInstance(); Object a = classType.getConstructor(new Class[]{}).newInstance(new Object[]{}); //获取InvokeTester类的add()方法 Method addMethod = classType.getMethod("add" ...
   反射本身并不是一个新概念,尽管计算机科学赋予了反射概念新的含义。在计算机科学领域,反射是指一类应用,它们能够自描述和自控制。也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-representation)和监测(examination),并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。   java.lang.reflection中的主要类 主要如下:     1、Constructor<T> 提供关于类的单个构造方法的信息以及对它的访问权限。 Constructor      允许在将实参与带有基础构造方法的形参的 newInsta ...
       尽管有这么多丰富的资料,有时我感觉,有很多的程序员仍然不太明白Java泛型的功用和意义。这就是为什么我想使用一种最简单的形式来总结一下程序员需要知道的关于Java泛型的最基本的知识。 1、理解Java泛型最简 ...
Global site tag (gtag.js) - Google Analytics