Think in Java——阅读随记(二)对象与操作符

Think in Java——2

一切都是对象


TIJ阅读笔记

用句柄操纵对象

尽管将一切都“看作”对象,但操纵的标识符实际是指向一个对象的“句柄”(Handle)。在其他Java 参考书里,还可看到有的人将其称作一个“引用”,甚至一个“指针”

所有对象都必须创建

数据的保存:

寄存器:处理器内部,临时变量

驻留于常规RAM(随机访问存储器)区域,但可通过它的“堆栈指针”获得处理的直接支持。

一种常规用途的内存池(也在RAM 区域),其中保存了Java 对象。和堆栈不同,“内存堆”或“堆”(Heap)最吸引人的地方在于编译器不必知道要从堆里分配多少存储空间,也不必知道存储的数据要在堆里停留多长的时间。因此,用堆保存数据时会得到更大的灵活性。要求创建一个对象时,只需用new 命令编制相关的代码即可。执行这些代码时,会在堆里自动进行数据的保存。当然,为达到这种灵活性,必然会付出一定的代价:在堆里分配存储空间时会花掉更长的时间!

静态存储

可用static 关键字指出一个对象的特定元素是静态的。但Java 对象本身永远都不会置入静态存储空间。

常数存储

非RAM存储

绝对不要清除对象

作用域

{
int x = 12;
/* only x available */
{
int q = 96;
/* both x & q available */
}
/* only x available */
/* q “out of scope” */
}

对象的作用域

句柄的作用域结束,对象仍然存在

{
String s = new String("a string");
} /* 作用域的终点 */

句柄s 会在作用域的终点处消失。然而,s 指向的String 对象依然占据着内存空间。在上面这段代码里,我们没有办法访问对象,因为指向它的唯一一个句柄已超出了作用域的边界。

“垃圾收集器”:在对象不被引用时回收对象的空间

创建类

字段、方法(参数表与返回值)

构建Java程序

模块命名:

Java 的设计者鼓励程序员反转使用自己的Internet 域名,因为它们肯定是独一无二的。由于我的域名是BruceEckel.com,所以我的实用工具库就可命名为com.bruceeckel.utility.foibles。

使用其他组件

import、*通配符

static关键字

静态变量

静态方法

注释

一般注释:

//单行注释
/* 这是
* 一段注释,
* 它跨越了多个行
*/

文档注释

控制程序流程

1. 运算符

java作为编程语言,支持常见的运算符,这些运算符有一定的优先级,大部分运算符只能作用于基础数据类型8。

特例:

几乎所有运算符都只能操作“主类型”(Primitives)。唯一的例外是“=”、“==”和“!=”,它们能操作所有对象

  1. java预算符优先级

    优先级为1的运算符可以改变其他运算的优先级。

    优先级运算符结合性
    1()、[]、{}从左向右
    2!、+(正号)、-(负号)、~、++、–从右向左
    3*、/、%从左向右
    4+、-从左向右
    5«、»、>>>从左向右
    6<、<=、>、>=、instanceof从左向右
    7==、!=从左向右
    8&从左向右
    9^从左向右
    10|从左向右
    11&&从左向右
    12||从左向右
    13?:从右向左
    14=、+=、-=、*=、/=、&=、|=、^=、~=、«=、»=、>>>=从右向左
    1. 赋值:

      对于对象的操作,=赋值运算符的操作对象的句柄,运算符不能直接访问对象值。

      “别名”:不同对象句柄指向相同的对象数据。句柄是独立的,对象是统一的。

    2. 算术运算符

    3. 逻辑运算符

      “短路求值”

    4. 按位运算符

      &:按位与

      |:按位或

      ^:按位异或

      ~:非

    5. 移位运算符

    6. 三元运算符:

      bool ? val1 : val2

    7. 造型运算符()

      cast运算(强制类型转换)

2. 执行控制

  1. if-else
  2. while、do-while、for、for(😃
  3. swiitch-case
  4. break、continue
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值