package和import
*package
1.它出现在Java源文件第一行
2.带有包名编译的方式::javac-d.xxx.java
3.如何运行?::Java文件名
4.java.util.Scanner完整类名(带有包描述)
Scanner 简类名
*import
1.when needn’t??
java.lang不需要;;同包下不需要;;其他一律需要。
2.how to use??
import完整名;
import包名.*;
访问控制权限
1.what?and control area?
a. privated 私有 只能在本类中访问
b. public 公开 任何位置都可
c. protect 受保护 只能在本类,同包,子类中访问
d. 默认 只能在本类以及同包下访问
public>>protected>>默认>>private
2.他们可以修饰什么?
属性(4个都可)
方法(都可)
类(public和默认,其余不可)
接口(public和默认,其余不可)
JDK类库的根类:Object
1.任何一个类都默认继承Object。直接或间接
2.Object类中常用的方法?
a. protected Object clone() //负责对象克隆
b. int hashCode() //获取对象哈希值的一个方法
c. boolean equals(Object obj)//判断俩个对象是否相等
…所有类的equals方法也需要重写,因为Object中的equals方法比较的是俩个对象的内存地址,我们应该比较内容。基本数据类型用 == 较好,,对象和对象比较:用equals方法。
d.String toString() //将对象转成字符串形式
…所有类的toString()方法是需要重写的
e. protected void finalize() //垃圾回收器负责调用的方法
…源代码是:protected void finalize() throw Throwable{ }
匿名内部类
1.kind of?
静态内部类
实例内部类
局部内部类
2.可读性差,尽量不使用
数组的拷贝及算法
*.拷贝
System.arraycopy()方法的使用
特点:长度一旦确定,不可变
所以数组不够长时,需要扩容,扩容机制时:新建一个大数组
将小数组中的数组拷贝到大数组,然后小数组被垃圾回收
*算法
1.冒泡排序算法
2.选择排序算法(找出最小)
3.二分法查找
a. java中已经封装好了。一个数组工具类:java.util.Arrays