Java对象

一.Java对象与Java对象引用的区别

在Java语言中一切都可以看作对象,但真正操作标识符实质上是一个引用。

1.对象引用

Book book;//对象创建必须要用new Book book=new Book();

引用只是存放一个对象的内存地址,并非存放一个对象。实质上是将创建的Book对象的地址赋给对象引用book,从此book与该对象关联,通过book即可操纵该对象。

2.对象作为参数的特点

普通数据类型作为参数传递是值传递,而对象是引用传递。当对象作为参数时,传递的时对象的地址。

Class IntClass{
    Int value;
}
public class RunIntClass{
    public static void modifgValue(IntClass s,int val){ //IntClass 是对象引用
        s.value=val;
   }
    public static void main(String args[]){
        IntClass a=new IntClass(); //a-main方法-局部变量
        modifyValue(a,8);//方法调用
        System.out.println(a.value);
    }
}

结果为:8

解析:main方法中产生对象——modifyValue中对a引用的对象属性赋值——main方法中显示a对象的属性。

二.Java对象创建与C++对象创建的区别

Java和C++都使用new创建对象,但含义却有所不同,最大的不同之处就在系统的内存分配上。

在C++中,如果用new创建对象时需要注意一下几点:
1.new创建类对象需要指针接收,一处初始化,多处使用
2.new创建类对象使用完需要用delete销毁,以避免浪费存储空间。
3.new创建对象直接使用堆空间,而局部不用new定义类对象则使用栈空间,而栈中内存的分配和释放是由系统管理的,这样会方便很多。

而在Java中,只写“Book book;”是不会占用内存空间的,产生对象的代码“new book();”它的含义是:根据类模板产生一个对象,并在计算机内存中为此对象开辟出一块新的独立内存空间。在方法调用中,系统会为方法开辟一个栈空间,用于存储方法中的局部变量和形参,并且在方法执行时还能访问复制到对象中的属性。当方法执行完毕时,栈空间被释放。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值