当前位置:首页 » 编程语言 » java初始化的方法

java初始化的方法

发布时间: 2022-09-10 18:30:16

1. java怎么对象的初始化

(1) 非静态对象的初始化

在创建对象时,对象所在类的所有数据成员会首先进行初始化。

基本类型:int型,初始化为0。

如果为对象:这些对象会按顺序初始化。

※在所有类成员初始化完成之后,才调用本类的构造方法创建对象。

构造方法的作用就是初始化。

(2) 静态对象的初始化

程序中主类的静态变量会在main方法执行前初始化。

不仅第一次创建对象时,类中的所有静态变量都初始化,并且第一次访问某类(注意此时

未创建此类对象)的静态对象时,所有的静态变量也要按它们在类中的顺序初始化。

2. Java 变量到底要如何初始化

不同的变量初始化方法不同。
变量包括:
类的属性,或者叫值域
方法里的局部变量
方法的参数
对于第一种变量,Java虚拟机会自动进行初始化。如果给出了初始值,则初始化为该初始值。如果没有给出,则把它初始化为该类型变量的默认初始值。
int类型变量默认初始值为0
float类型变量默认初始值为0.0f
double类型变量默认初始值为0.0
boolean类型变量默认初始值为false
char类型变量默认初始值为0(ASCII码)
long类型变量默认初始值为0
所有对象引用类型变量默认初始值为null,即不指向任何对象。注意数组本身也是对象,所以没有初始化的数组引用在自动初始化后其值也是null。
对于两种不同的类属性,static属性与instance属性,初始化的时机是不同的。instance属性在创建实例的时候初始化,static属性在类加载,也就是第一次用到这个类的时候初始化,对于后来的实例的创建,不再次进行初始化。这个问题会在以后的系列中进行详细讨论。

对于第二种变量,必须明确地进行初始化。如果再没有初始化之前就试图使用它,编译器会抗议。如果初始化的语句在try块中或if块中,也必须要让它在第一次使用前一定能够得到赋值。也就是说,把初始化语句放在只有if块的条件判断语句中编译器也会抗议,因为执行的时候可能不符合if后面的判断条件,如此一来初始化语句就不会被执行了,这就违反了局部变量使用前必须初始化的规定。但如果在else块中也有初始化语句,就可以通过编译,因为无论如何,总有至少一条初始化语句会被执行,不会发生使用前未被初始化的事情。对于try-catch也是一样,如果只有在try块里才有初始化语句,编译部通过。如果在catch或finally里也有,则可以通过编译。总之,要保证局部变量在使用之前一定被初始化了。所以,一个好的做法是在声明他们的时候就初始化他们,如果不知道要出事化成什么值好,就用上面的默认值吧!其实第三种变量和第二种本质上是一样的,都是方法中的局部变量。只不过作为参数,肯定是被初始化过的,传入的值就是初始值,所以不需要初始化。

3. java中一维数组的定义及初始化的方法有哪几种

两种:
1 int a[]=new int[10]
for(int i=0;i<10'i++){
a[i]=i+1;
}
2 int[] b={1,2,3,4,5,6}

4. JAVA中 数据初始化的三种方法是什么

public
class
staticinitialization
{
public
static
void
main(string[]
args)
{
system.out.println("creating
new
cupboard()
in
main");
new
cupboard();
system.out.println("creating
new
cupboard()
in
main");
new
cupboard();
t2.f2(1);
t3.f3(1);
}
static
table
t2
=
new
table();//1:标记位1
static
cupboard
t3
=
new
cupboard();//2
标记位2
}
//
/:~
/**
1:要执行main方法,必须先加载staticinitialization,加载过程中,发现有静态变量t2,首先执行t2
=
new
table()
new
table()需要实例化table,必须先加载table类
加载table类的过程中,发现table类也有静态变量,首先执行static
bowl
b1
=
new
bowl(1);过程和上面一样,要去创建bow1
创建之前加载bow1类,加载完毕,调用bow1的构造方法,于是打印出“bowl(1)”
b1实例化(创建)完成
然后执行static
bowl
b2
=
new
bowl(2);
再次调用bow1构造方法,打印“bowl(2)”
这时候table类加载完毕,开始实例化t2变量,调用table类构造方法,打印“table()”
执行b2.f(1);
打印“f(1)”
2:道理和上面1一样,只是在cupboard中,static变量初始化完毕之后,还要去初始化一个非static变量
最后执行main中的方法,注意的是,此时table,cupboard
这2个类的加载过程已经完成,之后创建这2个类的实例的过程中,不再去初始化static变量
有其他问题在hi我
*/

5. JAVA中怎么初始化对象数组

你这个试试对对象数组的一个声明,并没有示例话,所以会报空指针异常
这个数组对象都是现用现初始化的
Animals [] an=new Animals[5];//这只是个对象类型数组的声明
用的时候需要
for(int i=0;i<5;i++)
an[i]=new Animals();
这样你明白了吧
你前面的那个光声明了数组,但是没有调用Animals的构造函数,你数组里的每个元素都是一个对象,使用前必须要先实例化
如果你只是用户输入长度,
Animals [] an=new Animals[n];
声明时是可以用变量的
或者你直接Animals [] an=new Animals[100];定义一个大数组,要用的时候再new Animals();实例化,或者用LinkedList<Animals> an=new LinkedList<Animals>();定义一个动态数组

6. 如何初始化java数组

Java数组初始化的两种方法:

1、静态初始化:程序员在初始化数组时为数组每个元素赋值;

2、动态初始化:数组初始化时,程序员只指定数组的长度,由系统为每个元素赋初值。

代码如下:

[java]viewplainprint?
publicclassArrayInit{
publicstaticvoidmain(String[]args){

//静态初始化数组:方法一
Stringcats[]=newString[]{
"Tom","Sam","Mimi"
};

//静态初始化数组:方法二
Stringdogs[]={"Jimmy","Gougou","Doggy"};

//动态初始化数据
Stringbooks[]=newString[2];
books[0]="ThinkinginJava";
books[1]="EffectiveJava";

System.out.println(cats.length);
System.out.println(dogs.length);
System.out.println(books.length);
}
}

7. JAVA中 数据初始化的三种方法是什么

int a[]; //声明未初始化
a = new int [10]; // 定义占用空间大小(10个int)
int a[] = new int [10]; //声明并定义大小(即分配了指定大小的空间)
int a[] = {1,2,3}; // 声明并初始化,占用空间大小是3个int。
希望能对你有所帮助。

8. Java中对象如何初始化

初始化数组有三种方式,以下都是去初始化一个String类型长度2的数组:
方式一:
123String[] strs = new String[2];strs[0] = "0";strs[1] = "1";
方式二:

1String[] strs = new String[]{"0", "1"};
方式三:
1String[] strs = {"0", "1"};
三种方式,都有自己的使用场景,在合适场景使用即可。

9. java中怎么给变量初始化

不同的变量初始化方法不同。

变量包括:

  1. 类的属性,或者叫值域

  2. 方法里的局部变量

  3. 方法的参数

对于第一种变量,Java虚拟机会自动进行初始化。如果给出了初始值,则初始化为该初始值。如果没有给出,则把它初始化为该类型变量的默认初始值。


int类型变量默认初始值为0


float类型变量默认初始值为0.0f


double类型变量默认初始值为0.0


boolean类型变量默认初始值为false


char类型变量默认初始值为0(ASCII码)


long类型变量默认初始值为0


所有对象引用类型变量默认初始值为null,即不指向任何对象。注意数组本身也是对象,所以没有初始化的数组引用在自动初始化后其值也是null。

对于两种不同的类属性,static属性与instance属性,初始化的时机是不同的。instance属性在创建实例的时候初始化,static属性
在类加载,也就是第一次用到这个类的时候初始化,对于后来的实例的创建,不再次进行初始化。这个问题会在以后的系列中进行详细讨论。


对于第二种变量,必须明确地进行初始化。如果再没有初始化之前就试图使用它,编译器会抗议。如果初始化的语句在try块中或if块中,也必须要让它在第一
次使用前一定能够得到赋值。也就是说,把初始化语句放在只有if块的条件判断语句中编译器也会抗议,因为执行的时候可能不符合if后面的判断条件,如此一
来初始化语句就不会被执行了,这就违反了局部变量使用前必须初始化的规定。但如果在else块中也有初始化语句,就可以通过编译,因为无论如何,总有至少
一条初始化语句会被执行,不会发生使用前未被初始化的事情。对于try-catch也是一样,如果只有在try块里才有初始化语句,编译部通过。如果在
catch或finally里也有,则可以通过编译。总之,要保证局部变量在使用之前一定被初始化了。所以,一个好的做法是在声明他们的时候就初始化他
们,如果不知道要出事化成什么值好,就用上面的默认值吧!

其实第三种变量和第二种本质上是一样的,都是方法中的局部变量。只不过作为参数,肯定是被初始化过的,传入的值就是初始值,所以不需要初始化。

10. JAVA 对象的初始化到底有几种形式

1、构造器
创建对象时初始化,比较常见。
classa{
publica()
{}
}
public
2、初始化块
较少见,用于有特殊要求的类。
static
{
}
3、方法
即setter方法,虽然方便(不必在创建对象时一次性初始化),但是可能引发空指针异常。

热点内容
算法工作原理 发布:2025-01-12 20:36:38 浏览:24
网络访问监控软件 发布:2025-01-12 20:26:57 浏览:465
养羊啦源码 发布:2025-01-12 20:25:48 浏览:570
轩逸朗逸哪个配置最好 发布:2025-01-12 20:10:00 浏览:49
主板存储器分 发布:2025-01-12 20:04:46 浏览:376
数据库逻辑运算 发布:2025-01-12 20:03:54 浏览:571
javawindows服务器搭建 发布:2025-01-12 19:59:37 浏览:570
linux关闭iptables 发布:2025-01-12 19:58:49 浏览:150
服务器电脑名字改了影响数据库吗 发布:2025-01-12 19:58:44 浏览:652
手机存储优化 发布:2025-01-12 19:58:43 浏览:356