重载(overload)+数组 内存的划分
函数的重载:
1,同一个类。
2,同名
3,参数个数不同,or参数类型不同。
4,函数重载和返回值类型无关。
5,java是严谨性语言,如果函数出现的调用的不确定性,会编译失败。
注意:函数中静态方法中不能直接调用非静态的方法。
数组
概念:同一种类型数据的集合,其实数组就是一个容器。
好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。
数组定义的格式:
内存的划分:
1,寄存器。
2,本地方法区
3,方法区。
4,栈内存。
存储的都是局部变量。
而且变量所属的作用域一旦结束,该变量就自动释放。
局部代码块:限定局部变量的生命周期(代码块结束后,就自动释放其中的变量了)
{
int x = 3;
System.out.print(x);
}
堆内存:
存储是数组和对象(其实数组就是对象)凡是new建立在堆中。
特点:
1,每一个实体都有首地址值。
2,堆内存中的每一个变量都有默认初始值,根据类型的不同而不同,整数是0,小数0.0或0.0f,boolean是false ,char ‘\0000’(unicode码表00一个字节,00一个字节,两个字节,字母那个对应的码表是 arc码表)
3,垃圾回收机制。
堆内存的变量都会默认初始化值。
引用数据类型(指向数据类型)
0x0045是地址存储在栈内存中,原来x=5是直接存在栈内存中:
地址赋值成 null,地址不指向了,堆中的数组没有任何用了,但是不是自动释放到内存,java机制视它为垃圾,有自动回收垃圾机制回收掉它:如图
多个引用变量是可以同时指向一个实体的。
数组中一些常见的问题:
[是实体,I是类型,后面是哈希值,算法:开辟空间的地址。
两种格式的特点:
以后遇到哪种语言 凡是碰见容器 必须好好学。