2.1用句柄操纵对象

尽管一切都看作是对象,但是操纵的标识符实际上是指向一个对象的“句柄”(handdle);

拥有一个句柄并不表示必须有一个对象同他连接;

String  s;   这里创建的只是句柄,并不是对象。若此时向s发送一则消息,就会获得一个错误。

由于s并未与任何东西相连接。

因此创建一个句柄时,无论如何都进行初始化。

2.2所有对象都必须创建

创建句柄时,我们希望它同一个新的对象进行连接。使用new关键字达到这个目的。

2.2.1保存到什么地方

(1)寄存器。最快的保存区域,因为它位于处理器内部,因为数量有限,必须有编译器分配,因此没有直接的控制权,也不可能在自己的程序里找到寄存器存在的任何踪迹

(2)堆栈。在RAM(随机访问存储器)中,可以通过它的堆栈指针获得处理的直接支持。堆栈指针下移则创建新的内容,若上移则释放哪些内存。对象句柄一般方法堆栈里,但是Java对象并不会放在其中

(3)堆。RAM 堆最吸引人的地方在于编译器不必知道要从堆里分配多少存储空间,也不必知道存储的数据要在堆里停留多长时间,因此,用堆保存数据有很大的灵活性。

(4)静态存储。RAM   程序运行时,静态存储的数据将随时等候调用。可以static关键字指出一个对象的特定元素是静态的。但Java本身永远不会置入静态存储空间

(5)常数存储。ROM

(6)非RAM,若数据完全独立与一个程序之外,则程序不运行是仍可以村子啊,并在程序 的控制范围之外。  两个例子:流式对象和固定对象。

流式对象:对象会变成字节流,通常发给另一台机器,而对于固定对象,对象保存在磁盘中。

2.3.1

C能将一个变量隐藏在一个更大的作用域力。但是这种做法在Java里是不允许的

2.3.2对象的作用域

Java对象和主类型的存在时间不一样。用new关键字创建一个Java对象时,它会超出作用域的范围之外。所以假若使用下面这段代码

{

String  s=new String (“a    string”);

}//作用域的终点

句柄s会在作用域的终点处消失,然而s指向string对象依然占据着内存空间,所有引入垃圾收集器。

2.4新建数据类型:类

2.4.1字段和方法

一个类包括:数据成员(字段)和成员函数(方法)。

其中数据成员是一种对象(通过它的句柄与其通信),可以为任何类型。

即主类型(并不是句柄)之一,如果是指向对象的一个句柄,则必须初始化那个句柄,用一个名为构建器的特殊函数将其与一个实际对象链接起来(new);

若是一种主类型,则可以在类定义位置直接初始化

学会引用对象成员:对象句柄.成员

一个对象可能包含了另一个对象,而另一个对象里则包含了我们想要修改的数据。此时只需要爆出“连接句点”即可:myplane.leftTank.capacity=100;

1.主成员的默认值

Boolean false      char  ‘\u000’(null)

对于类中的成员函数中的变量 如果没有赋初值,那么Java会提示错误

2.5方法=函数

2.6.3static关键字

一但将什么东西设为static,数据或方法就不会同那个类的任何对象实例联系在一起。对于函数来说,static一项重要的用途就是帮助我们在不必创建对象的前提下调用那个方法,即省略了new的过程。

2.8.3嵌入HTML

@see;引用其他类@see;类名@see;完整类名 @see:完整类名#方法名

2.8.5类文档标记

@version ;版本信息

@author:作者信息

2.8.7方法文档标记

@param  参数名 说明

@return 说明

@exception  违例

@deprecated  指出旧功能已经由新功能代替

Java编程思想(二)一切都是对象的更多相关文章

  1. 《java编程思想》一切都是对象

    1. 用引用操纵对象 在Java中一切皆对象,我们平常在对java中的类进行操作时,其实操作的不是对象本身而是对象的引用.我们可以将这想象成用遥控器(引用)操作电视机(对象),只要握住这个遥控器,就能 ...

  2. JAVA编程思想(1) - 一切都是对象

     -"假设我们说还有一种不用的语言,那么我们就会发觉一个有些不同的世界" 1. 用引用操纵对象        每种编程语言都有自己的数据处理方式. 有些时候,程序猿必须时刻留意准备 ...

  3. 阅读java编程思想之一切都是对象

    温故而知新--- 1. 用句柄操作对象 现实生活中,我们可以把遥控器当作句柄,电视机当作对象.当我们拿到句柄(遥控器)的时候,我们是可以控制对象的(电视机).比如说调节音量大小,色彩等.那么在程序里, ...

  4. Java程序员的日常——《编程思想》一切都是对象

    今天终于看完了第一章,哈哈,万事开头难....刚开始被编程思想的第一章给蒙住了,讲一堆理论,没什么意思.从第二章开始,真正的开始讲解Java相关的内容,有了一定的开发经验后,再次阅读起来,感觉收获良多 ...

  5. Java编程思想 4th 第1章 对象导论

    所有编程语言都提供抽象机制. 面向对象编程似乎是一种很好的编程思想和方式,面向对象编程中的对象简洁描述是:对象具有状态.行为和标识.状态指的是数据存储,存储的数据能反应状态:行为指的是方法,方法表示对 ...

  6. 《Java编程思想》笔记 第一章 对象导论

    1.抽象过程 Q:什么是对象??? A:   1) 万物皆对象 --- 对象具有状态,行为和标识 2)程序是对象的集合,他们通过发送消息来告诉彼此要做的 3)通过创建包含现有对象的包的方式来创建新类型 ...

  7. JAVA 编程思想二

    1: java  单根继承的优点? 方便垃圾回收: 垃圾回收的设计会方便实现.   多重继承的函数重名的问题. 2: 向下转型和向上转型?    向下转型不安全,向上转型安全. 3: system.g ...

  8. Java编程思想 - 第11章 持有对象

    · 大量笔记存放在Github Java文件中,请移步查看:https://github.com/iGuure/AndroidCodeHub/tree/master/Java%20pratice/Th ...

  9. Java编程思想读书笔记 第一章 对象导论

    抽象过程 纯粹的面向对象程序设计方式: 万物皆为对象: 对象可以存储数据,还可以在其自身执行操作 程序是对象的集合: 通过发送消息告诉彼此要做的 每个对象都有自己的由其它对象构成的存储:可以在程序中构 ...

  10. 浅谈《think in java》:二 一切都是对象

    清晨坐在图书馆,今天聊聊早晨的“果实”. 清单1. 引用操作:对象创建:存储地方:基本类型:数组 “reference”:引用[操作对象的标识符] 例子:创建String类型的引用,并不是对象. St ...

随机推荐

  1. 多线程爬取猫眼电影TOP100并保存到mongo数据库中

    import requests import re import json from requests.exceptions import RequestException from multipro ...

  2. String.getBytes()方法中的中文编码问题(转)

    String的getBytes()方法是得到一个系统默认的编码格式的字节数组getBytes("utf-8")  得到一个UTF-8格式的字节数组 把String转换成bytes, ...

  3. 【概率论】4-5:均值和中值(The Mean and the Median)

    title: [概率论]4-5:均值和中值(The Mean and the Median) categories: - Mathematic - Probability keywords: - Me ...

  4. python ros 设置机器人的位置

    #!/usr/bin/env python import rospy import math from tf import transformations from geometry_msgs.msg ...

  5. springboot+mybatis+druid+sqlite/mysql/oracle

    搭建springboot+mybatis+druid+sqlite/mysql/oracle附带测试 1.版本 springboot2.1.6 jdk1.8 2.最简springboot环境 http ...

  6. ICEM—两孔圆柱

    ​原视频下载地址: https://pan.baidu.com/s/1eSJ7ciQ 密码: 1gj3

  7. ROS indigo下Kinect v1的驱动安装与调试

    ROS indigo下Kinect v1的驱动安装与调试 本文简要叙述了在ROS indigo版本下Kinect v1的驱动安装与调试过程. 1. 实验环境 (1)硬件:  台式机和Kinect v1 ...

  8. mysql 优化知识点

    附录: https://www.nowcoder.com/discuss/150059?type=0&order=0&pos=13&page=0 本文概要 概述 为什么要优化 ...

  9. java安全学习-环境准备/基础知识

    补java的坑,开始! 1.Intellij一些快捷键 intell常用快捷键: ctrl+n 快速查找定位类的位置 ctrl+q 快速查看某个类的文档信息 shift + F6 快速类.变量重命名 ...

  10. pod package 生成 Framework

    pod package 生成 Framework pod package 是 cocoapods 的一个插件,如果没有的话使用以下命令安装: sudo gem install cocoapods-pa ...