java程序设计风格:(类的说明介绍)
Java文件注释头
类中开头处插入如下 注释
/******************************************************************
*该类功能及特点的描述(例如:该类是用来.....)
*
*
*该类未被编译测试过。
*
*@see(与该类相关联的类):(AnotherClass.java)
*
*
*
*开发公司或单位:XXX软件有限公司研发中心
*
*版权:本文件版权归属XXX公司研发中心
*
*
*@author(作者):XXX
*
*@since(该文件所支持的JDK版本):Jdk1.3或Jdk1.4
*
*@version(版本):1.0
*
*
*@date(开发日期): 1999-01-29
*
*最后更改日期: 2003-01-02
*
*
*修改人: XXXX
*
*复审人: 张三李四 王五
*
*/
内存管理
伊甸园用来保存新的对象,它就像一个堆栈,新的对象被创建,就像指向该栈的指针在不断的增长一样,当伊甸园区域中的对象满了之后,JVM系统将要做可到达性测试,主要任务是检测有哪些对象由根集合出发是不可到达的,这些对象就可以被JVM回收,并且将所有的活动对象从伊甸园区域拷到TO区域,此时一些对象将发生状态交换,有的对象就从TO区域被转移到From区域,此时From区域就有了对象,这个过程都是JVM控制完成的。
Java 中的析构方法 finalize
对象是使用完了 尽量都赋 为 null
共享静态变量存储空间
不要提前创建对象
........
void f(){
int i;
A a = new A();
//类A的对象a被创建
//在判断语句之中没有
//应用过a对象
.....
if(....){
//类A的对象a仅在此处被应用
a.showMessage();
....
}
.....
}
..........
正确的书写方式为:
void f(){
int i;
.....
if(...){
A a = new A();
//类A的对象a被创建
//应用过a对象
a.showMessage();
}
......
}
JVM内存参数调优
表达式、语句和保留字
非静态方法中可引用静态变量
静态方法不可以引用非静态变量
静态方法中可 创建 非静态变量
调用父类的构造方法必须将其放置子类构造方法的第一行
JAVA核心类与性能优化
线程同步:Vector Hashtable
非线程同步: ArrayList HashMap
字符串累加 尽量使用 StringBuffer +=
方法length() 和 length属性 区别
IO缓存,读写文件优化。
类与接口
内部类(Inner Class)是Java语言中特有的类型,内部类只能被主类以外的其他内部类继承,主类是不能继承其内部类的,因为这样就引起了类循环继承的错误,下面的代码就是错误的。
public class A extends x {
public A(){}
……
Classs x{
…..
}
}
上面的代码将引发类循环继承的错误,这种错误在编译时就会被发现,比较容易发现和排除。
但是下面例子中的内部类的继承方式却是正确的:
class A{
….
public A(){}
……
class X extends Y {
……….
}
calss Y {
……
}
}
什么时候使用继承,什么样的继承是合理的:
1. 现实世界的事物继承关系,可以作为软件系统中类继承关系的依据。
2. 包含关系的类之间不存在继承关系。如:主机,外设 ,电脑。 把主机类和外设类作为电脑类的成员就可以了。
3. 如果在逻辑上类B是类A的一种,并且类的所有属性和行为对类而言都有意义,则允许B继承A的行为和属性(私有属性与行为除外)。