大数值,引用类型的存储,数组及OOP

1.大数值

BigInteger类实现了人已经读的整数运算,BigDecimal类实现浮点数运算,当直接采用valueOf赋值时会产生精度的丢失(因为采用valueOf会存储为float或double型导致失去精度,并不是BigDecimal无法表示出精度),当通过new方式进行字符串赋值时可以精确计算不会失去精度。

2.引用类型的存储

使用时最好将数组控制在500000以下。

引用类型的只记住地址

基本类型是按照压缩格式存储在数组中的(因为基本类型长度是固定的),但引用类型的长度并不固定,无妨直接放到数组里(不知道数组长度到底够不够),此时,引用类型会在数组中放进一个个地址(由于地址长度是固定的所以地址也是压缩的),由这些地址指向一个个实体,在实体之中存放实际数据。

现在在源码中进行了一定更改,由上述存储改为将大数值进行切割,切割为基本类型放进一个个数组中,损失了运算能力提升了存储能力。

在看源码的过程中会发现,当引用类型小于某值时会以基本类型存储,比如当引用类型小于int型时会存储为int型的等等。

3.数组

定义什么类型的数组就要往里面放什么类型的数据

匿名对象:不用在内存里申请一个变量的空间,节省占据内存的空间

<数组拷贝>

浅拷贝:两个数组指向同一个地址。

深拷贝:重新开辟一个内存空间,将要拷贝的内容copy一份放进新开辟的内存空间里。

引用数组的复制很不安全,即使是使用Arrays.copyOf也不能保证良好的深拷贝(此函数很可能仅有第一层深拷贝)在使用引用类型数组拷贝时要慎重。

ps:基本类型全都是深拷贝,而引用类型的默认都是潜拷贝。

(因为基本类型都是直接在栈中,存储数据也直接跟在栈中,并不是地址指向所以深拷贝;而引用类型是变量名在栈中指向一个地址的实体,所以拷贝的时候默认是浅拷贝)

OOP

1.类
对某一事物描述的定义,模板。

封装(数据隐藏):表明功能而不暴露实现方法。

static(静态类型)

静态的东西直接存在于方法区,且只有一份,被所有对象所共享。(主要是共享性)

静态方法被称为类方法,静态成员被称为类成员,均为所有对象所共有。

2.方法调用
static 方法直接存在于方法区,为所有类共享,所以不用创造一个新对象类通过对象调用相应方法。

当方法并不为static类时,由于并没有存在的实例所以无法直接调用类中的方法。

关于方法类型:

方法定义为什么类型,就要在方法中返回什么类型,同样在使用时要用相应的类型来接受方法返回的结果

当不需要返回值时,将方法定义为void(空型)此时方法不存在返回值,无需使用参数接收,所以可以直接调用

3.private私密型
主要用处是控制可读可写的操作

只写get方法达到只读的目的,只写set方法达到只写的目的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值