Java基础——一切皆对象

1、自己理解简介
一切皆对象,oop更看重的其实对象的引用,我们不必像c或者c++那样关注对象的底层,例如对象的存储以及生命周期、销毁,所谓的引用就好比我们手中的遥控器(引用),来遥控我们的电视(对象),我们调大、减小音量,都只需要使用遥控就可以办到。
2、对象创建
(1)对象的创建需要我们自己创建。我们在使用对象的同时,更多的使用其对象的引用,但是引用是可以独立存在的,我们只是希望我们的引用和对象产生一种关联关系。
(2)关键字new,我们创建对象是通过关键词new来实现的,字面意思,“来个新对象”。
3、对象的存储
Java是怎样存储的以及数据存储到哪了
其实主要分5块区域
(1)寄存器,其实就是我们的处理器,这个位置空间有限,我们不能直接控制,同时我们也不能感觉到其存在的任何痕迹。
(2)堆栈,位于通用RAM(随机存储器),这是中快速有效的分配方式,仅次于寄存器,我们可以通过堆栈指针的上下移动来分配和释放空间。这也就导致我们必须知道位于堆栈中的对象的生命周期,以便能够快速的移动指针,这也牺牲了程序的灵活性,因此我们的对象并不放置于此,但是对象的引用放置在这一区域
(3)堆,一种通用内存池(RAM区)我们的对象真正存储的位置。当new新建对象时,堆内存会自动为其分配内存空间,同时编译器也不知到其对象能活多长时间。这是和c有本质区别的,虽然灵活性提高了,但是对象的生命周期,如何被销毁?这就需要我们的Java垃圾回收器。
(4)常量存储区,通常放置程序代码内部,方法区、静态区。有时会将其于其他部分分离,我们因此也将其放置ROM(只读存储器)
注意:典型的例子:字符串常量池,其内存空间都是由内存自动分配的,并放置静态存储区内。
(5)非RAM存储
这一区域通常放置我们持久化对象流对象,所谓持久化,就是我们的对象可以放置于其他媒介之上,并在必要的时候可以恢复为我们RAM对象。
4、特例基本类型
首先基本类型,为啥特殊,并且不用new来创建,这点有点效法c了,本身比较小,new创建效率低,而且采用直接分配的值的形式的自动变量。
注意:基本类型的存储空间大小一直不变。
高精度数字—BigInteger、BigDecimal。这个可以看成是包装类,我们基本类型的操作基本都可以通过方法来实现。
5、java中的数组
我们创建数组对象,其实就是创建了引用数组,其确保每一个都会被初始化,可为null值,数组存在范围查询——代价是少量的内存开销以及下标检查,目的是提高我安全和效率问题。同时数组也能为基本类型,因为他会将其所占内存全部置为0.
6、作用域
我们可以理解为代码块即{},其中我们对象的引用作用于其对应域中,但是其引用的失效,并不代表着对象的销毁。这与基本类型的生命周期是不同的。
7、类
字段:可以是任意类型的对象。成员字段我们虽然可以不给初始值,但是存在默认初始值只说,我们可以理解为字段的定义就是为了给其引用进行对象的关联,否则其就失去了存在的意义。
方法:方法名、参数、返回值、方法体。其中入参看似是传递的对象,实则是对象的引用。
8、static关键字
我们使用static关键字修饰的,就意味着这个域或者方法不会与所在类中的任何对象有所关联。
注意:我们在创建一个类的同时,默认是导入了java.lang包的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值