1.可变参数(int等类型也行)
转载博客:https://blog.csdn.net/qiuchengjia/article/details/52910888
2.使用数组要注意的问题:
空指针异常(NullPointerException):在java.lang.NullPointerException中,
发生在当一个变量为null(没有赋值时)时,我们调用了该变量的属性和方法
数组越界异常(ArrayIndexOutOfBoundsException):
在java.lang.ArrayIndexOutOfBoundsException中
3.堆栈
转载博客:https://blog.csdn.net/lk274857347/article/details/77512555
4.对象声明有两种含义
声明对象:Horse horse = null;(除了八种基本数据类型以外,都是引用数据类型,包括数组)
//表示声明了一个对象,但是此对象无法使用,horse没有具体的内存指向
实例化对象:horse = new Horse();
//表示实例化了对象,可以使用
//通过对象调用方法
horse.eat()
//匿名对象调用方法:
new Horse().eat() //匿名对象只能使用一次,用完后,该对象就会被释放
horse = null;//把对象释放
//h.eat(); //当对象不存在时,调用该对象的属性和方法将报错(空指针)
如果使用一个没有申请内存空间的对象,会报空指针异常:
java.lang.NullPointerException
5.字符串时引用类型变量,不是基本数据类型(例如:String)。
6.类与对象小结:
(1)相同的类型才可以赋值
(2)不同的引用,指向同一个对象,任何一个引用改变对象的值,其它引用都会反映出来。
(3)当一个堆中的对象没有被任何引用变量所指向时,该对象会被JVM的GC程序认为是垃圾对象,从而被回收。
(4)编程时要注意的问题,在确定不使用某个对象时,要尽早释放对象:引用=null,减少对GC的压力。
(5)一个对象在内存中的大小,由该对象的所有属性所占的内存大小的总和。引用类型变量在32位系统上占4个字节,在64位系统上占8个字节,再加上额外的对象隐性数据所占的大小。
7.成员变量和局部变量在内存中的位置不同
成员变量:在堆内存(成员变量属于对象,对象进堆内存)
局部变量:在栈内存(局部变量属于方法,方法进栈内存)