所有数值类型都有正负号,所有不要去寻找无符号的数值类型。
boolean类型所占存储空间的大小没有明确指定,仅定义为能够去字面值true或false。
基本类型具有的包装类。
Java SE5引入了自动装箱(autoboxing)和拆箱(unboxing)。
自动装箱:(自动将基本类型转换成包装器类型)
Character ch = 'x';拆箱:(将包装器类型转换成基本类型)
char c = ch;高精度数字
用于高精度计算的类:BigInteger和BigDecimal。
能作用于int或float的操作,也同样能作用于BigInteger或BigDecimal。只不过必须以方法调用方式取代运算符方式来实现。
BigInteger支持任何精度的整数。
BigDecimal支持任何精度的定点数。
Java主要目标之一是安全性。
Java确保数组会被初始化,而且不能在它的范围之外被访问。这种范围检查,是以每个数组上少量的内存开销及运行时的下标检查为代价。
数组初始化:存放对象的数组初始化为null,存在基本类型的数组初始化为0
2.3 永远不需要销毁对象 2.3.1 作用域大多数过程型语言都有作用域的概念。作用域决定了在其内定义的变量名的可见性和生命周期。在C、C++和Java中,作用域由花括号的位置决定。
2.3.2 对象的作用域Java对象不具备和基本类型一样的生命周期。当用new创建一个Java对象时,它可以存活于作用域之外。
2.4 创建新的数据类型:类大多数面向对象的程序设计语言习惯用关键子class来表示“我准备告诉你一种新类型的对象看起来像什么样子。
class ATypeName { /* Class body goes here */ } 2.4.1 字段和方法在Java中你所做全部工作就是定义类,产生那些类的对象,以及发送消息给这些对象。
一旦定义了一个类,就可以在类中设置两种类型的元素:字段(有时被称作数据成员)和方法(有时被称作称成员函数)。
字段可以是任何类型的对象,可以通过其引用与其进行通信;也可以是基本类型中的一种。如果字段是对某个对象的引用,那么必须初始化该引用,以便使其与一个实际的对象相关联。
每个对象都有用来存储其字段的空间;普通字段不能在对象间共享。
如何引用一个对象的成员:
在对象引用的名称之后紧接着一个句点,然后在接着是对象内部的成员名称:
objectReference.member如:
DataOnly data = new DataOnly(); data.i = 47; data.d = 1.1; data.b = false;基本成员默认值
若类的某个成员是基本数据类型,即使没有进行初始化,Java也会确保它获得一个默认值。
基本类型 默认值boolean false
char '\u0000'(null)
byte (byte)0
short (short)0
int 0
long 0L
float 0.0f
double 0.0d
这些初始值对你的程序来说,可能是不正确的,甚至是不合法的。所以最好明确地对变量进行初始化。
然而上述确保初始化的方法并不适用于(即并非某个类的字段)。
在某个方法定义中有:
int x;如果忘记了赋初值,Java会在编译是返回一个错误,告诉你此变量没有初始化。
2.5 方法、参数和返回值在Java中常用方法这个术语来表示“做某些事情的方式”。
Java的方法决定了一个对象能够接收什么样的消息。方法的基本组成部分包括:名称、参数、返回值和方法体。
ReturnType methodName( /* Argument list */ ) { /* Method body */ }ReturnType(返回类型)描述的是在调用方法之后才能够方法返回的值。Argument list(参数列表)给出了要传给方法的信息的类型和名称。
方法名和参数列表(它们合起来被称为“方法签名”)唯一地标识出某个方法。
Java中的方法只能作为类的一部分来创建。方法只有通过对象才能被调用,且这个对象必须能执行这个方法调用。
调用格式:
objectName.methodName(arg1, arg2, arg3);这种调用方法的行为通常被称为发送消息给对象。
2.5.1 参数列表方法的参数列表指定要传递给方法什么样的信息。
在参数列表中必须指定每个所传递对象的类型和名字。像Java中任何传递对象的场合一样,这里传递的实际上也是引用,并且引用的类型必须正确。
note:除了基本类型外,通常,尽管传递的是对象,而实际传递的是对象的引用。
某个方法接受String为其参数:
int storage(String s) { return s.length() * 2; }方法告诉你,需要多少字节才能容纳一个特定的String对象。
return关键字的用法:
首先,它代表“已经做完,离开此方法”。
其次,如果此方法产生一个值,这个值要放在return语句之后。