首页 理论教育 Java对象的属性和方法以及垃圾回收

Java对象的属性和方法以及垃圾回收

时间:2023-11-18 理论教育 版权反馈
【摘要】:一个对象由一组属性和对属性进行操作的一组方法组成。在Java中,运用运算符“.”可以实现对象变量或调用对象方法。②对象超出了作用范围时,就会被认为是垃圾对象,被垃圾回收器回收并释放内存。

Java对象的属性和方法以及垃圾回收

很多编程爱好者,包括有过很多年编程经验的人,对于对象的概念都是很模糊的,如果将对象的概念与现实生活中的实物相比,就会发现对象其实是很好理解的。

对象就是实际生活中的事物,可以说一切事物都是对象,在现实生活中时时刻刻都接触到对象这个概念,例如桌子、椅子、电脑电视机空调等。这些实物都可以说是对象。

抽象来讲,对象是系统中用来描述客观事物的一个实体,是构成系统的基本单位。一个对象由一组属性和对属性进行操作的一组方法组成。从更抽象的角度来看,对象是问题域或现实中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用,它是一组属性和有权对这些属性进行操作的一组方法的封装体。客观世界是由对象和对象之间的联系组成的。

1.对象创建

用简单数据类型来说,有了int类型还不行,程序中能用的是int类型的变量,并且必须给变量赋值后才具有意义。同样,定义了类只是定义了数据类型,要想使用,还必须用该类型声明相应的变量,并给变量赋一个具体的值,这一过程称为对象创建。

创建对象的语法格式如下:

类名对象名=new类名([参数列表]);

例如:String s1=new String(“hello”);

在这个例子中先给对象命名为s1,并且声明s1是属于字符串类型的对象,最后把“hello”这个字符串类型对象的内存地址赋给这个对象,并且初始化。以后要操纵这个对象,只要操纵这个s1对象就可以了。

2.对象引用

通过对象创建之后,如何引用对象呢?比如通过Student类创建xiaofang这个对象,那么如何访问xiaofang的name、sex和number呢?这个过程称为对象引用。对象引用就是通过访问对象变量或调用对象方法。在Java中,运用运算符“.”可以实现对象变量或调用对象方法。

引用对象的语法格式如下:

引用对象的属性:对象.属性

调用对象的方法:对象.成员方法([参数])

比如xiaofang.number表示访问xiaofang的属性number。(www.xing528.com)

下面来看一个对象引用的实例

在这段Java面对对象程序设计中,学习者一定要学会一点,首先看主程序,也就是“public staticvoidmain(Stringargs[]){}”。在这个主程序中看到了两句代码,一句是对象初始化语句,一句是利用对象引用对象方法的语句。这样学习起来比较方便,很快就能看出这个程序要干什么,再去细看方法究竟是干什么的。

3.对象比较和销毁

在Java语言中,对象比较主要运用“==”运算符和equal()函数进行比较。用“==”运算符比较对象时,只要两个对象相等即返回true,不同返回false。

不过这两个符号其实现的机制不同。或者说,对于两个相同的对象,如果利用它们来进行比较,往往会有不同的结果。例如,分别定义了3个String对象

Stringa=new String("welcome");//创建一个对象a

Stringb=new String("welcome");//创建一个对象b

Stringc=a;//创建一个对象,并将对象a地址赋值给c

以上3个对象,内容是一样的。但是如果利用“==”和equal函数来比较,往往会有不同的结果。

当用运算符“==”时,a==b,返回结果是false,说明他们是两个不同的对象;当用equal函数时,返回值是true。

其实不难理解,对象a和对象b两个对象虽然内容相同,但是其在内存中分配的地址不同,也就是同一个模具出来的外观看起来相同的不一样的盒子。而对象a和对象c虽然对象名称不同,但是在内存中的地址却是相同的。所以利用运算符“==”返回值为false,而用equal函数时,返回值是true。运算符“==”是用来比较内存中的地址是否相同,而equal只比较其内容,即使地址不同,但内容相同,equal返回值就为true。

Java堆是一个运行时数据区,对象从中分配空间。Java虚拟机(JVM)的堆中存储着正在运行的应用程序所建立的所有对象,这些对象通过new或newarray等指令建立,但是它们不需要程序代码来显式释放,而是由垃圾回收器负责释放的。

垃圾回收器是Java平台中用得最频繁的对象销毁方法。垃圾回收器会全程侦测Java应用程序的运行情况。一旦发现有些对象成为垃圾时,垃圾回收器就会销毁这些情况,并释放这些对象所占用的内存空间。通常情况下,如果程序发现以下两种情况时,系统会以为这些对象是需要被销毁的垃圾对象。①将一个NULL值赋值给对象。如用户先建立了一个对象a。对象用完了之后,再利用赋值语句,将NULL值赋值给这个对象a。此时这个对象与内存中对象的存储地址之间就失去了联系,此时内存中的这个对象就似乎成为了一个无主的对象,就会被垃圾回收器销毁。②对象超出了作用范围时,就会被认为是垃圾对象,被垃圾回收器回收并释放内存。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈