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

Java 数据类型

2016-03-30 23:36 218 查看
分享一下当初的Java学习笔记,首先通过下图来了解一下Java的数据类型:



关于Java的数据类型长度,如下表所示:

数据类型
boolean
char
byte
short
int
long
float
double
字节

2
1
2
4
8
4
8
注意:其中char为2个字节,采用Unicode编码;long为8个字节。
[align=left]
[/align]

1、每个字符串对象都表示一个匿名对象,字符串的内容一旦声明是不可改变的,改变的只是其内存地址的指向。
2、使用this调用构造函数方法必须放在构造函数的第一行。(因为:构造方法是在实例化对象时被自动调用的,在类的所有方法中,只有构造方法是最先被调用的)
类类型的值是对某个类实例的引用;数组类型的值是对数组对象的引用;接口类型的值是对实现了该接口的某个类实例的引用。
基本类型体现在程序中是普通变量,基本类型的包装类是类,体现在程序中是引用变量。基本类型存储在栈中,而基本类型包装类存储在堆中。

关于super和this关键字在构造器中的使用差异

super调用,用于显式调用父类构造器;

this调用,用于显式调用本类中另一个重载的构造器。

super调用和this调用都只能在构造器中使用,而且都必须作为构造器的第一行代码。(构造器中的super调用和this调用最多只能使用其中之一,而且最多只能调用一次)

 

创建任何Java对象时,系统总是会先依次调用父类的非静态初始化块、构造器执行初始化,然后才调用本类的非静态初始化块、构造器执行初始化。

 

(1)子类构造器中的第一行代码使用super显式调用父类的构造器,系统将根据super调用传入的实参列表来确定调用父类的哪一个构造器;

(2)子类构造器中的第一行代码使用this显式调用本类中另一个重载的构造器,系统将根据this调用传入的实参列表来确定调用子类的另一个构造器;

(3)子类构造器中既没有super调用,也没有this调用,系统将会在执行子类构造器之前,隐式调用父类的无参数的构造器。

继承成员变量与继承方法的差别:

如果子类中定义了与父类中完全同名的实例变量,则在子类中定义的变量会隐藏父类中定义的变量(不会覆盖父类中定义的实例变量,在创建子类对象时,依然会为父类中定义的、被隐藏的变量分配内存空间)。

如果子类覆写了父类中的方法,这个方法会覆盖父类中定义的方法。

子类对象中保存了其所有父类定义的全部实例变量。

将一个子类对象赋给一个父类对象时,会执行向上转型。

类变量在类初始化阶段完成初始化,实例变量则在对象初始化阶段完成初始化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: