Java编程思想----一切都是对象

1,用引用来操作对象

每种编程语言都肯定有其操作内存元素的方法,而在java中因为一切皆对象的思想,在操作内存元素上显得相对统一了。java中我们使用引用来操作对象,这就好比遥控器与电视机的关系,我们的希望的是电视发生改变,可能换台或者升降音量,但我们是使用遥控器来操作的,而不是走到电视机前来操作。这样我们就可以将引用和实际操作的对象区别开来了,同时这两者也可以独立存在了,可能电视机已经坏了没了,但遥控器还在,这在java中意味着我们创建了一个空引用,它并没有指向任意的对象。而如果对象单独存在的话,只有你代码显示创建这个对象的时候可以调用这个对象,接着由于我们没有引用指向这个对象,这个对象将不再能被我们调用了。

2,对象只能有我们来创建

创建对象的方法是在定义好这个对象所属的类以后使用关键字new来创建的,格式是:new TypeName(),这样我们就创建了一个对象了,如果你想重复使用这个对象而不是在创建这个对象的时候只使用一次就定义一个引用来指向这个对象吧,格式:TypeName name = new TypeName();

那么在内存中我们是怎样来存储对象和引用的呢?

a,寄存器:这个东西是存在与cpu当中的,在代码中我们是没办法显示的指定出来,只能根据需求进行分配了

b,堆栈(栈):这个是用来存放引用的地方,java系统需要确切知道栈中所存储的项的生命周期

c,堆:存放对象的地方,想存多久就存多久,前提是你的对象没有被垃圾回收器回收

d,常量池:用来存放一些不可改变的东西

e,非RAM存储:就是一些持久化或者流对象

但同时也存在一定的特例,这个就是基本类型,这个不是引用和对象的关系,而是直接将值存储在引用当中。

3,对象的销毁

前面我们说过在堆当中存储的对象,有的时候是可以想存多久就多久的,我们是不需要显示地销毁对象的。如果java对象还存在引用指向它则意味着还可能被使用,java的垃圾回收器就不会回收它。

同时我们在这里提出一个作用域的概念,比如一个方法。在方法体内定义了一些变量,当这个发放结束时这些变量也就消失了,但如果这个变量是一个指向对象的引用的话,那么很好引用没了,对象还在,然后对象每人鸟了,垃圾回收器也就把它干掉了。但这里我们需要明确一个概念是引用(或者叫变量吧)是受到作用域影响的,而对象是不受作用域影响的。

4,对象的创建

要创建一个对象,我们也要有创建这个对象的模版吧。你要知道这个对象有什么属性和功能呀,这就扯到类了,类是某一类对象的高度抽象,这一类对象具有相同的属性与功能,只是属性的具体值可能不一样,比如:我们都是人,都有名字,但名字的准确值不一样而已。

猜你喜欢

转载自blog.csdn.net/weixin_39702831/article/details/82854486
今日推荐