Thinking in java 4学习(一)一切都是对象

一:对象存储的地方

1. 寄存器:处理器内部,最快的存储区,由编译器根据需求进行分配,我们在程序中无法控制.

2. 栈:位于通用RAM(随机访问处理器)中,存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中

3. 堆:存放所有new出来的对象。

4. 常量储存:

5. 非RAM存储:硬盘等永久存储空间

二:作用域

作用域由花括号的位置决定。

{

  String s = new String("a string");

}// End of scope

引用s在作用域终点就消失了,而s指向的String对象仍继续占据内存空间

三:类

若类的某个成员是基本数据类型,即使没有进行初始化,Java也会确保它获得一个默认值。然而确保初始化的方法并不适用于"局部"变量(即并非某个类的字段)

将上图注释去掉就会报错,也就是编译时会报错。

时间: 2024-12-08 06:52:44

Thinking in java 4学习(一)一切都是对象的相关文章

JAVA编程思想(1) - 一切都是对象

-"如果我们说另一种不用的语言,那么我们就会发觉一个有些不同的世界" 1. 用引用操纵对象 每种编程语言都有自己的数据处理方式.有些时候,程序员必须时刻留意准备处理的是什么类型.您曾利用一些特殊语法直接操作过对象,或处理过一些间接表示的对象吗(C或C++里的指针)? 所有的这一切在JAVA里都得到了简化.在JAVA里一切都被视为对象,尽管是一切都被看成对象,但操纵的标识符实际上是一个"引用"而已,简单来说是:对象好比"电视",我们拥有的引用是&q

[Think in Java]第2章 一切都是对象

[Think in Java]第2章 一切都是对象 如果我们说另一种不同的语言,那么我们就会发觉有一个有些不同的世界 -- Luduing Wittgerstein 尽管Java基于C++,但相比之下,Java是一种更纯粹的面向对象程序设计语言. Java语言假设我们只进行面向对象的程序设计(OOP). 2.1 用引用操纵对象 每种语言都有自己操纵内存中元素的方式,1. 直接操纵 2. 或者基于某种特殊语法的间接表示. java中,尽管一切都看作是对象了,但操作的标识符实际上是对象的一个引用(r

Java编程思想 2-1 一切都是对象

尽管 Java 是基于 C++ 的,但是相比之下,Java 是一种更纯粹的面向对象程序设计语言. 在本章,将看到 Java 程序的基本组成部分,并体会到在 Java 中几乎一切都是对象. 2.1 用引用操纵对象 Java 中通过引用(遥控器)操纵对象(电视机). 引用可以独立存在,并不一定需要有一个对象与之关联.比如:String s; 这里创建的只是引用,而不是对象.如果此时向 s 发送消息,就会返回一个运行时错误.因为此时 s 实际上没有和任何事物关联. 因此,一种安全的做法是:创建引用的同

Java编程思想学习(一) 一切都是对象

前言 Java是基于C++的,但Java是一种更加纯粹的面向对象程序设计语言. C++和Java都是混合/杂合型语言.杂合型语言允许多种编程风格. 用引用操纵对象 每种编程语言都有自己操纵内存中元素的方式. 直接操纵元素 用某种基于特殊语法的间接表示(C和C++里的指针) 用引用操纵对象(Java) 在Java中,一切都被视为对象.操纵的标识符实际上是对象的一个引用. 类比为遥控器(引用)来操纵电视机(对象) 只要把握这个遥控器,就能保持与电视机的连接 改变频道或减小音量,实际操纵的是遥控器(引

Java编程思想学习(二)----一切都是对象

2.1用应用操作对象 String s; 这里所创建的只是引用,并不是对象.如果此时向s发送一个消息,就会返回一个运行时错误.这是因为此时s没有和任何事物关联.因此,一种安全的做法是:创建一个引用的同时便进行初始化. 2.2必须由你创建所有对象 一旦创建了一个引用,就希望它能与一个新的对象相关联.通常用new操作符来实现这一目的. String s = new String("asdf"); 2.2.1存储到什么地方 1)寄存器.这是最快的存储区,因为它不同于其他存储区的地方--处理器

[原创]java WEB学习笔记15:域对象的属性操作(pageContext,request,session,application) 及 请求的重定向和转发

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

Java——(一)一切都是对象

一.用引用操纵对象   在java中一切都被视为对象,但操纵的标识符实际上是对象的一个“引用”(reference).可以 将这一情形想象成用遥控器(引用)来操纵电视机(对象).只要握住这个遥控器,就能保持与电视 机的连接.当有人想改变频道或减小音量是,实际操纵的是遥控器(引用),再由遥控器来调控电视 机(对象).如果想在房间里四处走走,同时仍能调控电视机,那么只需携带遥控器(引用)而不是 电视机(对象).   此外,即使没有电视机,遥控器也可独立存在.也就是说,你拥有一个引用,并不一定需要有一

Java IO学习笔记(五)对象流

1.Object流:直接将Object写入或读出. 2.序列化:将Object直接转化成字节流写到硬盘或网络上. 3.如果想把一个对象转化成字节流,该对象的实体类必须得实现Serializable接口,Serializable接口是标记性接口,它并没有任何方法,只是用于标识该类可以被序列化. 4.transient关键字,用于修饰成员变量,表示该成员变量是透明的,与Serializable接口同用,表示序列化的时候不考虑该成员变量.序列化时存的是该成员变量数据类型的默认值. 5.External

Java面向对象学习笔记 -- 1(类、对象、构造器)

1. 类 1)是同类型东西的概念,是对现实生活中事物的描述,映射到Java中描述就是class定义的类. 2)其实定义类,就是在描述事物,就是在定义属性(变量)和方法(函数). 3)类中可以声明:属性,方法,构造器: 属性就是实例变量,用于声明对象的结构的,在创建对象时候分配内存,每个对象有一份! 实例变量(对象属性)在堆中分配,并作用于整个类中,实例变量有默认值,不初始化也能参与运算. 4)类与类之间的关系: ① 关联:一个类作为另一个类的成员变量 public class A { pulic

Thinking in JAVA笔记——第二章 一切都是对象

2.1用引用操作对象 虽然一切皆对象,但实际上用的是对象的“引用”. 理解:引用可以理解为别名,引用“知道”对象实际的存放地址,并通过引用可以操作对象 2.2创建对象 new操作符 2.2.1 对象存储位置 1)寄存器:不能直接控制 2)堆栈:位于RAM,对象引用,基本类型存于堆栈 3)堆:位于RAM的动态存储区,存放所有的Java对象 4)常量存贮:代码内部或ROM中 5)非RAM存储:流对象和持久化对象 2.2.2特例:基本类型 置于堆栈中,具有包装器类,将基本类型转换为对象 高精度类Big