【内存分析贯彻始终】
获取java版本号:java -version
IDE:Integrated development environment
约定俗成的命名规则:类名首字母大写,变量名和方法名首字母小写,运用驼峰标示(即满足上两条规则后以后每个单词首字母大写)
打包:jar -cvf xx.jar *.*
类(对象)之间的关系:关联关系,继承关系,聚合关系(聚集和组合,聚集可分,组合不可分),实现关系(可理解为实现接口),多态。
访问权限控制:private、default、protected、public
重载【overload】:一个类中可以定义有相同名字,但是参数不同的多个方法。
重写【overwrite】:在子类中对从父类中继承来的方法重写,方法必须和被重写的方法具有相同的方法名称、参数列表和返回值类型,重写方法不能使用比被重写方法更严格的访问权限。
this:当前对象的引用
super:当前对象父类的引用
static:所有的函数共享一个实例,可用类名直接访问。
package:类打包
import:导入类包
extends:继承
abstract:抽象
implements:实现接口
继承中的构造方法:子类中的构造过程中必须调用父类的构造方法,子类可以用super调用父类的构造方法,并且在子类构造方法的第一行;也可以用this调用同类其他的构造方法
对象转型【casting】:子类的引用型变量可以指向其子类的对象,但不可以访问子类对象新增加的成员(属性和方法);可以使用【引用变量】instanceof【类名】来判断该引用型变量所指向的对象是否属于该类或者该类的子类。子类的对象可以当作父类的对象来使用称作向上转型(upcasting),反之称之为向下转型(downcasting)
多态:是指执行期间(而不是编译期间)判断所引用对象的实际类型,根据实际的类型调用相应的方法
多态存在的条件:
1、要有继承
2、要有重写
3、父类引用指向子类对象
final关键字
final的变量的值不能被改变(final的成员变量,final的局部变量【形参】)
final的方法不能被重写
final的类不能被继承
接口【interface】:接口是抽象方法和常量值的定义集合,从本质上讲,接口是一种特殊的抽象类,这种抽象类只包含常量和方法的定义却没有去实现。
public interface 接口名{
public static final type 变量名=变量值;
……
public 返回类型 方法名();
……}
java类定义格式:<modifier>class<name>【extends<supperclass>】【implements<interface>【,interface】*】{<declarations>}
Throwable
Errpr:称之为错误,由java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等,程序对其不做处理。
Exception:所有异常类的父类其子类对应了各种各样可能出现的异常事件,一般需要用户显式的声明或扑捉。
RuntimeException:一种特殊的异常,如被0除、数组下标超范围等,其产生比较频繁,处理麻烦,如果显式的声明或捕获将会对程序可读性和运行效率影响很大。因此由系统自动检测并将它们交给缺省的异常处理程序(用户可以不必对其处理)
抛出异常先抛出小的异常,再抛出大的异常
try{}catch(){}finally{}
五个关键字:
try、catch、finally、throws、throw
重写方法需要抛出与原方法所抛出异常类型一致的异常或者不抛出异常
java语言声明数组时不能指定其长度
数组初始化
动态初始化:先分配空间在赋值。int【】 a = new int【3】;
静态初始化:分配空间和赋值同时赋值。int【】 a = {1,3,7};
数组的length是属性,String的length是方法
搜索一般是建立在排好顺序的基础之上
java中多维数组的初始化应从高维到低维的顺序进行
Enum:(枚举类型),只能取特定值中的一个,使用enum关键字,是java.lang.Enum类型
public enum 【枚举类型名】{【枚举值】,【枚举值】,【枚举值】……};
容器:java api的一些类的实例,用来存放对象。
Collection接口:——定义了存取一组数据的方法,其子接口Set和List分别定义了存储方式
Set接口:存储的数据对象没有顺序且不可重复
List接口:存储的数据对象有顺序且可重复
Map接口:定义了存储“键【key】——值【value】映射对”的方法
容器类对象在调用remove、contains等方法是需要比较对象是否相等,这会涉及到对象类型的equals方法和hashCode方法,对于自定义类需要重写equals和hashCode方法,以实现自定义的对象相等原则。注意:相等的对象应具有相等的hash code
所有可以排序的类都实现了java.lang.Comparable接口,Comparable接口中只有一个方法:
public int compareTo(T obj),实现Comparable接口的类通过实现compareTo方法,从而确定该类对象的排序方式。
如何选择数据结构
衡量标准:读的效率和写的效率
Array读快改慢
Linked改快读慢
Hash两者之间
(Auto-boxing/unboxing)Jdk1.5实现了自动打包和解包(即自动的将基础类型转换为对象或者自动将对象转换为基础类型)