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

2.1用应用操作对象

String s;

这里所创建的只是引用,并不是对象。如果此时向s发送一个消息,就会返回一个运行时错误。这是因为此时s没有和任何事物关联。因此,一种安全的做法是:创建一个引用的同时便进行初始化。

2.2必须由你创建所有对象

一旦创建了一个引用,就希望它能与一个新的对象相关联。通常用new操作符来实现这一目的。

String s = new String("asdf");

2.2.1存储到什么地方

1)寄存器。这是最快的存储区,因为它不同于其他存储区的地方——处理器内部。但是寄存器的数量及其有限,所以寄存器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。

2)堆栈。位于通用RAM(随机访问存储器)中,但通过堆栈指针可以从处理器那里获取直接支持。堆栈指针向下移动,则分配新的内存;若向上移动,则释放那些内存。这是一种快速有效的分配存储方法,仅次于寄存器。创建程序时,Java系统必须知道存储在堆栈内所有项的确切生命周期,以便上下移动堆栈指针。这一约束限制了Java代码的灵活性,所以虽然某些Java数据存储在堆栈中——特别是对象引用,但是Java对象并不存储于其中。

3)。一种通用的内存池(也位于RAM区),用于存放所以的Java对象。堆不同于堆栈的好处是:编译器不需要知道存储的数据在堆里存活的多长时间。当需要一个对象时,只需要new写一行简单的代码,当执行这行代码时,会自动在堆里进行存储分配。当然,这种灵活性必须要付出相应的代价:用堆进行存储分配和清理可能用比堆栈进行存储分配需要更多的时间。

4)常量存储。常量值通常直接存放在程序代码内部,这样做是安全的,因为它们永远不会被改变。有时,在嵌入式系统中,常量本身会和其它部分隔离开,所以在这种情况下,可以选择将其存放在ROM(只读存储器)中。

5)非RAM存储。如果数据完全存活于程序之外,那么他可以不受程序的任何控制,在程序没有运行时也可以存在。其中两个基本的例子是流对象和持久化对象。在流对象中,对象转换为字节流,通常被发送给另一台机器。在“持久化对象”中,对象被存放于磁盘上,因此,即使程序终止,它们任可以保持自己的状态。Java提供了轻量级的持久化支持,而诸如JDBC和Hibernate这样的机制提供了更复杂的对数据库中存储和读取对象信息的支持。

2.2.2特例:基本类型

基本类型 大小 最小值 最大值 包装器类型
boolean —— —— —— Boolean
char 16bit Unicode 0 Unicode 216-1 Character
byte 8bit -128 127 Byte
short 16bit -215 215-1 Short
int 32bit -231 231-1 Integer
long 64bit -263
-263-1
Long
float 32bit IEEE754 IEEE754 Float
double 64bit IEEE754 IEEE754 Double
void —— —— —— Void

高精度数字

Java提供了两个用于高精度计算的类:BigInteger和BigDecimal。虽然它们大体上属于“包装器类”的范畴,但二者没有对应的基本类型。

BigInteger支持任意精度的整数。

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

2.4.1字段和方法

基本成员默认值

基本类型 默认值
boolean false
char ‘\uoooo‘(null)
byte (byte)0
short (short)0
int 0
long 0L
float 0.0f
double 0.0d

原文地址:https://www.cnblogs.com/zhongli1/p/10012731.html

时间: 2024-10-25 07:26:59

Java编程思想学习(二)----一切都是对象的相关文章

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

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

[Java编程思想-学习笔记]第1章 对象导论

1.1  抽象过程 Java是一门面向对象的语言,它的一个优点在于只针对待解问题抽象,而不用为具体的计算机结构而烦心,这使得Java有完美的移植性,也即Java的口号"Write Once, Run Anywhere". 所谓的抽象过程,可以理解为对待解问题建模.比如待解问题是一个人,那么我们可以对人进行建模,它的类型是人,有属性姓名.性别.年龄,还有行为吃饭.走路.Java能直接完全据此建模编码,而无需考虑具体的计算机结构.所以当我们阅读Java程序时,正如书上说的"当你在

《 Java 编程思想》CH02 一切都是对象

尽管Java中一切都看作为对象,但是操纵的标识符实际上对象的一个“引用”. String s; // 这里只是创建了一个引用,而不是一个对象 String s = new String("abcd"); // 使用`new`操作符来创建一个对象,并将其与一个引用相关联 String s = "abcd"; // 字符串可以直接用带引号的文本初始化 必须由你创建所有对象 使用 new 操作符创建一个对象 存储到什么位置 由五个地方可以存储数据: 寄存器:由于寄存器数量

Java编程思想学习(二) 操作符

1. 对象“赋值”:对一个对象进行操作时,我们真正操作的是对对象的引用.所以倘若“将一个对象赋值给另一个对象”,实际是将“引用”从一个地方复制到另一个地方.(引用于对象之间存在关联,但这种关联可以被改变.) 2. == 和 != 比较的是对象的引用. equals() 方法的默认行为是比较引用,如果定义类的对象中对 equals()方法进行重写,则可以实现比较对象的实际内容是否相等的效果. 3. “与” (&&) .“或” (||) .“非” (!) 操作只可应用于布尔值.与在 C 和 C

Java编程思想学习笔记十一:持有对象

一.基本概念 1.Collecction:一个独立元素的序列,这些元素服从一条或多条规则.list必须按照插入的顺序保存元素:set不能有重复的元素:Queue按照排队规则来确定对象产生的顺序 2.Map:映射表,一组由成对的键值对对象,允许使用键来查找值 1 package holding; 2 import java.util.*; 3 4 public class SimpleCollection { 5 public static void main(String[] args){ 6

java编程思想--第二章 一切都是对象

如果不做引申的话,本章没有多少可总结的内容.有些以前没有注意的细节可以写下来. 1.数据存储的位置 (1).寄存器.程序控制不了. (2).堆栈.对象的引用.基本类型. (3).堆.各种对象. (4).常量存储.和代码在一起. (5).非RAM存储.主要指流对象和持久化对象,前者准备网络传输,后者被丢到了硬盘上. 2.java中的数组会被自动初始化: (1).基本类型数组元素会被初始化为0 (2).引用类型数组元素会被初始化为null 3.变量作用域 (1).基本类型的跟C一样 (2).引用类型

Java编程思想笔记(一切都是对象)

1.用引用(遥控器)操控对象(电视机):String s = "asdf";     2.必须由你创建所有对象:String s = new String("asdf");     2(1).存储到什么地方:寄存器(快,不能直接控制).堆栈(1.堆栈指针若向下移动,则分配新的内存:若向上移动,则释放那些内存.2.Java数据存储于堆栈中——特别是对象引用,Java对象并不存储于其中.3.Java系统必须知道存储在堆栈内所有项的确切生命周期,以便上下移动堆栈指针).堆

【Java编程思想】二、一切都是对象

尽管Java是基于C++的,但是相比之下,Java是一种更“纯粹”的面向对象设计语言. 2.1 用引用操纵对象 一切都被视为对象, 因此可采用单一固定的语法.尽管一切都被看作对象,但操纵的标识符实际上是对象的一个“引用”. Java里的“引用”与C++中的“引用”是有区别的,但是这个概念不需要完全明白,学会处理引用就可以了. 2.2 必须由你创建所有对象 new关键字的意思就是“给我一个新对象”! 2.2.1对象存储到什么地方 1)寄存器 2)堆栈(RAM) 3)堆(RAM) 4)常量存储(RO

Java编程思想学习第一天

今天开始正式学习Java编程思想,把遇到的一些比较经典的语句记录下来,作为自己学习的一份成果! 一. 面向对象的基本特性: 第一:万物皆为对象        第二:程序是对象的集合,他们通过发送消息来告知彼此所要做的   第三:每个对象都有自己的由其他对象所构成的存储   第四:每个对象都拥有其类型   第五:某一特定类型的所有对象都可以接收同样的消息   对象具有状态.行为和标识 二. 每个对象都提供服务      1. 将对象想象为一个服务提供者,程序本身将向用户提供服务 2. 将对象想象为