java编程思想-读书笔记(一切都是对象)
程序员文章站
2024-03-17 18:23:46
...
尽管JAVA基于C++,但相比之下,JAVA是更纯粹的面向对象程序设计语言
2.1 引用操纵对象
Java将一切视为对象,但操纵的标识符实际上是对象的一个引用,想操纵一个词或一个句子,可创建String引用
String s;
此处创建的只是引用,而不是对象,如果向String发送消息,会返回运行时错误。因此安全做法是,创建一个引用的同时便初始化,字符串可用带引号的文本初始化
String s=”sadasg”
2.2 必须由你创建所有对象
一旦创建了引用,就希望它与一个新的对象关联,通常用new操作符来实现这一目的,new关键字意思:给我一个新对象。前例可改为
String s =new String("sadasg")
存储数据的位置
- 寄存器。最快的存储区,位于处理器内部,但数量有限,寄存器根据需求进行分配。不能直接控制,也不能在程序中感觉寄存器存在的迹象
- 堆栈。 位于通用RAM(随机访问存储器),通过堆栈指针可从处理器处获得支持,指针下移,分配新内存,指针上移,释放内存,快速有效的分配存储方法,仅次于寄存器,java系统必须知道存储在堆栈内所有项的生命周期,以便移动堆栈指针
- 堆。 一种通用的内存池(位于RAM),用于存放所有的java对象,堆不同于堆栈的好处,编译器无需知道存储数据存活多久,具有很大的灵活性。需要对象时,只用new写一行代码,执行代码时,自动到堆里存储分配。用堆进行存储分配和清理比堆栈存储分配需要更多的时间。
- 常量存储。 常量值直接存放在程序代码内部,有时,嵌入式系统中,常量本身会与其他部分隔开,这种情况可存放ROM(只读存储器中)。
- 非RAM存储 数据完全存活在程序之外,可不受程序的任何控制,在程序未运行也可以存在。基本例子:流对象,持久化对象。
流对象:对象转化为字节流,被发送到另一台机器
持久化对象:对象存放在磁盘上
基本类型
对于该类型,不用New创建变量,而是创建一个并非引用的自动变量,变量直接存储值,并置于堆栈中。
java要确定每种基本类型所占存储空间的大小,这种存储空间的不变性是Java程序比用其他大多数语言编写的程序更具有移植性的原因之一
所有数值类型都有正负号,boolean类型所占存储空间大小没有明确指定,仅定义为true或false
上一篇: 关于openjudge上全局题号7619号:合影效果的小问题
下一篇: 页面中元素大小的确定