D基础

访问控制

封装:将数据封装到类的内部,将算法封装到方法中。

封装结果:存在但不可见

修饰符:

public:任何位置可见,修饰属性,类,方法,内部类,跨包访问类。需要使用import导入。

protected:当前包中可见,子类中可见。只可以修饰类的成员,只能在类体中使用,包括:属性,方法,内部类。

default:当前包内可见,没有任何修饰词,在项目中很少用。

private:仅在类内部可见。修饰类的成员:属性,方法,内部类。

###

默认类(包内类)的访问范围:当前包内部可见,不能在其他包中访问,类的访问受限。

在企业项目中建议:所有类都是公用类。封装的类使用内部类。

Java文件规则:

    1)一个java源文件中可以有多个类,但只能有一个共用类,其他类只能是默认类(包中类)而且java的文件名一定与公用类类名一致,如果没有共用类,可以和任意一个类名一致。

    2)一般建议:一个文件一个公用类!一般不在一个文件中写多个类

私有方法不能被继承,也不能重写。

static:静态的,只能在类内部使用,可以修饰:属性,方法,内部类静态代码块。

    静态修饰的成员:属于类级别的成员,是全体类实例共享的资源。

    静态属性:只有一份,全体实例共享,类似于全局变量。

    静态方法:属于类的方法,使用类名直接调用,不需要创建对象,而且静态方法中没有隐含参数this,不能访问当前对象资源。

    静态代码块:在类的加载期间执行,只执行一次。(普通代码块,在创建对象时候执行,类似于构造器的作用)

final:最终的,终态,可以修饰:类,方法,变量(属性,局部变量)

    final的类:不能再继承

    final的方法:不能再重写

    final的方法和类,阻止了动态代理模式!动态代理模式广泛的应用再Spring,Hibernate Struts2,企业编程规范:不允许使用final的方法和类!

    final的变量:只能初始化一次,不能再修改

数组

#对象数组,是对象的元素不是基本类型,而是引用类型。

    例:Point[] ps = new Point[3];

            ps[0] = new Point(1,2);

            ps[1] = new Point(3,4);

            ps[2] = new Point(5,6);

    数组ps的每一个元素都是Point类型的引用,都将指向一个Point类型的对象。初始化对象数组时,要注意将其每一个元素进行实例化。

数组的复制与扩容

    数组变量的赋值,是并不会复制数组对象,而是两个变量引用了同一个数组对象。

    数组复制本质是创建了新数组,将原数组的内容复制过来。

    扩容:创建新数组,新数组容量大于原数组,原数组内容复制到新数组,并且丢弃原数组

排序算法

    熟练冒泡排序:比较相邻元素,大的向后交换

    Arrays数组工具类

递归调用:方法中调用了方法本身

    递归解决问题:简练只需考虑一层逻辑即可,一定要有结束条件。注意栈内存溢出问题。总之慎用递归。

二进制基础

    16进制是2进制的简写,2进制4位对应16进制1位。

移位运算符

你可能感兴趣的:(D基础)