java类初始化
❶ java语言,什么是初始化啊初始化和实例化一样吗
java中不管对象也好,还是基本数据类型也好,你声明它的时候,它们都称为变量,在你使用变量前给变量进行赋值,这就是变量的初始值,因此叫变量初始化。
实例化是指对象的创建,一般是指通过 new 关键字(当然还有其他途径,比如反射),在堆中为对象分配内存,这就是实例化。举个非常简单的例子,你知道飞机会飞,但飞机在你脑海里只是个概念,当真的把飞机制造出来,变成实实在在的,存在于物质世界(java中称内存)的东西时,你才能用它来飞。如果在物质世界(内存)中根本就不存在,那就无法使用。因此,实例化可以说将概念(类),变成实际存在(内存中存在)的过程就称为实例化。
❷ 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数组类初始化如何赋值
Comparable[] s={new Comparable(3),new Comparable(20),new Comparable(13)};
估计也只能这样子了.这么写不能直接指定数组的长度.
数据特别多的话,最好是把你的数据用个int数组包装起来,再写个循环.
❹ 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 对象的初始化方式有几种
1、构造器
创建对象时初始化,比较常见。
classA{
publicA()
{}
}
public
2、初始化块
较少见,用于有特殊要求的类。
static {
}
3、方法
即Setter方法,虽然方便(不必在创建对象时一次性初始化),但是可能引发空指针异常。
❻ java 类型类怎么初始化赋值
总结了java数组的初始化的两种方法如下:
1、最简单的方法是直接赋值,如:
一维数组:
int[] num = {21,34,2,-9,987,0,-89};//创建一个一维数组,并赋7个初始值
二维数组:
int[][] num2 = {{21,22},{34,35}};//创建一个二维数组,并赋2个初始值
2、先创建一个数组对象出来,再进行循环赋值,如:
一维数组:
int[] num3 = new int[5];//先创建一个5长度的数组对象
for(int i=0;i<num3.length;i++){//之后进行循环遍历对数组进行赋值
num3[i] = i;
}
二维数组:
int[][] num4 = new int[5][2];//先创建一个二维数组对象
for(int i=0;i<num3.length;i++){//之后进行循环遍历对数组进行赋值
for(int j=0;j<num4[i].length;j++){
num4[i][j] = j;
}
}