面向对象的三种基本特征: 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^)/