Java的初始化类、变量、程序块加载探讨

1.基本类型数据的初始值

InitialValues.java

public class InitialValues {
   boolean t;
   char c;
   byte b;
   short s;
   int i;
   long l;
   float f;
   double d;
   void print(String s) {
    System.out.println(s);
   }
   void printInitialValues() {
    print("boolean " + t);
    print("char " + c);
    print("byte " + b);
    print("short " + s);
    print("int " + i);
    print("long " + l);
    print("float " + f);
    print("double " + d);
   }
   public static void main(String[] args) {
    InitialValues iv = new InitialValues();
    iv.printInitialValues();
   }
}

结果:

boolean false
char _
byte 0
short 0
int 0
long 0
float 0.0
double 0.0

2.变量初始化

在类的内部,变量定义的先后顺序决定了初始化的顺序。即使变量定义散布于方法定义之间,它们仍旧在任何方法(包括构造器)被调用之前得到初始化。看下面的代码:

OrderOfInitialzation.java(执行顺序在代码中已标出,按类标注,罗马字母标注主类中执行顺序。)

class Tag {
   Tag(int marker) {
    System.out.println("Tag(" + marker + ")");
   }
}
class Card {
   Tag t1 = new Tag(1);// Ⅰ①
   Card() {
    System.out.println("Card()");// Ⅰ④
    t3 = new Tag(33);// Ⅰ⑤
   }
   Tag t2 = new Tag(2);// Ⅰ②
   void f() {
    System.out.println("f()");// Ⅱ⑥
   }
   Tag t3 = new Tag(3);// Ⅰ③
}
public class OrderOfInitialzation {
   public static void main(String[] args) {
    Card t = new Card();// Ⅰ
    t.f();// Ⅱ
   }
}

结果:

Tag(1)
Tag(2)
Tag(3)
Card()
Tag(33)
f()

时间: 2024-09-19 09:21:10

Java的初始化类、变量、程序块加载探讨的相关文章

类的热加载(Hot Deployment)的简单例子

应用服务器一般都支持热部署(Hot Deployment),更新代码时把新编译的确类 替换旧的就行,后面的程序就执行新类中的代码.这也是由各种应用服务器的独 有的类加载器层次实现的.那如何在我们的程序中也实现这种热加载功能呢?即 要在虚拟机不关闭的情况下(比如一个),换个类,JVM 就知道加载这个新类,执 行新类中的逻辑呢?下面就简单演示这样一个热加载的例子,首先大致了解一下 类加载器. 标准 Java 启动器的类加载器层次 1. 引导类加载器(bootstrap): 加载内核 API,如 rt

第十二节--类的自动加载 -- Classes and Objects in PHP5 [12]

object|php5|加载 | = 本文为Haohappy读<<Core PHP Programming>> | = 中Classes and Objects一章的笔记 | = 翻译为主+个人心得 | = 为避免可能发生的不必要的麻烦请勿转载,谢谢 | = 欢迎批评指正,希望和所有PHP爱好者共同进步! +-------------------------------------------------------------------------------+*/ 第十二节-

谁在java项目中在jsp页面加载gis视频控件,谁用过??

问题描述 谁在java项目中在jsp页面加载gis视频控件,谁用过?? 为什么在本地html上可以加载上,但是部署到项目上 通过jsp去打开 就无法加载到,显示不出视频呢.求大神 解决方案 视频指定的路径对不对?

按键-java 键盘钩子 进程 客户端 进程加载HOOK DLL

问题描述 java 键盘钩子 进程 客户端 进程加载HOOK DLL java web程序在客户端获取键盘按键 这个要怎么写?要有实例 没写过这样的程序 不知道从哪里下手 解决方案 需要本地做插件(用Activex或者JavaBean),直接用web程序实现不了 解决方案二: 监听程序可参考 http://mzhx-com.iteye.com/blog/733704 解决方案三: 插件是用什么做的 ?

第十二节--类的自动加载_php基础

/* +-------------------------------------------------------------------------------+ | = 本文为Haohappy读<<Core PHP Programming>>  | = 中Classes and Objects一章的笔记  | = 翻译为主+个人心得  | = 为避免可能发生的不必要的麻烦请勿转载,谢谢  | = 欢迎批评指正,希望和所有PHP爱好者共同进步!  +-------------

php类的自动加载操作实例详解_php技巧

本文实例讲述了php类的自动加载操作.分享给大家供大家参考,具体如下: 类的自动加载 在外面的页面中,并不需要去引入类文件,但程序会在需要一个类的时候自动去"动态加载"该类. ① 创建一个对象的时候new ② 直接使用一个类名(操作静态属性与方法) 使用__autoload魔术函数 当出现两种情况时候,就会调用该函数,该函数需要我们预先定义,在其中写好加载类文件的通用语句 function __autoload($name){ require './lib/'.$name.'.clas

类的自动加载

当你尝试使用一个未定义的类时,PHP会报告一个致命错误. 解决方法就是添加一个类,可以用include包含一个文件. 究竟你知道要用到哪个类. 但是,PHP提供了类的自动加载功能, 这可以节省编程的时间. 当你尝试使用一个PHP没有组织到的类, 它会寻找一个__autoload的全局函数. 假如存在这个函数,PHP会用一个参数来调用它,参数即类的名称. 例子6.15说明了__autoload是如何使用的. 它假设当前目录下每个文件对应一个类. 当脚本尝试来产生一个类User的实例,PHP会执行_

Java 从Jar文件中动态加载类

由于开发的需要,需要根据配置动态加载类,所以简单测试了一下JAVA动态加载类 定义接口 package loader; public interface HelloIface {     public String hello();          public String sayHi(String name); } 实现接口 在其他插件类实现此接口,并导出为jar,如D:/tmp/test.jar package loader; public class HelloImpl impleme

JAVA如何扫描一个包下面的所有类,并加载到内存中去

问题描述 spring中有一个<context:component-scan base-package="com.controller"/>意思是说把com.controller包下面的所有类扫描出来.我现在也想做这样的功能把com.controller下面所有类全部扫描出来,并加载到内存中去比如说com.controller下面有三个类com.controller.Acom.controller.Bcom.controller.C......我想扫描出这三个类,然后Cla