![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程相关
iteye_11467
这个作者很懒,什么都没留下…
展开
-
从代码保护说开去
刚在网上查了查“代码保护”,说的是公司代码,怕被员工偷走的事情。 我这里说的“代码保护”,说的不是这回事。说的是我在做项目过程中,经常写的如下的代码。 if (list != null && !list.isEmpty()) { ... } if (s != null && !s.equals("")...原创 2012-01-06 11:05:45 · 170 阅读 · 0 评论 -
关于Java中的final
Java中的final共有三种用法:final成员变量 当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变,但引用变量所指向的对象中的内容还是可以改变的。 其初始化可以在三个地方, 一是其定义处,也就是说在final变量定义时直接给其赋值, 二是在构造函数中。而且在...原创 2012-02-09 13:29:47 · 73 阅读 · 0 评论 -
组合还是继承
对于类的扩展,在面向对象的编程过程中,我们首先想到的是类的继承,由子类继承父类,从而完成了对子类功能的扩展。但是,面向对象的原则告诉我们,对类的功能的扩展要多用组合,而少用继承。其中的原因有以下几点: 第一、子类对父类的继承是全部的公有和受保护的继承,这使得子类可能继承了对子类无用甚至有害的父类的方法。换句话说,子类只希望继承父类的一部分方法,怎么办? 第二、实际的对象千变万化,如果每...原创 2012-02-07 10:57:31 · 114 阅读 · 0 评论 -
Java中finalize()
垃圾回收器要回收对象的时候,首先要调用这个类的finalize方法(你可以 写程序验证这个结论),一般的纯Java编写的Class不需要重新覆盖这个方法,因为Object已经实现了一个默认的,除非我们要实现特殊的功能(这 里面涉及到很多东西,比如对象空间树等内容)。 不过用Java以外的代码编写的Class(比如JNI,C++的new方法分配的内存),垃圾回收器并不能对这些部分进行...原创 2012-02-06 17:31:49 · 93 阅读 · 0 评论 -
Java基本数据
数据类型 大小 范围 默认值 byte(字节) 8 -128 - 127 0 shot(短整型) 16 -32768 - 32768 0 int(整型) 32 -2147483648-2147483648 0 long(长整型) 64 -9233372036854477808-9233372036854477808 0 float(浮...原创 2012-02-06 09:56:08 · 137 阅读 · 0 评论 -
Java内存分配
一般Java在内存分配时会涉及到以下区域: ◆寄存器:我们在程序中无法控制 ◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中 ◆堆:存放用new产生的数据 ◆静态域:存放在对象中用static定义的静态成员 ◆常量池:存放常量 ◆非RAM存储:硬盘等永久存储空间...原创 2012-02-06 09:38:00 · 79 阅读 · 0 评论 -
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 · 100 阅读 · 0 评论 -
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 · 75 阅读 · 0 评论 -
toArray用法
Java中toArray有两个方法。 public Object[] toArray() public <T> T[] toArray(T[] a) 两个问题: 1. 有什么区别? 2. 怎么使用? 区别是前者会产生ClassCastException,后者不会。为什么呢? 来看一下源代码。 public Object[] toArray() {...原创 2012-02-03 09:46:53 · 282 阅读 · 0 评论 -
从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 · 376 阅读 · 0 评论 -
Java内部类
内部类分为成员内部类、局部内部类、匿名内部类、静态嵌套类。 成员内部类 成员内部类,就是作为外部类的成员,可以直接使用外部类的所有成员和方法,即使是private的。同时外部类要访问内部类的所有成员变量/方法,则需要通过内部类的对象来获取。 对于普通的类,可用的修饰符有final、abstract、strictfp、public和默认的包访问。 但是成员内部类更像一个成员变量...原创 2012-02-09 14:10:21 · 82 阅读 · 0 评论