Java编程思想读书笔记 第2章

Java中一切皆为对象
但是操纵的标识符实际上是对象的一个引用

String s; # 这是一个引用,没有和任何对象进行关联

若此时对s发送一个消息,会返回一个运行时错误

String s = new String("abcd") # 创建了一个对象,并使用引用s与其关联

Java中五个存储数据的地方:

  1. 寄存器。最快的存储区,位于处理器内部。不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象(C/C++允许向编译器建议寄存器的分配方式)。
  2. 堆栈。位于通用RAM(随机访问存储器)中。创建程序时,Java系统必须知道存储在堆栈内的所有项的确切生命周期,以便上下移动堆栈指针。这一约束限制了程序的灵活性,所有虽然某些Java数据存储在堆栈中–特别是对象引用,但是Java对象不存储在其中。
  3. 。通用的内存池(也位于RAM区),用于存放所有的Java对象。不同于堆栈的好处是:编译器不需要知道存储的数据在堆了存放多长时间。缺点:用堆进行存储分配和清理可能比用堆栈进行存储分配需要更多的时间。
  4. 常量存储。常量值通常会直接存放在程序代码内部,这样它们永远不会被改变。在嵌入式系统中,可以选择将其存放在ROM(只读存储器)中。
  5. 非RAM存储。如果数据完全存活于程序之外,那么它可以不受程序的任何控制,在程序没有运行时也可以存在。其中最基本的两个例子是流对象持久化对象

特例:基本类型
对于基本类型,Java不用new来创建变量,而是创建一个并非是引用的“自动”变量。这个变量直接存储“值”,并置于堆栈(由于基本类型所占存储空间大小是确定的)中,因此更高效。

Java中的数组是在创建时,每个引用会自动被初始化一个特定的值,该值拥有自己的关键字null。若使用一个还是null的引用,在运行时会报错。

static关键字
当声明一个事物是static时,就意味着这个域或方法不会与包含它的那个类的任何对象关联在一起。也就是说,即使没有创建对象,也能够调用这个方法。

Class StaticTest{
	static int i = 47;
	static void test(){//...}
}

引用static变量/方法的两种方法:

  1. 通过一个对象定位它,如
StaticTest s = new StaticTest()
s.i;
s.test();
  1. 通过其类名直接引用
StaticTest.i;
StaticTest.test();

所有对象的static字段对每个类来说都只有一份存储空间,而非static字段是对每个对象都有一个存储空间
static方法的一个重要用法:在不创建任何对象的前提下就可以调用它,这一点对**main()**方法很重要。

注释

  1. 传统的C语言风格注释
/* This is a comment
 * that continues
 * across lines
 * /
  1. 单行注释
// This is a one-line comment

编码风格
类名的首字母要大小;如果类名由几个单词构成,那么把它们并在一起(不要使用下划线来分隔),其中每个内部单词的首字母都采用大写形式 – 驼峰风格,例如:

class AllTheColorsOfTheRainbow{ //...

几乎其他所有内容 – 方法、字段(成员变量)以及对象引用名称等,公认的风格与类的风格,只是标识符的第一个字母采用小写。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值