java第五天
2016-03-06 13:45
387 查看
函数的重载
当定义的功能相同时,但参与运算的未知内容不同。当函数名相同时,通过参数列表不同(参数列表数量或者参数类型)来区分多个同名的函数,
public static void a(int n1) { System.out.print("重载函数1"); } public static void a(int n1,int n2) { System.out.print("重载函数2"); } public static void main(String[] args) { a(1);将会调用重载函数1 a(1,2);将会调用重载函数2 }
还有一个值得注意的是
当你定义了一个同名函数,相同参数列表数量,类型,但唯一不同的是返回值,如下
public static int a(int n) { System.out.print("当与重载函数1或重载函数2相同存在时,会发生错误,因为当你重载函数时,系统无法识别你所需要一个怎么样的返回值是int 还是char") }
数组
格式:元素类型[] 数组名=new 元素类型[元素个数或数组长度];元素类型[] 数组名=new 元素类型[元素个数或数组长度]{定义数据内容};
int[] x=new int[3];//定义存储三个整数的容器
剖析内存
局部变量只在栈内存
*默认初始化值
定义int 为0
定义double为0.0
x=null;//这样定义将不存在指向地址,即左右两边无法进行连接使用了。
出现两个引用时,如图描述的代码将不存在垃圾
*垃圾的定义
在C++中,对象所占的内存在程序结束运行之前一直被占用,在明确释放之前不能分配给其它对象;而在Java中,当没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾。JVM的一个系统级线程会自动释放该内存块。垃圾回收意味着程序不再需要的对象是”无用信息”,这些信息将被丢弃。当一个对象不再被引用的时候,内存回收它占领的空间,以便空间被后来的新对象使用。事实上,除了释放没用的对象,垃圾回收也可以清除内存记录碎片。由于创建对象和垃圾回收器释放丢弃对象所占的内存空间,内存会出现碎片。碎片是分配给对象的内存块之间的空闲内存洞。碎片整理将所占用的堆内存移到堆的一端,JVM将整理出的内存分配给新的对象。
上图是地址依然具有引用的。
当你new了两个地址时,分别由x和y引用,
int[] x=new int[3];//在堆中创建了第一块地址,比如0x0001,然后把地址给了x int[] y=new int[3];//在堆中创建了第二块地址,比如0x0002,然后把地址给了y y[1]=89;//0x0002有y引用,不存在垃圾 x=null;//此时把x置空了,就是当初在栈中x存有0x0001地址名清空了,0x0001没有对象(x)去引用他,此时存在垃圾。
数组越界(出现不存在的角标)
int[] x=new int[3];//创建了[0][1][2]
System.out.printIn(x[3]);//使用一个不存在的数组,编译不会出现错误,当运行会出现错误,错误提示为
ArrayIndexOutOfBoundException
空指针异常
当引用没有任何指向值为Nu
4000
ll的情况
int[x]=new int[3];
x=null;
System.out.printIn(x[1]);
编译不会出现错误,当运行会出现错误,错误提示为
NullPointerExcertion
相关文章推荐
- [转载] Java ArrayList、LinkedList、Vector比较
- eclipse启动虚拟机报PANIC: Could not parse file: .;C:\Users\Andme\.android\avd\4.1.ini解决方案
- Java关键字this、super使用总结
- NLPIR2016相关功能的java实现
- Mac中Eclipse代码自动整理快捷键
- JAVA父类对象与子类对象-造型转换
- JAVA的学习心得
- java.lang.NoClassDefFoundError: org/mybatis/generator/exception/InvalidConfigurationException
- leetcode之atoi() in java
- POJO和javabean的异同
- Error:java.io.FileNotFoundException: 系统找不到指定的文件.
- LeetCode : 3Sum Closest [java]
- java导出生成word
- eclipse连接SQL2008R2
- 反转链表Java
- Win10下Java环境变量的配置
- LeetCode : 3Sum [java]
- eclipse使用经验(一)运行不了
- 如何用Editplus编译运行Java
- Java POI通过模板方法生成word文档