易截截图软件、单文件、免安装、纯绿色、仅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


相关文档:

JNA实现Java调用Fortran

在成功实现Java调用C++之后,接下来想到能否通过JNA实现Java调用Fortran,今天试验了一下,还是比较容易的。
网上有一个Java调用F95的例子,但是我考虑不仅要实现F95的调用,还要实现F77的调用,所以费了一些周折。
问题的关键在于F77为过程名自动添加了一个尾部的下划线,所以sub1这个过程,到Java一端,就变成了sub1_, ......

java 接口与抽象类的区别(转)

一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体的业务实现了。当你需要再开发另一个相近的项目时,你以前的抽象层说不定还可以再次利用 呢,面对对象的设计 ......

JAVA读取txt文件

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
/**
* @author dengshaohua
*/
public class ReadPhone {
/**
* 读取数据
*/
public void ReadData(){
try {
FileReader read = new File ......

Java中startWith方法的使用!


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

Java第一天


正式开始Java了.
先是配置Java
java_home path classpath(1.5以上版本可以不用配置classpath了)
不过杯具的是.一开始理解错了.以为classpath的".;"--当前目录是指javac X:\aa.java的哪个X:目录..然后java aa就不用指定了..
弄了好久都不是这样的..还以为是win 7的原因..Orz
Java配置好了.该选文本编辑器了..
同学叫 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号