Java学习手册

这是在学了C后转学JAVA时补充的一些知识
//多态,动态绑定(方法):
* 1有继承
* 2有重写
* 3父类引用指向子类对象
* 属性静态绑定到变量类型,注意与方法动态绑定的区别,但一般子类属性不要与父类属性重名为好

//javaBean规范(使用方便):
*必须有包package
*java类具有无参构造函数
*有用getXXX()和setXXX()声明的Bean属性
*必须实现序列化接口

//static为修饰类级别资源,由全体类对象共享

//接口:
* 接口是一种特殊的抽象类,是抽象方法和常量值的定义的集合
* 没有变量和方法的实现
* 多个无关的类可以实现同一个接口
* 一个类可以实现多个接口
* 每个接口暴露对象的某些特定方法

//接口之间的关系
* 接口可以继承接口,和类一样
* 但类只能实现接口
*java中类只支持单继承,但可以实现多个接口

//final 关键字
/*
* final变量不能改变值
* final方法不能被重写
* final类不能被继承
*/

/* 异常处理(throwable)
* 掌握一个图,5个关键字,先小后大,异常重写关系
* error是系统内部错误,虚拟机出错,程序无法解决
* exception包括RuntimeException和其他Exception,可以被我们catch,程序可以处理
*RuntimeException是经常出的错误,可以选择catch或者不catch,但其他的Exception必须catch,不然就得再出throw,否则编译无法通过,查看函数声明是有声明throw exception的还有重写的父类方法有抛出异常的
*在try语句里catch到异常后不执行try模块里的出现异常的语句后面的语句
*但在try模块后面的语句有被执行
*finally语句块无论什么情况都被执行
*printStackTrace()包涵getMessage()里面的内容
*传递给异常类构造函数的字符串就是getMessage()的内容
*不可以在子类异常catch前catch父类异常,会提示已捕捉到异常
*自定义异常类,通过继承Exception和RuntimeException类
*重写方法需要抛出与愿方法所抛出的异常类型一致或者不抛出异常
*/

*数组补充:
*用charAt(下标)方法获取字符串中的某一下标对应的字符
*1用迭代输出每一个元素,也可以用java.util.Arrays包中的一个方法:
Array.toString(array)这是一个静态方法 ,此方法会以特殊格式输出数组对象:[1, 2, 3, 1]
*2数组拷贝:用方法System.arraycopy(src,srcPos,dest,destPos,length)和Arrays.copyOf(src,length)
* 3利用数组复制实现数组扩展

*4java语言中声明数组时不能指定其长度,及数组元素的个数,例如: int a[5]; //非法
*5 在元素为引用类型的数组中,每一个元素都要实例化,数组元素中存的是推中实例话的对象的引用,不是实体
*6动态初始化:数组定义与为数组元素分配空间和赋值操作分开进行,即先new一个数组,再往里面赋值
//补充:数组静态初始化只能在声明时同时初始化(new一个的为动态初始化)
int a[];是声明, a = new int[3]是分配空间,a[1] = 1;是赋值。
静态初始化:在定义数组时就为数组元素分配空间并赋值
int a[] = {1,2,3};Date days[] = {new Date(1,2,2012),new Date(1,2,2012),new Date(1,2,2012)};

初始化:引用类型默认空值
Date[] days = new Date[3];
System.out.println(days[2]); \输出为null;

string类和stringBuffer类:
*string类的内容是不可变的,对其进行运算变化只能把他copy出来重新组合在把引用指向它
*stringBuffer类的内容是可变的,可以对字符串进行改变进行运算直接在这个字符串的内存上操作,方法append()添加内容
*方法reverse行()进序字符串逆序

你可能感兴趣的:(学习笔记)