java复习记录

2.1 用引用操作对象

在java中,一切都被视为对象,尽管一切都看作对象,但操纵的标识符实际上是对象的一个”引用“。

如果想操纵要给词或句子,则可以穿件一个String引用。

String s;
但这里所创建的只是引用,并不是对象。此时向 s 发送一个消息,会返回一个运行时错误。这是因为s实际上并没有与任何事物关联。因此,一种更安全的做法是声明要给对象的同时给他初始化:
String s = "hello word"

但这里使用到java的一个特性,可以使用带引号的字符串进行初始化,通常,必须对对象采用一种更通用的初始化方法。

2.2 必须由你来创建对象

一旦创建了一个引用,就希望他能与一个对象关联,通常使用 new关键字来实现,new 关键字的意思是”给我一个新的对象“

String s = new String("Hello word!")

他不仅表示给我一个新的字符串,并通过一个字符串给出了怎样产生这个String的信息。

2.2 .1 储存到什么地方

程序运行时对象是怎样放置安排的呢,特别是内存是怎样分配的。

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

1 寄存器

这是最快的存储区,因为他不同于其他存储位置,它位于处理器内部 。不能直接控制。

2 堆栈

创建程序时,java需要知道储存在堆栈内所有项的生命周期,以便上下移动堆栈指针,这一约束限制了程序的灵活性,所以虽然某些java数据存储在堆栈中 --特别是对象的引用,但是java对象并不储存于其中。

3 堆 

一种通用内存池,用于储存所有java对象。

4 常量储存

常量值通常是存储在代码内部。

5 非RAM存储

如果数据完全存活于程序外部,那么他可以不受程序的任何控制,两个基本粒子就是流对象和持久化对象。在持久化对象中,对象被存放在磁盘上。

2.2.2 特例:基本类型

基本类型,不用new来创建对象,而是创建一个并非是引用的”自动变量“,这个变量直接储存值,并置于堆栈中。

每个基本类型都有相应的包装器类,在JAVA SE5中,自动装箱拆箱功能将基本类型与相应的包装器类进行转换。

高精度数字

BigIntegerBigDecimal 虽然大体上属于包装器类的范畴,但他们并没有对应的基本类型。

BigInteger支持任意精度的整数

BigDecimal:支持任意精度的定点数,例如何以用它进行精确的货币计算。

2.2.3 java中的数组

数组就是一段连续的内存块。

创建一个数组实际上是创建了一个引用数组,并且每个引用都会自动初始化为null,一旦java中看到null,就知道这个引用没有指向任何对象。

还可以 创建基本类型的数组,编译器也会确保这一类型的数组的初始化,他会将数组所占的内存置为零。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值