首页 技术 正文
技术 2022年11月14日
0 收藏 832 点赞 3,761 浏览 1175 个字

第二章 一切都是对象

2.1 用引用操纵对象

  创建一个String引用:

String s;

  这里所创建的只是引用,并不是对象。

  创建一个引用的同时便初始化:

String s = "abc";

2.2 必须由你创建所有对象

  创建一个引用,希望它能与一个新对象相关联:

String s = new String("abc");
引用 = new 对象;

2.2.1 保存到什么地方

  1. 寄存器。这是最快的保存区域,在处理器内部,由编译器分配不能直接的控制。
  2. 堆栈。位于通用RAM(随机访问存储器)中,但可通过它的“堆栈指针”获得处理的直接支持。尽管有些Java数据要保存在堆栈里——特别是对象引用,但Java对象并不放到其中。
  3. 堆。一种通用的内存池(也在RAM区域),其中保存了Java对象。
  4. 常量存储。常量值通常直接置于程序代码内部。
  5. 非RAM存储。若数据完全独立于一个程序之外,则程序不运行时仍可存在,并在程序的控制范围之外。其中两个最主要的例子便是“流对象”和“持久化对象”。

2.2.2 特例:基本类型

  不用new来创建变量,而是创建一个并非是引用的“自动”变量,这个变量直接存储“值”,并置于堆栈中,因此更高效。

  基本类型具有的包装器类,使得可以在堆中创建一个非基本对象,用来表示对应的基本类型。

2.2.3 Java中的数组

  当创建一个数组对象时,实际上就是创建了一个引用数组,并且每个引用都会自动被初始化为一个特定值,该值拥有自己的关键字null。

2.3 创建新的数据类型:类

2.3.1 基本成员默认值

 若类的某个成员是基本数据类型,即使没有进行初始化,Java也会确保它获得一个默认值。

  然而上述确保初始化的方法并不适用于”局部“变量(即并非某个类的字段)。因此,如果在某个方法定义中有:

int x;

那么变量x得到的可能是任意值,而不会是自动初始化为零。

2.4 方法、参数和返回值

  方法名和参数列表(它们合起来被称为“方法签名”)唯一地标识出某个方法。

2.4.1 参数列表

  像Java中任何传递对象的场合一样,这里传递的实际上也是引用。

2.5 构建一个Java程序

2.5.1 static关键字

  一种情形,只想为某特定区域分配单一存储空间,而不去考虑究竟要创建多少对象,甚至不创建任何对象。

  另一种情形,希望某个方法不与包含它的类的任何对象关联在一起,就是说,即使没有创建对象,也能调用这个方法。

  下述代码能生成一个static数据成员,并对其初始化:

class StaticTest {
Static int i = 47;
}StaticTest st1 = new StaticTest();
StaticTest st2 = new StaticTest();

  尽管我们制作了两个StaticTest对象,但它们仍然只占据StaticTest.i的一个存储空间。无论st1.i还是st2.i都有同样的值47。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,036
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,522
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,370
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,151
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,784
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,866