赞
踩
类名称 对象名称 = new 类名称( )
因为基本数据类型和引用数据类型的主要区别就在于内存的开辟和使用,所以关键字new的作用就是开辟内存。
只要是引用数据类型想使用,就必须用new来开辟空间
// 自己定义的类 class Book{ String title; double price; public void getInfo(){ System.out.println("图书的名称:"+title+",图书的价格:"+price); } } // 主类 public class Hello{ public static void main(String[] args){ Book bk = new Book(); bk.title = "月亮"; bk.price = 90.0; bk.getInfo(); } }
引用类似于c++中的指针概念
所有引用分析中,最重要的还在于关键字“new”
使用关键字“new”实例化了两个对象,那么一个对象将占用一个堆内存,不会相互影响
对象的引用传递
// 自己定义的类 class Book{ String title; double price; public void getInfo(){ System.out.println("图书的名称:"+title+",图书的价格:"+price); } } // 主类 public class Hello{ public static void main(String[] args){ Book bkA = new Book(); Book bkB = null bkA.title = "月亮"; bkA.price = 90.0; bkB = bkA //引用传递 bkB.price = 99.8 bkA.getInfo(); } }
严格来说bkA和bkB保存的是对象的地址信息
也就是说上面的引用就是讲bkA的地址给了bkB,bkB能够修改bkA的内容
一块堆内存能够被多个栈内存所指向,但是一块栈内存智能保存 一块堆内存的地址信息
先后声明并实例化两个对象后,再将其中一个引用给另外一个的内存分配:
没有被栈内存指向的堆内存就被称为垃圾,垃圾会不定期的被垃圾收集器(GC)回收,然后释放
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。