❶ java中对象如何初始化
初始化数组有三种方式,以下都是去初始化一个String类型长度2的数组:
方式一:
123String[] strs = new String[2];strs[0] = "0";strs[1] = "1";
方式二:
1String[] strs = new String[]{"0", "1"};
方式三:
1String[] strs = {"0", "1"};
三种方式,都有自己的使用场景,在合适场景使用即可。
❷ JAVA 对象的初始化到底有几种形式
1、构造器
创建对象时初始化,比较常见。
classa{
publica()
{}
}
public
2、初始化块
较少见,用于有特殊要求的类。
static
{
}
3、方法
即setter方法,虽然方便(不必在创建对象时一次性初始化),但是可能引发空指针异常。
❸ java的类初始化,隐式,显示,什么意思
1.Java对象何时被初始化
Java对象在其被创建时初始化,在Java代码中,有两种行为可以引起对象的创建。其中比较直观的一种,也就是通常所说的显式对象创建,就是通过new关键字来调用一个类的构造函数,通过构造函数来创建一个对象,这种方式在java规范中被称为“由执行类实例创建表达式而引起的对象创建”。
当然,除了显式地创建对象,以下的几种行为也会引起对象的创建,但是并不是通过new关键字来完成的,因此被称作隐式对象创建,他们分别是:
● 加载一个包含String字面量的类或者接口会引起一个新的String对象被创建,除非包含相同字面量的String对象已经存在与虚拟机内了(JVM会在内存中会为所有碰到String字面量维护一份列表,程序中使用的相同字面量都会指向同一个String对象)
●自动装箱机制可能会引起一个原子类型的包装类对象被创建;
●String连接符也可能会引起新的String或者StringBuilder对象被创建,同时还可能引起原子类型的包装对象被创建,比如(本人试了下,在mac ox下1.6.0_29版本的javac,对待下面的代码会通过StringBuilder来完成字符串的连接,并没有将i包装成Integer,因为StringBuilder的append方法有一个重载,其方法参数是int);
2.Java如何初始化对象
当一个对象被创建之后,虚拟机会为其分配内存,主要用来存放对象的实例变量及其从超类继承过来的实例变量(即使这些从超类继承过来的实例变量有可能被隐藏也会被分配空间)。在为这些实例变量分配内存的同时,这些实例变量也会被赋予默认值。
上面的代码中,Foo和Bar中都定义了变量i,在main方法中,我们用Foo引用一个Bar对象,如果实例变量与方法一样,允许被覆盖,那么打印的结果应该是1,但是实际的结果确是0。
但是如果我们在Bar的方法中直接使用i,那么用的会是Bar对象自己定义的实例变量i,这就是隐藏,Bar对象中的i把Foo对象中的i给隐藏了,这条规则对于静态变量同样适用。
在内存分配完成之后,java的虚拟机就会开始对新创建的对象执行初始化操作,因为java规范要求在一个对象的引用可见之前需要对其进行初始化。在Java中,三种执行对象初始化的结构,分别是实例初始化器、实例变量初始化器以及构造函数。
http://www..com/s?wd=52014085078
❹ Java类属性初始化是什么
1.我们都知道java是面向对象的语言, 那么类就好比是一个模板, 比如Student类, 这个类其实是一个模板, 是一个规范.
然后我们执行下面这行代码
Student xiaoMing = new Student();
就相当于我们用Student这个模板去生成了一个对象, 这个对象叫xiaoMing.
如果Student这个类有一个属性private int age;当我们只是做上面new对象的动作时候, xiaoMing的age并没有被赋值, 只是初始化成了0
(数值类型的属性初始化都是0, String则是null, 例如有个字符串类型的属性name就会是null)
然后xiaoMing.setAge(10); 那么这个时候xiaoMing的age属性才变成10,
所以类属性初始化指的就是在new对象的时候对各个属性赋予一个初始化的值.
2.为什么要用构造方法进行属性初始化:
这个并不是强制的, 构造方法分成无参构造和带参构造, 用构造方法对属性进行初始化只是单纯的为了方便而已.
❺ JAVA里初始化是什么意思
初始化就是给变量一个初始值。
例如:
声明一个变量:String aa = "abc";int cc =0;其中abc和0就是初始化的值,最后值不一定是abc或者 0加入你覆盖了aa的值如下:
aa = "def" ; cc=1;那最后aa变量的值就是def,cc变量就是1了,初始化的目的是为了让变量有值,防止使用时出现异常。
作用
1、遇到new,getstatic,putstatic,或invokestatic这4条字节码指令时,如果类没有进行过初始化,则需要先触发其初始化。生成这四条指令单最常见的Java代码场景是:
使用new关键字实例化对象的时候,读取或设置一个类的静态字段(被final修饰,已在变异期把结果放入常量池的静态字段除外)的时候,以及调用一个类的静态方法的时候。
2、使用java.lang.reflect包的方法对类进行反射调用的时候,如果类没有进行过初始化,则需要先出法其初始化。
3、当初始化一个类的时候,如果发现其父类还没有进行初始化,则需要先出法其父类的初始化。
4、当虚拟机启动时,用户需要指定一个要执行的主类(包含main()方法的那个类),虚拟机会先初始化这个主类。