0%

Java编程思想#一切都是对象

一、Java数据类型

分为:基本类型和引用类型。void/Void是一个特殊类型,既可认为是基本类型,也可认为不是基本类型,在本系列中,不认为它是基本类型。

1.1、基本类型

Java中一共有8种基本类型,这些基本类型所占用的存储空间都是固定的,该特性使得Java程序比其他语言的程序更具有可移植性。
每种基本类型都有对应的包装器类,基本类型和对应的包装器类之间能够互相无缝转换。
关于8种基本类型的描述见表1。

表1

基本类型 类型占据大小 最小值 最大值 包装器类型
boolean Boolean
byte 8 bits -128 +127 Byte
short 16 bits -215 +215-1 Short
char 16 bits \u0000 \uffff Character
int 32 bits -231 +231-1 Integer
float 32 bits -3.4028235E38 3.4028235E38 Float
long 64 bits -263 +263-1 Long
double 64 bits -1.7976931348623157E308 1.7976931348623157E308 Double

备注:

  1. 所有数值类型都有正负号,所以不要去寻找无符号的数值类型
  2. boolean类型所占用的存储空间没有明确指定,仅定义为能够取字面值truefalse
  3. float和double都符合IEEE 754标准。另外,在Java的Float类中有以下几个静态变量(Double类中类似)
    • Float.MAX_VALUE:表示最大正值,最大负值为“-Float.MAX_VALUE”
    • Float.MIN_VALUE:表示最小能够取到的正数值,这个名称取得很有歧义。注意,0不是正数
    • Float.MAX_EXPONENT:表示最大能够取到的科学计数法中的指数值
    • Float.MIN_NORMAL:表示最小能够取到的科学计数法中的底数值

1.2、引用类型

引用类型的类型占据大小为32 bits(32位虚拟机)或者64 bits(64位虚拟机),引用类型的值逻辑上等价于所引用对象的内存地址,当不引用任何对象时,值为NULL

二、类

类对应“类对象”和“实例对象”。引用类型引用的对象就包括上述两种对象。
示例如下:

1
2
3
4
5
//类对象
Class clz = Object.class;

//实例对象
Object obj = new Object();

类中包含“字段”和“方法”,“方法”由“方法名”和“参数列表”进行唯一标识。“普通字段”和“普通方法”跟“实例对象”相关联,“静态字段”和“静态方法”跟“类对象”相关联。
类的定义中,“字段”(包括“普通字段”和“静态字段”)的默认值描述如表2。

表2

类型 默认值
boolean false
byte (byte)0
short (short)0
char \u0000
int 0
float 0.0F
long 0L
double 0.0D
引用类型 NULL

三、其他

3.1、注释

注释有两种语法:/*...*///

3.2、JavaDoc

JavaDoc代码位于/***/之间,它使得文档代码和源代码处于同一个文件,有利于维护。
JavaDoc代码语法主要包括两部分内容:嵌入HTML和文档标签。

3.2.1、嵌入HTML

直接嵌入HTML标签,示例如下:

1
2
3
4
5
6
7
8
/** 
* 测试HTML语句<br/>
* <ol>
* <li>Item One
* <li>Item two
* <li>Item three
* </ol>
*/

3.2.2、文档标签

文档标签以“@”字符开头,可再细分为“独立文档标签”和“行内文档标签”。
独立文档标签只能出现于JavaDoc中每一行的第一个“*”字符后面,常见的独立文档标签有“@see,@version,@author,@since,@param,@return,@throws”,示例如下:

1
2
3
/** 
* @author dslztx
*/

行内文档标签可出现于JavaDoc中每一行的任意位置,但是需要由花括号围括,常见的行内文档标签有“{@link package.class#member label},{@docRoot},{@inheritDoc}”,示例如下:

1
2
3
/** 
* 你好,这是JavaDoc{@docRoot}测试
*/

3.3、作用域

3.3.1、隐藏作用域

在C和C++中,将一个较大作用域的变量“隐藏”起来的做法,在Java里是不被允许的。比如如下写法,在C和C++中被允许,在Java中不被允许:

1
2
3
4
5
6
{  
int x = 12;
{
int x = 96;
}
}

3.3.2、存活

“基本类型”和“引用类型”只能存活于作用域内,“对象”(包括“类对象”和“实例对象”)可存活于作用域外。

3.4、向前引用

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

3.5、默认导入包

默认导入“java.lang.*”包,即等价于在每个“.java”源文件中,默认包含“import java.lang.*”语句。

您的支持将鼓励我继续分享!