java问题:有个类Student Student stu=null 与Student stu= new Student()有和区别

如题所述

Student stu=null是初始化赋值,Student stu= new Student()是在堆中创建一个Student对象的空间,并stu指向改空间地址,stu的值为内存地址。用前者调用Student中的属性会空指针异常,后者则不会。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-23
前者就是把一个Student类型的指针存在了stu里,但是,这个stu没有指向对象内存;后者是让这个Student类型的指针stu指向对象内存中的一个默认Student的类对象。
第2个回答  2011-09-23
null还没有申请内存空间,也就是只是申明了,还是没生出来,new就是已经申请内存空间生出出来了
第3个回答  2011-09-23
Student stu=null ; 空指针
stu 没有指向任何内存地址
Student stu= new Student()
stu 指针指向了一个新分配的内存地址
第4个回答  2011-09-23
第一个没有内存地址,第二个有内存地址

...stu=null 与Student stu= new Student()有和区别
Student stu=null是初始化赋值,Student stu= new Student()是在堆中创建一个Student对象的空间,并stu指向改空间地址,stu的值为内存地址。用前者调用Student中的属性会空指针异常,后者则不会。

...类Student stu=null;和Student stu=new Student();有什么区别,详细...
前者只是声明了一个空对象,java中有堆栈的定义,就是指向。这个空对象并没有指向一个可用的内存区域。它并不占空间。说白了就是一个等待人来用它的容器。后者是new出来的对象,它真事的存在,stu已经在内存中开辟了一块空间。你随时都可以对stu来操作。也就是stu里有的元素你都可以用,但前者却不...

java中的静态内部类的特点是什么?
并且它可以直接被用 外部类名+内部类名 获得。以下举例说明怎么使用:Student类有个叫School的内部类(非静态)Student stu = new Student();stu.School sch = new stu.School();sch就是School的一个对象。假如School是内部静态类:Student.School sch = new Student.School()。

java对象的引用.方法和对象.方法有何区别
我想你问的应该是java的对象与引用的区别。java的内存宏观上看有两个,即堆和栈。堆保存对象内容(方法等),栈保存引用内容。举个例子:Student stu1 = new Student(); stu1.setId(20); Student stu2 = stu1;其中的stu1、stu2保存在栈内存中,它们是两块不同的内存。这个学生对象(id=20,...

急求!!一个java程序编写的简单的学生信息管理系统
String sex=null; if(男.isSelected()){sex=男.getText();} else{sex=女.getText();} 学生=new Student(); 学生.setNumber(number); 学生.setName(name); 学生.setSpecialty(specialty); 学生.setGrade(grade); 学生.setBorth(borth); 学生.setSex(sex); try{ outOne=new FileOutputStream(file); ...

java中创建对象和实例化对象有什么区别
创建对象:Student stu1 = new Student();实例对象:Student stu2 = new Student("张三",21,"男");可以看出实例对象调用了Student类的构造方法,为创建的对象赋了值,而创建对象只是创建了一个对象。这么解释不知道能不能明白,应该是很简单的吧...希望你能帮到你 ...

在c#中 student stu = new student()中的ctu是什么可以换成c吗?_百 ...
student stu = new student()这句话就是把 类(student)中的 对象(stu)实例化 , stu是对象的名字,可以自己命名的,比如定义成a,那么就变成了student a= new student()建议了解一下“实例化”的知识。

...代码开始执行这一句Student s = new Student();是跳到了哪里_百度知...
Student s = new Student();这个是新建了一个Student对象。哪都没跳。只是初始化了一个对象而已。你在初始化的时候,会调用无参的构造方法,也就是 public Student() { super();} 这个,然后它会调用super();这个是调用父类的无参构造方法 ...

java 程序题目
main(String[] argu){ Student stu = new Student(123,"jing",24, true, 5083394);System.out.println("The student informaiton:\\n\\r"+ "id:"+stu.getId()+ " name:"+stu.getName()+ " age:"+stu.getAge()+ " sex:"+stu.getSex()+ " phone:"+stu.getPhone());} } ...

有耐心的过来看看,问题出在哪:java 继承
首先你犯了个错误,你要明白成员变量是属于对象的,因此你的p虽然可以用setpeople方法但是变量是属于p自身拥有的值。因此应该如下:public class TestStudent { public static void main(String[] args){ Student stu=new Student();stu.setpeople("xiaojun",20,"male","student");stu.setgrade("...

相似回答