Java学习之——面向对象:2 一切都是对象

尽管Java是基于C++的,但是相比之下,Java是一种更”纯粹“的面向对象程序设计语言。

用引用操纵对象

操纵的标识符实际上是对象的一个”引用“(reference)。可以想象成用遥控器(引用)来操纵电视机(对象)。

此外,即使没有电视机,遥控器亦可独立存在。你拥有一个引用,并不一定需要有一个对象与它关联。例如创建一个String引用:

String s;

这里创建的只是引用,并不是对象。此时向s发送一个消息,会返回一个运行时错误。这是因为,此时s实际上没有与任何事物相关联。一种安全的做法是:创建一个引用的同时便进行初始化。

String s = "asdf";

必须由你创建所有对象

new关键字的意思是:给我一个新对象。

String s = new String("asdf");

存储到什么地方

有五个不同的地方可以存储数据:

  1. 寄存器:你不能直接控制。
  2. 堆栈:某些Java数据存储于堆栈中——特别是对象引用,但是Java对象并不存储于其中。
  3. 堆:用于存放所有的Java对象。
  4. 常量存储:直接存放在程序代码内部。
  5. 非RAM存储:数据完全存活于程序之外,在程序没有运行时也可以存在。两个基本的例子是流对象持久化对象

特征:基本类型

boolean, char, byte, short, int, long, float, double, void.
BigInteger, BigDecimal.

Java中的数组

Java确保数据会被初始化,而且不能在它的范围之外被访问。这种范围检查,是以每个数组上少量的内存开销及运行时的下标检查为代价的。换来的是安全性和效率的提高。

永远不需要销毁对象

作用域(scope)

在作用域里定义的变量只可用于作用域结束之前。

对象的作用域

假如你采用代码:

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

s在作用域终点就消失了,然而,s指向的String对象仍继续占据内存空间。
Java的垃圾回收器用来监视用new创建的所有对象,辨别那些不会再被引用的对象,并且释放这些对象的内存空间。

(未完待续)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,011评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,706评论 19 139
  • 紫色本身就是一种梦幻的色彩,也是及其傲娇的一个颜色,它很挑人,但仍有不少女星前赴后继的想去挑战它! 林志玲 白百何...
    走走看看121阅读 1,872评论 0 0
  • 相识十几年 时常也相见 真情一片片 悄悄话儿甜 为我把厨下 把我挂心间 满桌是我爱 好吃你再来 温暖一直在 轻松又...
    郑州___快乐阅读 1,404评论 0 1
  • 顾雨周: 七夕的烟火绚烂八月的夜空 夏末的蝉鸣透彻桑林 行人眼里全是笑意 可惜你不快乐 南城的黄昏好似情人温柔的脸...
    哑鲸i阅读 1,391评论 2 5