3.2.2 标识符
标识符:给程序中变量、类、方法命名的符号;
标识符:可以有 字母、数字、下划线和美元符($)组成,其中数字不能开头;
不能是java关键字、保留字,但是可以包含关键字、保留字;
不能包含空格;
只能包含美元符 不能包含@、#等特殊字符;
3.3数据类型
java语言支持的数据类型:基本类型和引用类型;
基本类型:short int long byte float double char boolean
引用类型:对象的引用、数组类型;
3.5 基本类型的类型转换
自动类型转换 强制类型转换
自动类型转换:
byte----> short----->int--->long--->float---->double char----->int--->long--->float---->double
java为8种基本类型都 提供了对应的包装类,8个包装类都提供了一个parseXxx的静态方法用于将字符串转换成基本类型;
4.6.1 内存中的数组
数组引用变量只是一个引用 ,这个引用变量可以指向任何有效的内存,只有当该引用指向有效内存后,才可以通过该数组变量来访问数组元素;
数组引用变量被存储在栈内存中,数组元素被 存储在堆内存中;
4.6.5 操作数组的工具类
/**
* 输出 intArr数组的元素
* @param args
* 结果为:[6, 7, 1, 2]
*/
public static void printArr(){
int[] intArr = {6,7,1,2};
System.out.println(Arrays.toString(intArr));
}
第五章先放一放
第六章 面向对象下
6.3.2 单例类
定义:一个类始终只能创建一个实例;
6.7 内部类
定义:一个类放在另一个类的内部定义;
- 内部类提供了更好的封装,不允许同一个包中的其他类访问该类;
- 内部类可以直接访问外部类的私有数据,外部类 不能访问内部类的实现细节,例如内部类的属性;
匿名内部类适合创建那些仅需要一次使用的类;
6.7.5 匿名内部类
最常用的创建匿名内部类的方式 是需要创建某个接口类型的对象;
public class AnonymousInnerClass {
public void test(Product p){
System.out.println(p.getName()+"====="+p.getPrice());
}
public static void main(String[] args) {
AnonymousInnerClass ts = new AnonymousInnerClass();
ts.test(new Product() {
public double getPrice() {
// TODO Auto-generated method stub
return 111;
}
public String getName() {
// TODO Auto-generated method stub
return "苹果";
}
});
}
}
interface Product{
public double getPrice();
public String getName();
}
6.8 枚举类
定义:实例有限而且固定的类;
6.9 对象跟垃圾回收
垃圾回收机制有如下特征:
- 垃圾回收机制只负责回收内存中对象,不会回收任何物理资源;
- 程序无法精确控制垃圾回收的运行,垃圾回收会在合适的时候运行;当对象永久性的失去引用后,系统就会在合适时候回收它所占的内存;
- 垃圾回收机制回收任何对象之前,总会先调用它的finalize方法,该方法可能使该对象重新复活 ,从而导致垃圾回收机制取消回收;
6.9.1 对象在内存中的状态
- 激活状态:对象创建,有一个以上的引用变量引用,则对象处于激活状态;
- 去活状态:不再有任何引用变量引用它则对象处于去活状态; ===== 在这个状态下,垃圾回收机制准备回收该对象所占用的内存,在回收该对象之前,系统会调用所有去活状态对象的finalize方法进行资源清理;如果系统在调用finalize方法重新让一个引用变量引用该对象,则这个对象再次变为激活状态;否则该对象进入死亡状态;
- 死亡状态:该对象与所有引用变量的关联都被切断;系统已经调用所有去活对象的finalize方法依然没有使该对象变为激活状态,那么该对象将永久性的失去引用;只有当一个对象处于死亡状态,系统才会回收该对象所占用的所有资源;
6.9.2 强制垃圾回收
调用system类的gc():System.gc();
调用Runtime对象的gc():Runtime.getRuntime().gc();
6.11 使用jar文件
jar文件的全称是 java Archive File (java档案文件);