摘要:是我在Java培训的第二阶段的笔录,通过学习过程中遇到的问题正在不断完善。
unit 1 语言基础部分
数字类型的数组不可强制类型转换为其他数据类型
子类对象可直接赋给父类变量,而父类对象赋给子类变量时要强制类型转换(如果父类对象已经实例化【不为null】,则不能完成赋值,只有当父类变量中为空或该子类对象时才可以【子类给父类可以直接给】)
父类变量数组可接受相同结构的子类对象数组
例:Person p[][] = new Person[][];
Son s[][] = new Son[][];
Son 是Person的子类 可以 Son s[][] = new Son[][];
p=s;//可行
s=(Son)p;//不可行 s=(Son[][])p;//可行
---------------------------------------------------------------------------------------------------------------
变量的定义和使用
如果不给变量赋值:类变量会默认赋初值
而局部变量除了Boolean外不会被赋初值
import:在类中可以使用未导入的方法,但是要用全程:javax.swing.JFrame jf=new javax.swing.JFrame();
unit 2 声明和访问控制
访问修饰符:public、protected、private、默认(不写)
同一文件中只能有一个public类,且类名与文件名相同
public:修饰公共类和方法,其他包中使用时需要导入该类所在包,同一包中可直接使用
没用public修饰的类或方法、构造器不能跨包使用
protected:本被修饰变量、方法、类在同一包中可用,自己子类中也可用
默认:同一包中可用
private:只有当前类中可用
非访问修饰符 :strictfp、final、abstract
static:修饰的变量被该类所有的对象共享,有一对象个对该变量调整,所有对象的该变量都会发生改变。
static修饰的属于类,没有创建对象时就可用(可直接从类名调用方法和变量Math.random(););非static的属于变量特 有 的,只有创建对象后才可使用。
注意:静态方法只能使用静态变量和静态方法 ,非静态方法可使用静态或非静态变量和方法。
静态修饰符static
strictfp:修饰的类中的浮点数必须遵循某一规则,strictfp不能与native(本地)同时修饰一元素。
native:修饰的方法没有方法体,以分号结束。
final:最终类,不可派生子类;修饰的方法不可在子类中重写,变量不可修改。(局部变量只能由final修饰)
abstract:抽象类,此类必须被继承使用。抽象类可以有引用(BN bn;),但不可被实例化对象(new)。
抽象类的子类必须实现类中所有的抽象方法(非抽象方法不受限制),抽象方法没有方法体。
若抽象类的子类也为抽象类,则子类中不用必须实现父类中的抽象方法,但子类的子类必须实现该类及其父类中所有的抽象方法(若处于中间的类,此类已经实现父类(一级类)中的抽象方法,则对其子类不做要求)。
若抽象方法为public,则其实现必须是public。如果不为public,则对子类没有要求(是不是public都可)。
注意:abstract只能和public、protected、默认的同时出现修饰同一元素,其余的都不能出现。
synchronized:表示该方法同一时刻只能被一个线程访问(应用于多线程)。
transient:串行化时使用。
volatile:值不稳定,易改变(挥发)。(不能与final修饰同一元素)
接口设计
interface :接口的声明关键字(等同于class),接口中的方法没有方法体,接口可以引用,但不可实例化对象。
(接口的引用可以指向子类对象【多态】)可以通过接口实现多重继承,接口和接口之间通过extends联系。
抽象类和接口的使用区别:同一种类的共同特征用抽象类,不同种类的共同特征用接口。
implements:类实现接口的关键字(等同于extends),实现接口的类中必须覆盖接口中所有的方法。
(接口中的方法默认是公共的(public)和抽象的(abstract),两个修饰符可加可不加,不可加其他的任意修饰符)
(接口中的变量是默认是public static final,可用实现该接口的类名或接口名直接调用接口中的变量)
unit 3 运算赋和赋值
数据类型,Java基本规则,运算符
传递对象引用
unit 4 流程控制、异常处理和断言
异常处理
unit 5 面向对象、重载和重写、构造函数及返回类型
unit 6 Java.lang————Math类、字符串和封装类
unit 7 对象和集合
equals、toString.hashCode的重写
Collection
对list,如果没有充足的理由去使用Vector(多线程)、LinkedList(较大元素的非随机访问),建议都使用ArrayList
对Set(引用集合:无序,无重复)
Sorted和Ordered比较:Sorted指固有属性的排序(人的辈分,序号的大小),Ordered指可变的随机顺序(如添加的顺序,List系列就是一种Ordered)
Map存储的是键值对
垃圾收集
unit 8 内部类
unit 9 线程
多线程——Java核心-10