Java对象
对象
对象的生成和删除
在Java中,万物皆对象。可以通过
String s;
这样的语句创建一个对象的管理者(类似于C++中的引用),这个引用储存在栈内存中(此时这个对象并没有生成)。为了生成这个对象可以使用new关键字。如下:
s = new String("jbk");
此时这个对象就被创建了,并且储存在堆内存中。特别地,对于string的对象也可以用如下格式初始化:
String s="jbk";
在Java中,程序员不需要像在C/C++中自己管理堆内存,JVM(Java虚拟机)有自己的垃圾回收机制(GC),会自动删除不需要的堆内存,避免内存泄漏。
作用域
在Java中,作用域由花括号的位置决定,例如:
{
int x=10;
//x可被访问
{
int y;
//x,y都可被访问
}
int z;
//z和x可以被访问
}
但是,在C/C++中:
{
int x;
{
int x;
}
}
是合法的,但在Java中是不可以的。
用于构成对象的数据类型:类
- 定义
可以使用class关键字来定义一个类。如下:
class Person{
}
- 类的结构
一般的类都由数据成员和方法构成。
- 数据成员可以是任何类型的对象,每个对象都有用来存储其数据,普通字段不能在对象间共享。
- 方法有返回值,方法名,参数列表和方法体(基本与C/C++函数相同)
- static关键字:
使用static关键字有两种情况:
(一)不需要实例化就能调用数据成员或者方法。
(二)希望每个对象共享一个变量(可以为对象编号)
注意事项:
被static修饰的方法或数据成员不能被没有static修饰的方法访问或调用。但是可以用 类名.数据成员/方法 的方式访问。
特殊情况
- 基本数据类型:
由于将基本类型放在堆内存中会使效率下降,所以以下类型可以不使用new关键字实例化。
基本类型 | 大小(bit) | 表示范围 | 包装器类型 | 默认值 |
---|---|---|---|---|
boolean | – | true,false | Boolean | flse |
char | 16 | unicode 0~Unicode 2^{-16}-1 | Character | null |
byte | 8 | -128~127 | Byte | (byte)0 |
short | 16 | -215~215-1 | Short | (short)0 |
int | 32 | -231~-231-1 | Integer | 0 |
long | 64 | -263~263-1 | Long | 0 |
float | 32 | IEEE754 | Float | 0.0f |
double | 64 | IEEE754 | Double | 0.0f |
void | – | – | – | – |
ps:Java提供了两个用于高精度计算的类:BigInteger(计算整数),BigDecimal(计算定点数)
- 基本数据类型初始化
可使用如下语句:
int i;