㈠ java里面什么叫为属性初始化
初始化根据字面意思比较容易理解 就是给属性赋一个初始值
比如你定义了一个属性整型的age:
private int age; //这样算是定义了一个 但是并没有初始化
private int age=20;//这样才算初始化
如果你在调用时 又没初始化它 有时候就会出现问题 比如:
public class Test {
public static void main(String...args){
int a;
System.out.println(a);//编译出错 变量a没有初始化
}
}
基本数据类型作为类成员变量,无论初始化与否都不会出错。
作为函数代码里的变量,无论什么类型不初始化全部都会报错。
比如下面这样就不会报错了
public class Test {
private int a;
public void print(){
System.out.println(a);
}
public static void main(String...args){
Test t = new Test();
t.print();
}
}
不过你要问的是什么是初始化啊 哈哈 看最前面一点就行了 后面看着糊涂就先暂时不用管吧 学到后面的时候 你再回过头来看 自然就懂了
㈡ java中为什么要为类的属性初始化
你好,初始化可以使类一产生对象就拥有自身的属性值。
比如创建一个人初始化他的名字,年龄等。
一创建人这个对象就拥有名字年龄等属性值。
当然也可以不初始化,在需要的时候调用方法进行初始化。
如果满意,请采纳,谢谢。
㈢ java中一个类的属性何时初始化
我们知道一个类(class)要被使用必须经过装载,连接,初始化这样的过程。下面先对这三阶段做一个简单的描述,之后会结合一个简单的例子来说明java中类的初始化过程。
在装载阶段,类装载器(Bootstrap ClassLoader 或者用户自定义的ClassLoader) 把编译形成的class文件载入内存,创建类相关的Class对象,这个Class对象封装了我们要使用的类的类型信息。
连接阶段又可以分为三个子步骤:验证、准备和解析。
验证就是要确保java类型数据格式 的正确性,并适于JVM使用。
准备阶段,JVM为静态变量分配内存空间,并设置默认值,注意,这里是设置默认值,比如说int型的变量会被赋予默认值0 。在这个阶段,JVM可能还会为一些数据结构分配内存,目的 是提高运行程序的性能,比如说方法表。
解析过程就是在类型的常量池中寻找类、接口、字段和方法的符号引用,把这些符号引用替换成直接引用。这个阶段可以被推迟到初始化之后,当程序运行的过程中真正使用某个符号引用的时候 再去解析它。
类会在首次被“主动使用”时执行初始化,为类(静态)变量赋予正确的初始值。在Java代码中,一个正确的初始值是通过类变量初始化语句或者静态初始化块给出的。而我们这里所说的主动使用 包括:
1. 创建类的实例
2. 调用类的静态方法
3. 使用类的非常量静态字段
4. 调用Java API中的某些反射方法
5. 初始化某个类的子类
6. 含有main()方法的类启动时
初始化一个类包括两个步骤:
1、 如果类存在直接父类的话,且直接父类还没有被初始化,则先初始化其直接父类
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里也有,则可以通过编译。总之,要保证局部变量在使用之前一定被初始化了。所以,一个好的做法是在声明他们的时候就初始化他们,如果不知道要出事化成什么值好,就用上面的默认值吧!其实第三种变量和第二种本质上是一样的,都是方法中的局部变量。只不过作为参数,肯定是被初始化过的,传入的值就是初始值,所以不需要初始化。
㈤ java中属性的初始化方法
属性的类型不同初始化的方法也不一样吧。除了Java的内建类型以为的数据类型初始化的话都是用new关键字来实现的。
㈥ 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()方法的那个类),虚拟机会先初始化这个主类。
㈦ java中一个类的属性何时初始化解决办法
你好,初始化可以使类一产生对象就拥有自身的属性值。 比如创建一个人初始化他的名字,年龄等。 一创建人这个对象就拥有名字年龄等属性值。 当然也可以不初始化,在需要的时候调用方法进行初始化。
㈧ java中为什么要为类的属性初始化
1. 对于类的成员变量,不管程序有没有显式的进行初始化,Java虚拟机都会先自动给它初始化为默认值。
默认值如下:
Boolean false
Char '\u0000'(null)
byte (byte)0
short (short)0
int 0
long 0L
float 0.0f
double 0.0d
2. 局部变量声明之后,Java虚拟机就不会自动给它初始化为默认值,因此局部变量的使用必须先经过显式的初始化。
但是需要声明的是:对于只负责接收一个表达式的值的局部变量可以不初始化,参与运算和直接输出等其它情况的局部变量需要初始化。
㈨ java的属性的初始化方法 是怎样的
初始化就是在变量的后面附值。对于对象的初始化,一般是要用到关键字new,如果没有学到对象的话,还是不用记的,这时的初始化还包含于实例化,但实例化还是有一种方法就是将变量或这方法用关键字static该它定义为静态,这样也是一种实例化的ff。如果听不懂还是先不要急,只要知道是在变量后赋值就行
㈩ java@notnull标注的属性必须在构造函数里初始化吗
不是。java是一种面向对象的编程语言,语言中的null构造函数是不能去初始化属性的,但是可以用notnull进行委托。