Java中,一切被视作对象,因此可采用单一固定的语法,尽量一切都看作对象,但操纵的标示符实际上是对象的一个引用。
如果想操作一个词或句子,可以创建一个String引用
String s;
这里创建的只是引用,并不是对象。如果此时给s发送一个消息就会返回错误。
因为s实际上没有与任何事物关联,因此安全的做法是创建一个引用的同时便进行初始化。
String s = "asdf";
一旦创建了一个引用,通常用new来实现与一个新的对象相关联。
String s = new String("asdf");
某些Java数据存储于堆栈中,特别是对象引用,但是Java对象并不存储其中。所有的Java对象存储于堆中。
特殊(基本)类型,不用new来创建,而是创建一个并非是引用的自动变量,变量直接存储值,并置于堆栈中。
Java确保数组会被初始化,而且不能在它的范围之外被访问。这种范围检察,是以每个数组上少量的内存开销及运行时的下标检察为代价的。
如下在C和C++是合法的,但是Java中会报告变量已经定义过。
{
int x = 12;
{
int x = 96; //illegal
}
}
基本类型存活于作用域,但Java对象可以存活于作用域之外。
如下,引用s在作用域终点就消失了,s指向的String对象仍占据内存空间。
{
String s = new String("a string")
}
垃圾回收器,会监视用new创建的对象,并辨别那些不再会被引用的对象,随后释放他们。
某个类成员是基本数据类型,即使没有进行初始化,Java也会确保给其默认值。
但是上述确保初始化方法不用于“局部”变量,即并非某个类的字段(数据成员)。
Java中的方法只能作为类的一部分来创建。方法只有通过对象才能被调用。
大多时候,我们使用Java标准类库里面的构件。
import java.util.ArrayList;
import java.util.*
当生命一个事物是static时,意味着这个域或者方法不会与包含它的那个类的任何对象实例关联在一起。所以即使从未创建某个类的任何对象,也可以调用其static方法或访问其static域。
class StaticTest {
static int i = 47;
}
StaticTest st1 = new StaticTest()
StaticTest st2 = new StaticTest()
即使创建了两个对象,StaticTest.i只有一份存储空间,两个对象共享它。
static方法的一个重要用法就是在不创建任何对象的前提下就可以调用她。
// HelloDate.java
import java.util.*;
public class HelloDate {
public static void main(String[] args) {
System.out.println("Hello, it's: ");
System.out.println(new Date());
}
}
注释和嵌入式文档(略。。。)
编码风格:
- 类名首字母大写。
- 类名由几个单词组成,则拼接在一起。内部单词首字母大写。
- 标识符首字母小写。