- 浏览: 41377 次
- 性别:
- 来自: 杭州
最近访客 更多访客>>
文章分类
最新评论
-
Demin7926:
正好想要这样的数据,而且最好还是.mdf的,但还是不错了,多谢 ...
中国地区数据库Access c#生成sql数据文件 -
zhuzidian:
1.这个classpath是没有必要设置的,那几个jar默认会 ...
Java开发环境的搭建 -
蜡笔小新:
收下
请问第2条中,J2EE开发环境下载什么样的sdk呢?
Java开发环境的搭建
父类
package book.oo.initorder; public class Parent { private int ix = 50; private static int iz = getNext(30); { System.out.println("Parent的初始化块"); int x = 100; int y = getNext(100); } static { System.out.println("Parent的静态初始化块"); int sx = 100; int sy = getNext(100); } public Parent() { System.out.println("Parent的构造方法被调用"); } public void display() { System.out.println("Parent的display方法被调用"); System.out.print("ix=" + this.ix); System.out.println("; iz=" + iz); dispA(); } public static void dispA() { System.out.println("Parent的dispA()被调用"); } public static int getNext(int base) { System.out.println("Parent的getNext(int base)被调用"); return ++base; } /** * 当Java在进行垃圾回收时,会调用对象的finalize方法 */ protected void finalize() { System.out.println("Parent的销毁方法被调用"); } }
子类
package book.oo.initorder; public class Child extends Parent { { System.out.println("Child的初始化块"); int bx = 100; } static { System.out.println("Child的静态初始化块"); } public Child() { super(); System.out.println("Child的构造方法被调用"); } public static void dispB(){ System.out.println("Child的dispB()被调用"); } /** * 当Java在进行垃圾回收时,会调用对象的finalize方法 */ protected void finalize() { System.out.println("Child的销毁方法被调用"); super.finalize(); } }
测试类
package book.oo.initorder; public class ClassInitOrderTest { public static void main(String[] args) { System.out.println("不new对象,访问静态方法时的输出:"); Child.dispB(); System.out.println(); System.out.println("new对象,访问非静态方法时的输出:"); new Child().display(); //通知虚拟机进行垃圾回收 System.gc(); } //保留main方法的前2行程序,将后面的注释,得到的输出结果是如下: // 不new对象,访问静态方法时的输出: // Parent的静态初始化块 // Parent的getNext(int base)被调用 // Parent的getNext(int base)被调用 // Child的静态初始化块 // Child的dispB()被调用 //将main方法的前3行程序注释,保留后面的程序,得到的输出结果如下: // new对象,访问非静态方法时的输出: // Parent的静态初始化块 // Parent的getNext(int base)被调用 // Parent的getNext(int base)被调用 // Child的静态初始化块 // Parent的初始化块 // Parent的getNext(int base)被调用 // Parent的构造方法被调用 // Child的初始化块 // Child的构造方法被调用 // Parent的display方法被调用 // ix=50; iz=31 // Parent的dispA()被调用 // Child的销毁方法被调用 // Parent的销毁方法被调用 // 总结: // 1、虚拟机在首次加载Java类时,会对静态初始化块、静态成员变量、静态方法进行一次初始化 // 2、只有在调用new方法时才会创建类的实例 // 3、类实例创建过程:按照父子继承关系进行初始化,首先执行父类的初始化块部分,然后是父类的构造方法;再执行 // 本类继承的子类的初始化块,最后是子类的构造方法 // 4、类实例销毁时候,首先销毁子类部分,再销毁父类部分 }
发表评论
-
JDK_实例(求指定范围内的质数)
2009-11-20 14:15 845package book.arrayset; impor ... -
JDK_实例(使用Arrays)
2009-10-29 13:28 697package book.arrayset; impor ... -
JDK_实例(处理大数字)
2009-10-29 13:21 1036package book.number; import ... -
JDK_实例(生成随机数)
2009-10-29 13:20 1936package book.number; import ... -
JDK_实例(转换数字的进制)
2009-10-29 13:16 985package book.number; /** * ... -
JDK_实例(数字的舍入)
2009-10-29 13:14 917package book.number; import ... -
JDK_实例(格式化数字)
2009-10-29 13:05 579package book.number; import ... -
JDK_实例(数字和数字封装类)
2009-10-29 13:02 713package book.number; /** * ... -
JDK_实例(Adapter 适配器模式)
2009-10-29 12:43 1493接口 package book.oo.sort; / ... -
JDK_实例(Factory工厂模式)
2009-10-29 12:39 839接口 package book.oo.factory; ... -
JDK_实例(Singleton单列模式)
2009-10-29 12:35 1025A package book.oo.singleton; ... -
JDK_实例(排序类)
2009-10-29 12:29 1048排序接口 package book.oo.sort; ... -
JDK_实例(方法与变量在继承时的覆盖和隐藏)
2009-10-29 12:24 782父类 package book.oo.cov ... -
JDK_实例(自定义形状类)
2009-10-29 12:12 788长方形 package book.oo; ... -
JDK_实例(Java 参数传递)
2009-10-29 12:05 904package book.oo; public clas ... -
JDK_实例(复数类)
2009-10-29 11:52 847package book.oo; public clas ... -
JDK_实例(命令行程序)
2009-10-29 11:29 666package book.basic; public c ... -
JDK_实例(计算阶乘)
2009-10-29 11:28 698package book.basic; public c ... -
JDK_实例(控制程序流程)
2009-10-29 11:27 549package book.basic; public c ... -
JDK_实例(java 运算符)
2009-10-29 11:24 791package book.basic; public c ...
相关推荐
### Tomcat启动时类加载顺序详解 #### 一、引言 Apache Tomcat是一款开源的Servlet容器,主要用于部署Java Web应用程序。它支持最新的Servlet、JSP等规范,并且以其轻量级、简单易用的特点而受到开发者的青睐。在...
可以通过调整类加载顺序、设置类加载器优先级、使用命名空间隔离等手段来解决。 10. **类加载器调试** 为了帮助开发者调试类加载问题,WebLogic提供了详细的日志和跟踪选项,可以通过修改`weblogic.log.File`和`...
展类加载器的加载顺序来理解。系统类加载器在加载类时,会先尝试让扩展类加载器加载,如果扩展类加载器无法加载,则再由系统类加载器自己尝试加载。这样的设计是为了保证核心类库的唯一性和安全性,避免用户自定义的...
这样设计的好处是保证了核心库的稳定性,防止用户自定义类覆盖系统类,同时也便于控制类的加载顺序和版本。 4. **类的生命周期**: 类加载器不仅负责加载类,还参与类的生命周期管理,包括链接(验证、准备和解析...
5 类的加载顺序 2. 6 方法和变量在继承时的覆盖与隐藏 2. 7 排序类 2. 8 Singleton单例模式 2. 9 Factory工厂模式 2. 10 Adapter适配器模式 第3章 数字 3. 1 数字与数字封装类 3. ...
例如,使用自定义类加载器实现按需加载,或者通过调整类路径和加载顺序,避免不必要的类加载。 7. **类加载异常处理** 在加载过程中,如果遇到类找不到、类格式错误等问题,JVM会抛出ClassNotFoundException、...
1. **启动类加载器(Bootstrap ClassLoader)**:这是最基础的类加载器,负责加载JDK中的核心类库,如`java.lang`包下的类。这个类加载器没有父类加载器,因为它本身是由C++编写并在JVM启动时初始化的。 2. **扩展类...
Java类加载器是Java虚拟机(JVM)的重要组成部分,它们负责将Java源代码编译后的字节码(.class文件)转化为可执行的内存表示,即`java.lang.Class`对象,进而创建类实例。Java类加载器按照特定的规则进行工作,包括...
在实际开发中,理解类加载机制有助于解决一些常见的问题,例如类冲突、类初始化顺序等。通过深入研究和定制类加载器,开发者可以实现更灵活的应用架构,如热更新、插件系统等。 在提供的文档"java类加载机制.doc"中...
### Apache与Tomcat整合实例详解 #### 一、引言 在现代Web应用开发中,Apache HTTP Server(简称Apache)与Apache Tomcat的整合是非常常见的一种配置方式。Apache以其高效稳定的HTTP服务能力和丰富的功能模块而...
实例167 继承关系的加载顺序 266 实例168 如何访问同名的方法或变量 268 实例169 super()方法的使用 271 实例170 this方法的使用 274 实例171 一张考试成绩单 275 实例172 银行自动存取一体机 278 9.4 多态 284 实例...
Tomcat内部定义了多个类加载器,包括Bootstrap、Extension、Application(分别对应JDK的启动类加载器、扩展类加载器和应用程序类加载器),以及Tomcat自定义的Common、Catalina、Shared和WebappX类加载器。...
- 如果有多个实现类,可以通过实现`java.util.Serviceloader.Provider`接口来自定义加载顺序。 ### 进阶使用 除了基本的SPI机制,还可以通过自定义`java.util.ServiceLoader.Provider-Implementation`元数据来控制...
1. 类冲突:不同类加载器加载相同类导致的问题,可通过调整类加载顺序或使用独立的类加载器解决。 2. 静态初始化器问题:多个类加载器加载同一类,可能导致静态初始化器被执行多次,需要谨慎处理类的加载关系。 3....
实例167 继承关系的加载顺序 266 实例168 如何访问同名的方法或变量 268 实例169 super()方法的使用 271 实例170 this方法的使用 274 实例171 一张考试成绩单 275 实例172 银行自动存取一体机 278 ...
实例167 继承关系的加载顺序 266 实例168 如何访问同名的方法或变量 268 实例169 super()方法的使用 271 实例170 this方法的使用 274 实例171 一张考试成绩单 275 实例172 银行自动存取一体机 278 9.4 多态 284 实例...
实例167 继承关系的加载顺序 266 实例168 如何访问同名的方法或变量 268 实例169 super()方法的使用 271 实例170 this方法的使用 274 实例171 一张考试成绩单 275 实例172 银行自动存取一体机...
Java类的初始化和实例化详解 Java类的初始化和实例化是Java编程语言中两个非常重要的概念,它们都是Java类生命周期的重要组成部分。下面我们将详细介绍Java类的初始化和实例化的过程,并解释其中的细节。 一、Java...