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

thinking in java 第五章2 初始化


第一点:
在编写程序的过程中,java会保证尽量在使用的时候初始化,所以在没有初始化的变量在使用过程中编译器会报错,这里我们说的变量有2种,一种是全局变量,一种是局部变量,全局变量编译器会自动赋给初值,而局部变量不能,看下面例子:
public class Chushihua {
private int j;
private Integer i1;
public void f() {
int i;
int n = j * 12;
Integer i2;
// int m = i*12;没有初始化,不能使用
System.out.println(j);
System.out.println(i1);
// System.out.println(i2); 没有初始化,不能使用
}
public static void main(String[] args) {
new Chushihua().f();
}
}
所以说对象和变量是一样的,全局的jvm会赋给初值,但是局部的必须赋给初值后才能使用,在使用的过程中还要注意变量的初始化顺序的问题。
第二点:
构造器和系统自动初始化的顺序,
public class Counter {
private Integer i = new Integer(5);
Counter() {
System.out.println(i);
System.out.println(j);
i = new Integer(7);
System.out.println(i);
}
private Integer j;
public static void main(String[] args) {
new Counter();
}
}
输出结果:
5
null
7
由此例子可以看出顺序,jvm会先对全局变量进行初始化,也就是构造方法的赋值操作是在初始化之后的。
也就是在类的内部,变量定义的先后顺序决定了初始化的顺序。即使变量散落在各个方法之间,他们仍会在构造器之前初始化。
静态数据的初始化:无论创建多少个对象,静态对象只占有一份存储区域。Static关键字不能应用于局部变量,因此他只能作用于域。
总结,一个对象在创建的过程中的初始化。
初始化的顺序是先静态对象,然后是“非静态”的对象,并且静态的对象在第一次对象初始化的时候只初始化一次。
构造器其实也是静态方法。
静态初始化块,当首次生成这个类的一个对象时,或者首次访问属于那个类的静态数据成员时(即使从未输出国那个类的对象),这段代码仅执行一次。非静态的初始化块世界和静态的初始化块是一样的,只是少了static
class Cup {
Cup(int i) {
System


相关文档:

ImageMagick for java 使用Jmagick处理高质量图片

在做pdf文档转成jpg的时候,发现了Jmagick的创建高质量的图片的一个java类库,自己以前使用另外的一个类库,感觉这个更好点,就试着用了下,感觉不错
1.使用的windows下的jmagick-win-6.3.9-Q16.zip 地址是:http://downloads.jmagick.org/6.3.9/
2.doc对应的api地址:http://downloads.jmagick.org/jmagick-doc/
3.安装Ima ......

ImageMagick for java 使用Jmagick处理高质量图片

在做pdf文档转成jpg的时候,发现了Jmagick的创建高质量的图片的一个java类库,自己以前使用另外的一个类库,感觉这个更好点,就试着用了下,感觉不错
1.使用的windows下的jmagick-win-6.3.9-Q16.zip 地址是:http://downloads.jmagick.org/6.3.9/
2.doc对应的api地址:http://downloads.jmagick.org/jmagick-doc/
3.安装Ima ......

java并发编程实践笔记

1, 保证线程安全的三种方法
:
    a, 不要跨线程访问共享变量
    b, 使共享变量是
final类型的
    c, 将共享变量的操作加上同步
2, 一开始就将类设计成线程安全的
, 比在后期重新修复它
,更容易
.
3, 编写多线程程序
, 首先
保证它是正确的
, 其次再考虑性能 ......

Java中startWith方法的使用!


今天看Java代码时,看到了字符串有一个方法是startsWith(String str)当时觉得见名之意,很简单吗,然后就自己动手做了一下,没想到发现了一个startsWith()方法的重载,startsWith(String str,int Index),当时上网去查了一下没有后边这个方法,于是自己做了一下测试,现在给出如下详细解释,startsWith(String str)就是检查形参 ......

java 面向对象思想编程

第一章              概述
版权声明
此文档由王健旭(http://www.wangjianxu.com  ginger547@gmail.com )负责整理总结,并对该文档保有有限责任权利,此文档只能用于学习以及教学,请勿用作商业用途,因此而
产生的法律问题,本人一概不负责。 本 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号