《java编程思想》学习笔记一

面向对象的三种基本特征: 1、抽象 2、继承 3、多态

2.2 java数据存储方式

java数据保存,6中存储方式

1)

寄存器(存储器内部):由编译器根据需要分配。程序没有直接控制权。

2)

堆栈(ram):创建时需要知道所存储数据的“长度”和“存储时间”。保存对象的引用和简单类型。

3)

堆(ram):保存对象。不需要知道所存储数据的“长度”和“存储时间”。

4)

静态存储(ram):ram中的特定位置。用static 关键字指出一个对象的特定元素是静态的。但java 对象本身永远都不会置入静态存储空间。

5)

常数存储(rom): 常数值通常直接置于程序代码内部。这样做是安全的,因为它们永远都不会改变。有的常数需要严格地保护,所以可考虑将它们置入只读存储器(rom)。

6)

非ram存储:“流式对象”(另一台机器)、“固定对象”(磁盘)。

c++执行效率

c++认为程序的执行效率是最重要的一个问题,所以它允许程序员作出选择。为获得最快的运行速度,存储以及存在时间可在编写程序时决定,只需将对象放置在堆栈(有时也叫作自动或定域变量)或者静态存储区域即可。这样便为存储空间的分配和释放提供了一个优先级。

为执行效率着想

a)

c++没有自动垃圾回收机制,因为垃圾回收机制回带来额外的开销。

b)

c++有两种创建对象的方式:1)在写程序时创建:在堆栈中创建(执行效率高,不灵活);2)动态创建:在堆中创建(运行时才能确定对象的准确类型和存在时间,灵活,但是执行效率偏低)。

数组

c\c++ :数据就是内存块,不安全。当数组越界时,c\c++“默认”接受,允许随机访问内存。

java:创建对象数组时,对于数组引用初始化为null。创建原始类型数组时,分配内存空间划分0。当数组越界时,抛出运行时异常。由于需要检查每个数组的访问,所以会消耗一定的时间和多余的代码量,而且没有办法把它关闭。

12.2 clone

clone 是object类中的protected方法,对于需要克隆功能的子类将该clone方法覆写为public。

object.clone()内部判断对象是否实现了cloneable(空接口)。否则抛出clonenotsupportedexception。 implements

cloneable 接口标记对象是可克隆的。

object.clone(){

1、判断对象是否实现了cloneable接口

2、利用rtti获得需克隆对象的实际大小。

3、按位复制。

}

浅层复制与深层复制

浅层复制:super.clone()

深层复制:super.clone(),并对对象中的每个引用都调用clone()。

1.6 多态

将一条消息发给对象时,如果并不知道对方的具体类型是什么,但采取的行动同样是正确的,这种情况就叫作“多态性”(polymorphism)。对面向对象的程序设计语言来说,它们用以实现多形性的方法叫作“动态绑定”。


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值