《Java编程思想》第二章 一切都是对象

时间:2022-10-17 16:07:02
一、Java中的数据类型
对象引用类型和基本类型

二、Java程序的存储区域
1、寄存器
2、堆栈
3、堆
4、常量存储
5、非RAM存储

基本类型和对象引用(String a)存储在堆栈中
对象(new String("hello world"))存储在堆中
字面常量字符串和具有字符串值的常量表达式被存放在常量存储中

举例来说:
int a=5;
a这个变量存储在堆栈中,它的值为5;

String a=new String("hello world");
String b=a;

"hello world"这个字面常量字符串存储在常量存储中
new String("hello world")对应的对象存储在堆中
a这个变量存储在堆栈中,它的值为new String("hello world")对应的对象的引用地址
b这个变量存储在堆栈中,它的值为a的值,即为new String("hello world")对应的对象的引用地址


三、基本类型:

Java中一共有9种基本类型,这些基本类型所占用的存储空间都是固定的,这个特性也使得Java程序比其他语言的程序更具有可移植性。
每种基本类型都有对应的包装器类,基本类型和对应的包装器类之间能够互相转换。
关于基本类型的信息如图1所示:

                                                                                         图1

《Java编程思想》第二章    一切都是对象

备注:
所有数值类型都有正负号,所以不要去寻找无符号的数值类型
boolean类型所占用的存储空间没有明确指定,仅定义为能够取字面值true和false

float和double都符合IEEE754标准

另外在Java的Float类中有如下静态变量:
Float.MAX_VALUE:表示最大正值,最大负值为"-Float.MAX_VALUE"
Float.MIN_VALUE:表示最小能够取到的正数值,这个名称取得很有歧义。注意,0不是正数
Float.MAX_EXPONENT:表示最大能够取到的科学计数法中的指数值
Float.MIN_NORMAL:表示最小能够取到的科学计数法中的底数值


Double类中的相应静态变量类似。


四、作用域

在C和C++中,将一个较大作用域的变量“隐藏”起来的做法,在Java里是不允许的
比如
{
int x = 12;
{
int x = 96;
}
}
在C和C++中被允许,但是在Java中不被允许


另外:

只能存活于作用域内:基本类型和对象引用(存储在堆栈中)
可以存活于作用域外:对象(存储在堆中)


五、创建新的数据类型:类

类中包含“字段”和“方法”

字段如果是基本类型,Java确保给定默认值,具体如图2所示:

                                                                                          图2

《Java编程思想》第二章    一切都是对象

方法由“方法名”和“参数列表”唯一进行标识


六、静态字段和方法
普通字段和方法跟类的对象相关

静态字段和静态方法跟类相关


七、注释
注释有两种语法:

/*...*/和//


八、JavaDoc
JavaDoc标准使得文档和代码处于同一个源文件,有利于维护。
JavaDoc处于"/**"和"*/"之间。
8.1、语法
包含两种方式:嵌入HTML和文档标签。
8.1.1、文档标签
文档标签是以'@'开头的命令,可细分为“独立文档标签”和“行内文档标签”。
独立文档标签可以出现于JavaDoc中每一行的第一个*后面,如下所示:
/**
* @author dslztx
*/

生成的HTML文件中相对应的内容如图3所示:

                     图3

《Java编程思想》第二章    一切都是对象

常见的独立文档标签有@see,@version,@author,@since,@param,@return,@throws


行内文档标签可以出现于JavaDoc的每一行的任何位置,但是需要括在花括号内,如下所示:
/**
* 你好,这是JavaDoc{@docRoot} 测试
*/

生成的HTML文件中相对应的内容如图4所示:

                        图4

《Java编程思想》第二章    一切都是对象

常见的行内文档标签有{@link package.class#member label},{@docRoot},{@inheritDoc}


8.1.2、嵌入HTML

直接将HTML语句传递给最终生成的HTML文件中。

现在有如下内容的JavaDoc内容:

/**
* 测试HTML语句<br/>
* <ol>
* <li>Item One
* <li>Item two
* <li>Item three
* </ol>
*/

生成的HTML文件中相对应的内容如图5所示:

               图5

《Java编程思想》第二章    一切都是对象

生成的HTML文件的源代码中含有如下内容:

<P>
测试HTML语句<br/>
<ol>
<li>Item One
<li>Item two
<li>Item three
</ol>
<P>


8.2、输出

JavaDoc的输出是一个HTML文件。


九、其他
在Java中,在某处可以使用在其后定义的资源,即解决了“向前引用”问题。

在每个.java文件中,默认包含“import java.lang.*”语句

System.out.println(System.getProperties());可以打印Java程序运行时所有的环境参数