易截截图软件、单文件、免安装、纯绿色、仅160KB

Java学习拾遗1

JVM将为类的instance和static变量赋上缺省值(默认值),包括数组array中的每一个元素--而不用再写初始化赋值语句。
切记:局部变量是没有缺省值的,必须手动初始化!并且这一缺省赋值过程是在对象的构造函数调用之前完成的。
我们看下边的程序:
public class Test {
    public static void main(String[] args){
        SubClass subClass = new SubClass();
        System.out.println(subClass.getObj());   
    }
}
class SuperClass {
    public SuperClass() {
        init();
    }
    protected void init() {
    }
}
class SubClass extends SuperClass {
   private Object obj;// 如果换成obj = null 呢?
    protected void init() {
        obj = "abcdefg";
    }
    public Object getObj() {
        return obj;
    }
    public void setObj(Object obj) {
        this.obj = obj;
    }
}
这个的输出为abcdefg,而换成obj=null则输出为null。
这个子类覆盖了父类的init()方法。
其实在子类运行构造函数的时候就使用了super()调用父类的构造函数,而在父类的构造函数中调用了init()方法,而此时子类已经有 init()方法覆盖了父类的init()方法,所以此时调用的实际上是子类的init()方法.(这也告诉我们,一般不要再构造方法中调用可能被重写的方法,这可能会给程序带来很多问题。)
而修改后却输出null,追寻这个的原因又引出了一个Java初始化顺序的问题:
新建一java对象(上面main方法中new SubClass())时,它的内部初始化顺序为:
1. 父类静态成员和静态初始化块 ,按在代码中出现的顺序依次执行
2. 子类静态成员和静态初始化块 ,按在代码中出现的顺序依次执行
3. 父类实例成员和实例初始化块 ,按在代码中出现的顺序依次执行
4. 父类构造方法
5. 子类实例成员和实例初始化块 ,按在代码中出现的


相关文档:

java时区解决方案

 tomcat启动web服务的时候总是会有8小时的时差,
琢磨了好久,最简单的办法就是
找到文件夹jdk1.6.0_07\jre\lib\zi\Etc
这里边都是一些时区文件GTM+1,GTM+2,GTM+3....
备份一份Etc
拷贝N份GTM+8文件(中国的时区是GTM+8)
把GMT+8文件名改成GTM+1,GTM+2,GTM+3....
覆盖掉原来的Etc里边的文件
重启tomcat问题解决 ......

Java Logger(java日志)


目录
1. 简介
2. 安装
3. log4j基本概念
3.1. Logger
3.2. Appender
3.2.1. 使用ConsoleAppender
3.2.2. 使用FileAppender
3.2.3. 使用WriterAppender
3.3. Layout
3.4. 基本示例
3.4.1. SimpleLayout和FileAppender
3.4.2. HTMLLayout和WriterAppender
3.4.3. PatternLayout和ConsoleAppender
4. 使用外部 ......

JAVA操作XML的完整例子

这是一个用JAVA W3C DOM 进行XML操作的例子,包含了查询、增加、修改、删除、保存的基本操作。较完整的描述了一个XML的整个操作流程。适合刚入门JAVA XML操作的朋友参考和学习。
假设有XML文件:test1.xml
<?xml version="1.0" encoding="UTF-8"?>
<books>
 <book>
  < ......

Java虚拟机几个命令行参数说明

一、运行class文件
执行带main方法的class文件,命令行为:
java <CLASS文件名>
注意:CLASS文件名不要带文件后缀.class
例如:
java Test
如果执行的class文件是带包的,即在类文件中使用了:
package <包名>
那应该在包的基路径下执行,命令行为:
java <包名>.CLASS文件 ......

JAVA程序员面试之葵花宝典

JAVA程序员面试之葵花宝典
1、面向对象的特征有哪些方面
1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
2.继承:继承是一种联结类的层次模 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号