摘要:是我在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:只有当前类中可用

java 一个类的字段赋值给另一个类 java子类可以赋值给父类_抽象类

非访问修饰符 :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修饰同一元素

java 一个类的字段赋值给另一个类 java子类可以赋值给父类_父类_02

接口设计

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

java 一个类的字段赋值给另一个类 java子类可以赋值给父类_子类_03

对list,如果没有充足的理由去使用Vector(多线程)、LinkedList(较大元素的非随机访问),建议都使用ArrayList

对Set(引用集合:无序,无重复)

Sorted和Ordered比较:Sorted指固有属性的排序(人的辈分,序号的大小),Ordered指可变的随机顺序(如添加的顺序,List系列就是一种Ordered)

 

 

java 一个类的字段赋值给另一个类 java子类可以赋值给父类_java 一个类的字段赋值给另一个类_04

Map存储的是键值对

 

垃圾收集 

unit 8 内部类

内部类--Java核心-09

unit 9  线程

多线程——Java核心-10