一切都是对象
2.1 用引用操作对象
尽管一切都看作对象,单操纵的标识符实际上是对象的一个引用。就像遥控器(引用)操纵电视(对象)。但是遥控器和电视是可以单独存在的。
你拥有一个引用,但并不一定需要有一个对象与它关联。比如创建一个String引用:String s;
,这里创建的只是引用,并不是对象。此时使用s时会产生一个运行时异常,因为s没有和任何对象产生关联。安全的做法是:创建一个引用的庭审便进行初始化。
2.2 必须由你创建所有对象
一旦创建了新引用,就希望它能与一个新的对象产生关联。通常用new操作符来实现这一目的。
字符串可以用带引号的文本初始化。
new的意思是给我一个新对象。
String s = new String("asdf");
存储的地方:
- 寄存器:速度最快。在cpu内部。
- 堆栈:位于通用RAM。
- 堆:一种通用的内存池(也位于RAM区),用于存放java对象
- 常量存储:常量值通常直接存放在程序代码内部。
- 非RAM存储:存活于程序外的数据。比如流对象或持久化对象。
基本数据类型不用new创建变量,直接存储”值”,用置于堆栈中,更加高效。
2.3 永远不要销毁对象
作用域:作用域决定了在其内定义的变量名的可见性和生命周期。
对象作用域:new创建的对象,只要你需要,会一直保留下去。不使用的对象由GC回收。
2.4 创建新的数据类型:类
如果一切搜索对象,那么是什么决定了某一类对象的外观和行为呢?
class Name 用来描述对象。
类中有两种元素:字段和方法。
如果类的某个成员是基本数据类型,即使没有初始化,java也会确保它获得一个默认值。
2.5 方法、参数和返回值
方法的基本构成:名称、参数、返回值、方法体。
返回值描述的是在调用方法之后从方法返回的值。没有返回值可以void标识。
参数列表给出了腰传给方法的信息的类型和名称。
方法名和参数列表唯一地标识出某个方法(又被称为方法签名)。
方法的参数列表传递的是对象的引用,并且引用的类型必须正确。
2.6 构建一个Java程序
名字可以用倒序的域名来避免重名冲突。
import用于定位类文件位置。通配符“*”可以一次性导入全部。
static 关键字:
作用于字段时:只分配一份存储空间,所有的对象共用一个。
作用于方法时:可以不创建类的对象的情况下直接调用方法。
2.7 你的第一个Java程序
package com.thinkinjava.two;
import java.util.Date;
public class Test {
public static void main(String[] args) {
System.out.println("hello");
System.out.println(new Date());
}
}
2.8 注释和嵌入式文档
多行注释:
/**
* 多行注释
* @author Administrator
*
*/
单行注释://单行注释。
注释文档由javadoc生成。
2.9 编码风格
驼峰风格:AbCd