java学习点滴(二):学习笔记汇总

1.对象的创建

  • 对象的引用存放在堆栈区
  • 基本数据类型存放在堆栈区
  • 对象存放在堆区
  • 永久不变的值存放在常量池中

2.访问控制

  • public:接口访问权限,所有人都可以访问
  • protected:继承访问权限,子类可以访问。(同时提供包访问权限)
  • default:包访问权限。将单一的全局名字空间分隔开,不会命名冲突
  • private:类的内部访问

3.流程控制

  • break结束整个循环,continue结束本次循环,继续执行下次循环
  • while循环当条件不符合时,一次也不执行。do while最少执行一次

4.java面向对象

(1)封装

将数据和操作封装在一起,数据被保护在抽象数据类型内部,隐藏细节,保留接口与外界联系。

好处:减少耦合,类内部可以自由修改,对成员更精确控制,隐藏信息,实现细节。

(2)继承

  • 子类拥有父类的非private属性和方法
  • 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展
  • 子类可以用自己的方式实现父类的方法,重写,即方法覆盖。重写只发生在继承关系中

(3)多态

静态多态:由于方法重载机制,在调用方法时可以根据参数类型或参数个数的不同调用不同的方法。

动态多态:子类重写了父类的方法后,由于动态绑定机制,在方法调用时才确定调用哪个子类重写后的方法。

参考资料:http://www.cnblogs.com/bluestorm/archive/2012/03/01/2376236.html

5.常用关键字

(1)static

引入原因:只有new了一个对象后才能使用这个对象的属性和方法,因为new之后才会分配内存空间,如果想要不创建对象就使用它的属性和方法,就要使用static关键字。

使用情况:对象之间共享数据,访问方便。

局限:static方法中只能调用其他static方法和变量。

不能引用this或super的原因:类装载时初始化,早于非static变量。

(2)final,finally,finalize

final:

  • 编译器常量:final static+基本数据类型
  • 运行期常量:基本数据类型内容不变,引用数据类型引用不变,内容可变
  • final方法不能被重写,不能被更改,不能被重载
  • final类不能被继承,方法自动为final
  • final参数,匿名内部类使用,保持参数一致性

finally:异常处理语句的一部分,表示总是执行。

finalize():垃圾收集器执行是会调用此方法,可覆盖此方法提供垃圾收集时其他资源的回收,如文件关闭等。