- 博客(13)
- 收藏
- 关注
原创 Java内部类
内部类分为成员内部类、局部内部类、匿名内部类、静态嵌套类。 成员内部类成员内部类,就是作为外部类的成员,可以直接使用外部类的所有成员和方法,即使是private的。同时外部类要访问内部类的所有成员变量/方法,则需要通过内部类的对象来获取。对于普通的类,可用的修饰符有final、abstract、strictfp、public和默认的包访问。但是成员内部类更像一个成员变量...
2012-02-09 14:10:21
109
原创 关于Java中的final
Java中的final共有三种用法:final成员变量当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变,但引用变量所指向的对象中的内容还是可以改变的。其初始化可以在三个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中。而且在...
2012-02-09 13:29:47
101
原创 组合还是继承
对于类的扩展,在面向对象的编程过程中,我们首先想到的是类的继承,由子类继承父类,从而完成了对子类功能的扩展。但是,面向对象的原则告诉我们,对类的功能的扩展要多用组合,而少用继承。其中的原因有以下几点:第一、子类对父类的继承是全部的公有和受保护的继承,这使得子类可能继承了对子类无用甚至有害的父类的方法。换句话说,子类只希望继承父类的一部分方法,怎么办?第二、实际的对象千变万化,如果每...
2012-02-07 10:57:31
137
原创 Java中finalize()
垃圾回收器要回收对象的时候,首先要调用这个类的finalize方法(你可以 写程序验证这个结论),一般的纯Java编写的Class不需要重新覆盖这个方法,因为Object已经实现了一个默认的,除非我们要实现特殊的功能(这 里面涉及到很多东西,比如对象空间树等内容)。 不过用Java以外的代码编写的Class(比如JNI,C++的new方法分配的内存),垃圾回收器并不能对这些部分进行...
2012-02-06 17:31:49
118
原创 Java基本数据
数据类型大小范围默认值byte(字节)8-128 - 1270shot(短整型)16-32768 - 327680int(整型)32-2147483648-21474836480long(长整型)64-9233372036854477808-92333720368544778080float(浮...
2012-02-06 09:56:08
160
原创 Java内存分配
一般Java在内存分配时会涉及到以下区域: ◆寄存器:我们在程序中无法控制◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中◆堆:存放用new产生的数据◆静态域:存放在对象中用static定义的静态成员◆常量池:存放常量◆非RAM存储:硬盘等永久存储空间...
2012-02-06 09:38:00
106
原创 clone使用
实现clone要有两个条件:1. 覆盖clone()方法2. 实现Cloneable接口 例子package test;public class User implements Cloneable{ public int i = 1; @Override protected Object clone() throws CloneNotSuppor...
2012-02-03 14:27:41
123
原创 单元测试之我见
单元测试也写了不少,使用得最多的还是junit。 看到有人用easymock,jmockit等工具,但是我还是只用junit。 为什么这么固执呢。 我认为easymock,jmockit等工具是对不良代码进行单元测试时,不得不用的工具。假如代码本身写得优雅,根本就不用这些辅助性的工具,junit足矣。 我崇尚简单,能不引入其他,就不引入。估计也是受其影响吧。...
2012-02-03 10:08:09
101
原创 System.arraycopy简介
public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length); src-源数组srcP...
2012-02-03 09:54:36
97
原创 toArray用法
Java中toArray有两个方法。public Object[] toArray()public <T> T[] toArray(T[] a)两个问题:1. 有什么区别?2. 怎么使用? 区别是前者会产生ClassCastException,后者不会。为什么呢? 来看一下源代码。 public Object[] toArray() {...
2012-02-03 09:46:53
318
原创 从if/else到抽象
if/else多,让人看得心烦。if/else层次深,让人看得头痛。 怎样才能让代码优雅呢? 介绍一种方法。步骤如下:1. 将if/else区块中逻辑抽象成接口。2. 将各个if/else分支中的逻辑打散到实现类中。3. 使用工厂模式,将不同的条件路由到实现类中。 假如有如下代码:if (cond == 1) { do business 1}...
2012-01-17 09:59:22
422
原创 从代码保护说开去
刚在网上查了查“代码保护”,说的是公司代码,怕被员工偷走的事情。 我这里说的“代码保护”,说的不是这回事。说的是我在做项目过程中,经常写的如下的代码。 if (list != null &amp;&amp; !list.isEmpty()) { ...}if (s != null &amp;&amp; !s.equals("")...
2012-01-06 11:05:45
198
原创 bug该给谁?
有IT行业,就有IT公司。有IT公司,就有IT项目。有IT项目,就有项目组长和项目组员。 项目组长的工作一般是指定项目整体架构,划分项目给相应的组员。因此,项目组员的工作是做需求、改bug。 一个项目做得是否成功,在项目结束后问大家一个问题便可知晓。“大家是否还想合作”?假如不是所有人都异口同声地说“愿意”,那做项目的过程中,肯定出现了问题。 这其中可能出现的问题肯定是...
2012-01-05 17:22:47
542
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人