1、引用和对象的关系
引用和对象的关系,好比遥控器和电视的关系。遥控器可以在一定的范围内操控电视,引用也可以在一定的范围内操控对象。
2、对象存储的位置
1)寄存器
最快的存储区,位于处理器内部。
2)堆栈
位于通用RAM(随机访问存储器)中,通过堆栈指针可以在处理器中获得直接支持。
堆栈指针若向下移动,则分配新的内存;若向上移动,则释放内存。
3)堆
使用new关键字创建出来的对象都存储在堆中。
4)常量存储
常量值通常直接存放在程序代码中或者ROM(只读存储器)中。
5)非RAM存储
完全存活于程序之外的数据,可以不受程序的控制,在程序没有运行时也可以存在,常见的有流对象和持久化对象。这里的流对象和持久化对象我理解为计算机中存储的文件对象和数据库对象。
3、基本类型
1)基本类型创建在栈中。
2)基本类型及属性
类型 | 大小 | 最小值 | 最大值 | 包装器类型 | 默认值 |
---|
boolean | | | | Boolean | false |
char | 16-bit | Unicode 0 | Unicode 2^16-1 | Character | (byte)0 |
byte | 8-bit | -128 | 127 | Byte | (byte)0 |
short | 16-bit | -2^15 | 2^15-1 | Short | (short)0 |
int | 32-bit | -2^31 | 2^31-1 | Integer | (int)0 |
long | 64-bit | -2^63 | 2^63-1 | Long | 0L |
float | 32-bit | IEEE754 | IEEE754 | Float | 0.0f |
double | 64-bit | IEEE754 | IEEE754 | Double | 0.0d |
void | | | | Void | |
高精度数字类型BigInteger、BigDecimal没有对应的基本类型。
4、变量作用域
作用域决定了在该范围内定义的变量名的可见性和生存周期。在Java中,作用域是由大括号{}的位置决定的。
{
int x = 1;
// 仅变量x可用
{
int y = 2;
// 变量x和变量y都可用
}
// 仅变量x可用
}
5、类的创建
简单类的创建可以理解为我们自定义了一种新的数据类型。
1)类包括字段和方法
class Demo {
int a;
String b;
void aMethod() {
……
}
}
2)引用类型在使用前必须初始化。
3)定义在方法中的局部变量而非类的成员变量不具有默认值。
6、方法
1)方法由方法名称、参数、返回值、方法体构成
void aMethod() {
……
}
2)方法签名:方法名和参数列表(唯一标识)。
3)方法调用:对象名.方法名(参数列表)
4)return关键字的作用:
(1)返回值;
(2)离开方法
返回类型为void的方法中的return关键字用来离开方法。
7、static的作用
1、为特定域分配单一的存储空间;
2、某个方法不与包含它的类的任何对象关联在一起。
static类的引用指向同一个static类
static字段对于每一个类来说都只有一份存储空间,非static字段则是对每个对象有一个存储空间。使用static类的类名可以直接引用其中的static变量和static方法。
8、其它
1、public static void main(String[] args)中的String args[]用来存储命令行参数。使用java命令运行java程序时可以向其传递命令行参数。
2、javadoc只能为public和protected的成员进行文档注释,private和包内可访问成员的注释会被忽略掉。