本篇关注:对象(第1,2章),基础语法(第3,4章)
对象
面向对象程序设计(Object-oriented Programming,OOP)
每个对象都有内部数据(状态),方法(产生行为),标识(内存中唯一地址,或其他)
每个对象都是某个类class的一个实例 instance
Light lt = new Light();
lt.on();
类名:Light。
创建Light新对象:定义一个引用(reference)lt,用new指向一个新对象。
接口 interface:定义了对某一对象能发出的请求(调用这个类中的方法)
此例子的接口里有on(), off()等方法。
实现 implementation:由满足请求的代码和隐藏数据构成
String s = new String("abc");
创建一个引用 reference的同时最好就初始化。
垃圾回收器:监视用new创建的所有对象,一旦不再需要,它们就会自行消失,释放内存空间。
基本类型
基本数据类型高精度的类:运算速度较慢
BigInteger:支持任意精度的整数。
BigDecimal:支持任意精度的定点数。
自动装箱:自动地将一个原始数据类型转换为一个封装类型
自动拆箱:自动地将一个封装类型数据转换为原始数据类型
变量
public class Variable{
static int allClicks = 0; // 静态变量
String str="hello world"; // 成员变量
public void method(){
int i =0; // 局部变量
}
}
- 成员变量:类中方法外。有默认初始化值。
- 静态变量:类变量,全局变量。可直接用类名调用。被分配了单一的存储空间,同样的数据只有一份。
- 实例变量
- 局部变量:方法中定义的变量。必须初始化。
数据存储位置
-
Registers 寄存器:
位于处理器内部,是最快的存储区。由编译器根据需求分配,Java程序无法控制它。 -
Stack 栈,堆栈 :
位于RAM。堆栈指针向下移动(分配新内存),向上移动(释放内存)。
存放局部变量和对象引用。
数据可共享。比如int a =3; int b = 3; 引用的是同一个3。 -
Heap 堆:位于RAM。存放new出来的类的对象(包括其成员变量)和数组。数据不共享。
-
常量池:存放在编译期被确定,并被保存在已编译的.class文件中的一些数据;存放字符串常量,其他基本数据类型的常量,类和接口的全限定名,字段名称和描述符,方法名称和描述符。
JDK1.6常量池放在方法区,JDK1.7常量池放在堆内存,JDK1.8放在元空间里面,和堆相独立。 -
Non-RAM storage 非RAM存储:在程序外。比如流对象,持久化对象。
类
return:已经做完,离开方法。方法返回值需要放在return后面。
void方法不需要返回值,return仅用作离开。
域 field
域是类中的数据成员。通常是非static。
方法 method
static方法内部不能调用非static方法,反之可以。
参数
- 实参 argument:实际参数,传递给方法的参数。可以是常量、变量、表达式、函数等,必须有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。
- 形参 parameter:形式参数,不是实际存在变量,又称虚拟变量。是在定义方法的时候使用的参数。目的是用来接收调用该方法时传入的参数。在调用方法时,实参将赋值给形参。
形参的本质是变量名,不占内存空间。实参的本质是一个变量,占用内存空间。
环境
JDK(Java Development Kit),Java开发所需的工具包。
JRE(Java Runtime Environment),Java运行环境。
编码风格
驼峰风格。不要用下划线。
类名首字母大写。方法、变量、引用首字母小写。
操作符
移位操作符
左移操作符(<<):按照右侧指定的位数将操作数向左移动,在低位补0
“有符号”右移操作符(>>):按照右侧指定的位数将操作数向右移动,若操作数的符号为正,则在高位插0;若操作数的符号为负,则在高位插入1
“无符号”右移操作符(>>>):按照右侧指定的位数将操作数向右移动,无论操作数的正负,都在高位插入0
自动递增(++)和递减(--)
i++:先使用再加1;++i:先加1再使用
类型转换
类型自动转换:低级数据类型自动转换为高级数据类型
强制类型转换:高级数据类型转换为低级数据类型
控制执行流程
while比do-while更常用。do-while至少会先执行一次。
foreach:用于数组和容器,还有任何Iterable对象。
break:强制结束整个循环,不再执行剩余代码。
continue:结束本次循环,回到循环起始处,开始下一次循环。
return:退出方法,或从方法返回一个值。
无穷循环:while(true) 和 for(;;) 完全等价。
Switch 多项选择
switch (interal-selector) {
case interal-value1 : statement1; break;
case interal-value2 : statement1; break;
case interal-value3 : statement1; break;
//...
default: break;
}
interal-selector 整数选择因子,可以是:
char, byte, short, int 以及包装类 Character, Byte, Short, Integer
enmu枚举
String字符串
网友评论