《JAVA编程思想》-第2章:一切都是对象

来源:互联网 发布:mac os 系统安装 编辑:程序博客网 时间:2024/05/17 05:17

知识点内容

用引用操纵对象

请知道,每种语言都有自己操纵内存中元素的方式。例如:c,c++使用指针在Java中得到简化,采用单一固定的语法:“引用”。

例如你想操纵一个词或句子,可以创建一个String类型的 引用, 如 String s; String是数据类型,s是引用名。
然后给这个引用进行赋值 s="这是一个句子。" 这样s引用就可以操纵这个句子了。

以上创建和赋值过程可以简化成一步:String s="这是一个句子。" 整个过程称为创建引用并初始化 这是一种安全的做法,在创建引用同时初始化它。

初始化引用的过程就引用与对象进行关联的过程。

创建对象:必须由你创建所有对象(Object)

new操作符

创建对象的操作符:new ,意思是“给我一个新对象”,上一个例子可以改写成如下String s=new String("这是一个句子。");

存储到什么地方?

Java程序运行时:对象怎样安排放置?内存怎样分配?
有五个不同的地方可以存储数据:
1. 寄存器。
这是最快的存储区,是处理器内部,数量有限。
2. 堆栈。
速度仅次于寄存器,这里存储Java对象引用。
3. 堆。
通用内存池,用于存放所有Java对象,在堆里分配存储有很大灵活性。
4. 常量存储。
常量值通常直接存放在程序代码内部。字面常量字符串会存放到静态存储区。
5. 非RAM存储。
在程序没有运行也可以存储,例子如:流对象,持久化对象

特例:基本类型

基本类型存放在堆栈中,直接存储“值”。不需要使用new创建。

Java确定每种基本类型所占存储空间的大小,更具移植性。

基本类型 大小 默认值 包装类 boolean - false Boolean char 2个字节 16bit null Character byte 8bits 0 Byte short 16bits 0 Short int 32bits 0 Integer long 64bits 0L Long float 32bits 0.0f Float double 64bits 0.0d Double

在类成员中基本数据类型,如果没进行初始化赋值,它们将会有默认值。

永远不需要销毁对象

在Java语言中,基本类型 和 对象是有不一样生命周期的,对象存活的作用域scope比基本类型的更大。

{     String s = new String("a string"); }

当new创建一个Java对象时,它可以存活在作用域之外。例如上面的例子,当引用s在作用域终点就消失了。然而s指向的String对象还继续占据内存空间。

  像这种情况,我们会问如果Java让对象继续存在,那如何能防止这些对象填满内存空间呢?

答案是:Java有一个垃圾回收器,用来监视用new创建的所有对象,并辨别不会再被引用的对象。随后,是否这些对象的内存空间,以便其他新对象使用。你根本不必担心内存回收问题。

创建新的数据类型:类class

类:是决定某一类(组)对象的外观(属性,字段)和行为(方法),也是确定了对象的类型。 如下是定义一个类的大概结构:

class DataOnly{    int i;//成员属性    double d;    boolean b;    void methodName(String param){};//成员方法}

class 是关键字,DataOnly 是类名, 它包含 成员属性和成员方法。

方法:参数和返回值

一个类中有各种方法:如成员方法,构造方法,静态方法。他们都有不同的使用功能,在后面内容会一样分析讲解,下面是大概形式:

ReturnType methodName(Argument list){    Method body;}

方法名和参数列表唯一的标识出某个方法。
参数列表:指定要传递给方法声明样的信息。
返回值:需要使用return关键字,当声明为void方法的返回值类型,将无信息返回,否则需要使用return进行返回相应类型的信息。

小结

第一次使用markdown进行写博客和对阅读的书籍进行读书笔记的总结,速度有点慢,但自己要坚持和积累,在这一章中还有数组,Static关键字的说明讲解,我将它们合并在后面的章节一起总结梳理。

阅读全文
0 0