java 初始化,实例化的区别

时间:2022-07-08 09:22:27
class A{
  public static void main(String args[]){
  A a=new A();
}
}

那么A a;是实例化,a=new A();是初始化。对吗?
小弟实在搞不清这两个有什么区别?初始化是赋值。
那么来个“实例化”有什麼用阿?仅仅创建一个对象根本没用嘛。。。

9 个解决方案

#1


class A{
  public A(){
    ……//初始化
}
  public static void main(String args[]){
  A a(指定一个类型为A的引用A)=new A()(实例化,初始化就是执行A的构造函数,见上,如无则调用默认的);
}

#2


引用楼主 lbiah2004 的帖子:
class A{ 
  public static void main(String args[]){ 
  A a=new A(); 



那么A a;是实例化,a=new A();是初始化。对吗? 
小弟实在搞不清这两个有什么区别?初始化是赋值。 
那么来个“实例化”有什麼用阿?仅仅创建一个对象根本没用嘛。。。

只有 A a;

既不是初始化,也不是实例化,只是一个声明而已。

A a = new A();//new A 才是实例化

初始化,比如,你声明了一个对象引用,Object o = null;这就是把这个引用初始化一下。
当然了,初始化还可以是比如Servlet,被加载后要进行必要的初始化,好让以后的操作得以执行啊。

#3


楼上的
A a = new A();//new A 才是实例化 
那么初始化在哪里?是new A()自动调用A的构造函数算是初始化吗?

#4



对象实例化的同时就会分配存储空间,然后对成员变量进行初始化赋值,再执行构造函数。这个过程就是对象初始化。调用构造函数只是初始化的一部分。

#5


貌似有点懂了。。。。
请问各位大大,从哪里可以更深入的了解类的初始化与实例化阿?

#6


市面上哪本java基础书都会讲这些的。这些都是J2SE的内容。

#7


去书店,找本基础的书,翻下就OK了

#8


如果懒得看书,建议看马士兵的视频教程,里面分析的好详细。
我也稍微说一下
A a = new A();

new 创建对象过程:
1.类加载
    代码验证
2.给对象在内存(堆)中分配空间(给属性赋值);
3.属性赋默认值;
byte,short.int,long ->0
float  ->0.0f
double ->0.0
boolean  ->false
String ->null
char ->'\u0000'
4.给属性赋初始值;(用等号‘=’)
5.调用构造方法(方法和类名相同,没有返回类型)
6.将对象在堆区中的首地址返回给引用a

#9


謝謝各位好心人,没办法分不够了....

#1


class A{
  public A(){
    ……//初始化
}
  public static void main(String args[]){
  A a(指定一个类型为A的引用A)=new A()(实例化,初始化就是执行A的构造函数,见上,如无则调用默认的);
}

#2


引用楼主 lbiah2004 的帖子:
class A{ 
  public static void main(String args[]){ 
  A a=new A(); 



那么A a;是实例化,a=new A();是初始化。对吗? 
小弟实在搞不清这两个有什么区别?初始化是赋值。 
那么来个“实例化”有什麼用阿?仅仅创建一个对象根本没用嘛。。。

只有 A a;

既不是初始化,也不是实例化,只是一个声明而已。

A a = new A();//new A 才是实例化

初始化,比如,你声明了一个对象引用,Object o = null;这就是把这个引用初始化一下。
当然了,初始化还可以是比如Servlet,被加载后要进行必要的初始化,好让以后的操作得以执行啊。

#3


楼上的
A a = new A();//new A 才是实例化 
那么初始化在哪里?是new A()自动调用A的构造函数算是初始化吗?

#4



对象实例化的同时就会分配存储空间,然后对成员变量进行初始化赋值,再执行构造函数。这个过程就是对象初始化。调用构造函数只是初始化的一部分。

#5


貌似有点懂了。。。。
请问各位大大,从哪里可以更深入的了解类的初始化与实例化阿?

#6


市面上哪本java基础书都会讲这些的。这些都是J2SE的内容。

#7


去书店,找本基础的书,翻下就OK了

#8


如果懒得看书,建议看马士兵的视频教程,里面分析的好详细。
我也稍微说一下
A a = new A();

new 创建对象过程:
1.类加载
    代码验证
2.给对象在内存(堆)中分配空间(给属性赋值);
3.属性赋默认值;
byte,short.int,long ->0
float  ->0.0f
double ->0.0
boolean  ->false
String ->null
char ->'\u0000'
4.给属性赋初始值;(用等号‘=’)
5.调用构造方法(方法和类名相同,没有返回类型)
6.将对象在堆区中的首地址返回给引用a

#9


謝謝各位好心人,没办法分不够了....