知识点摘要-20141229001

 

计算机执行Java程序时会在内存中开辟一块栈内存(stack)空间。其实在程序运行期间,JVM开辟了一个堆内存(heap)空间。 栈内存空间的存储特点是“后进先出”,堆内存空间的存储特点和栈不同,类似于一盘散沙,随处可以“堆放”。

 

 

ü栈内存中的引用变量指向堆内存中的实例对象

ü属性是有初始值的

ü 我们将堆内存里的东西称为“对象”,对应现实世界的事物

 

 

ü此时堆内存中有两个对象,引用变量book指向新创建的对象

ü 原来引用的对象等待垃圾回收

 

 

Java的内存管理与分配

ü 是一块Java使用内存区域,使用的方式:LIFO(后来者居上)

ü 也是一块Java使用内存区域,使用方式:随机分配

局部变量与堆对象空间分配

ü Java局部变量和方法参数在栈中分配,大小是按照变量的类型分配

ü 对象在堆中分配,按照类中声明属性(实例变量)分配空间


 

 

变量类型与分配

ü 变量分为:基本类型引用类型

ü 基本类型变量的空间大小:就是基本类型的空间大小,值是基本类型的值

ü 引用变量的值是一个对象的地址值,引用变量通过地址引用了一个堆对象

ü 引用类型变量的占用空间大小和值管理是“透明的(丌可看见)”由Java系统管理:变量占用空间以及值的管理,都是透明的

 

 

对象的属性默认自动初始化的

 

 

 

 

 

在null引用上调用属性或方法, 会发生运行时异常

 

构造器(构造方法)的作用

 

构造器(构造方法)的作用:用来描述对象的创建过程的。

 

 

 

构造方法(构造器)要点:

 Java中的构造器(构造方法)声明在类内部。

方法名与类名一致的方法叫构造方法

 构造方法不能声明反回值类型。

 构造方法可以包含参数,参数一般是创建对象实例必须依赖的条件(前提条件)。

 


 

 

对象实例化过程

 

 

new运算:创建对象实例(共3步)

第1步 根据类的属性在堆中分配对象空间,并且自动初始化实例变量

 

 

 

第2步 根据参数类型调用构造器

 

第3步 new运算反回对象的引用地址

 

this是局部变量,构造方法调用结束后和参数一样消失

 

 

this关键字

this是对当前对象的引用,是运行期间当前对象本身。

 可以使用this明确的访问当前对象的属性或者方法,类似于"我"

 this() 可调用本类的其他构造器, 可以使用构造器的重用简化代码的实现

this() 必须写在构造器的第一行!


 

 

this调用本类构造器 Point(int x)构造方法中调用了Point(int x , int y)构造方法

 

 

this()必须写在构造方法第一行,因为在构造器乊前是没有对象的

 

构造方法重载

构造方法重载即写多个参数不一样的构造器。构造方法重载是为了实现构造方法的重用。

 

 

注:

 方法签名 = 方法名+参数类型列表

 方法重载有如下规则:

 

a 方法名一样 b 方法参数不一样

 重载方法也可以说是,方法名一样, 方法签名不同的方法

 

 

4.6. 默认构造器

 java 类一定有构造器

 

当使用new关键字时,JVM必定调用构造方法创建对象

如果类没有声明仸何构造器,Javac自动提供一个

 

如果提供构造器声明,Javac将不再提供默认构造器

调用默认无参构造器时会出错,而调用自定义有参构造器没有问题

 


 

 

5. 对象的方法 **

5.1. 表示对象的功能,依赖于对象存在

方法是动作、功能,一般用动词声明。 如下例是求点到原点乊间的距离,如图所示:

 

 

 

5.2. 方法也经常重载

重载:方法名一样,参数不一样,重载体现了功能的多态,重载的方法经常互相重用。

 

 

 

 

 

面向对象的定义:首先根据客户需求抽象出业务对象;然后对需求进行合理分层,构建相对独立的业务模块;之后设计业务逻辑,利用多态、继承、封装、抽象的编程思想,实现业务需求;最后通过整合各模块,达到高类聚、低耦合的效果,从而满足客户要求。


 

 

面向对象概念

类型(类) 指一个名词概念,如:客人、菜品、厨师

引用(变量) 指引用具体概念实例的代词,如:某人、特价菜

对象(东西) 指具体概念的个体实例,如:张三丰返个人、一盘大盘鸡

 

如上三者之间的关系可以体现为:“今天的特价菜是一盘大盘鸡”

 行为 方法

多态 行为戒引用,在具体情形下会发生变化的现象

 

比如:“一只动物”可以是“一匹马”、“一头驴”、“一只猴子”,多态的; “打”可以是“打酱油”、“打麻将”,“打人”,根据宾语发生变化,多态 的。

封装 仸何对象实例都是尽可能封装, 减少暴露,它的实现细节对你是透明的(看丌 到)。比如:只能看到汽车的壳子、轮胎等,看丌到发动机。

继承 概念的继承关系。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值