您的位置:首页 > 编程语言 > Java开发

java小知识查漏补缺——final,jvm内存分析,static,this(二)

2016-10-14 11:40 344 查看
final 常量只能赋值一次

如final  int c=43;

c=35;//报错,无法为最终变量赋值

final double PI=3.14;//一般常量使用大写

final关键字:

修饰变量:-常量

修饰方法:-该方法不可被子类重写。但是可以被重载!

修饰类:-修饰的类不能有子类,不能被继承,比如Math、String

小数也能取余 如:

double p=10.2%3;

System.out.println(p);//是合法的

OOA 面向对象分析
OOD 面向对象设计
OOP 面向对象语言 如java

内存分析

栈(自动分配连续的空间,后进先出)

放置:局部变量

堆(不连续)

堆:放置new出来的对象,其中方法区也是堆,

一般存放:类的信息(代码),static 变量、常量池(字符串常量等)等。

static  :在类中,用static 声明的成员变量为静态成员变量,或者叫做:类属性,类变量

它为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显示初始化,

对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享!!!

可以使用“对象.属性类”来调用。不过,一般都是“类名.类属性”。

static变量置于方法区中!

用Static声明的方法为静态方法

不需要对象,就可以调用(类名.方法名)

在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。

如果希望加载后,对整个类进行某些初始化操作,可以使用static初始化块。

是在类初始化时执行,不是在创建对象时执行。

静态初始化块中不能访问非static成员。

执行顺序:上溯到Object类,先执行Object的静态初始化块,再向下执行子类的静态

初始化块,知道我们的类的静态初始化块为止。

this:

普通方法中,this总是指向调用该方法的对象。

构造方法中,this总是指向正要初始化的对象。

this不能用于static方法

this称为隐式参数

如果类中有重载构造器:this()//通过this调用其他构造方法,且必须位于第一句

super是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性

普通方法:

没有顺序限制,可以随便调用。

构造函数中:

任何类的构造函数中,若是构造函数的第一行代码没有显示的调用

super(...);那么java默认都会调用super();作为父类的初始化函数,所以你这里的

super();加不加都无所谓

所有的构造方法第一句始终是super();

继承VS组合

"is-a"关系使用继承

"have-a"关系使用组合

封装要点:

类的属性的处理:

1、一般使用private.(除非本属性确定会让子类继承)

2、提供相应的get/set方法来访问相关属性,这些方法通常是public,从而提供对属性的

读取操作。(注意:boolean变量的Get方法是用:is开头!)

一些只用于本类的辅助性方法可以用private,希望其他类调用的方法用public
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: