局部变量和成员变量
▪ 区别
– 声明位置不同 类中 方法中
– 作用范围不同: 当前类的方法 当前方法 ▪ 不同的方法中即使有同名的局部变量,没有关系,互不影响,建议相同
– 内存存放的位置的:栈内存中 堆内存中
– 成员变量有默认值;
引用类型
▪ Java 语言中除基本类型之外的变量类型都称之为引用类型。局部变量没有默认值;
▪ Java中的对象和数组是通过引用对其操作的. – 引用可以理解为一种受限的指针
– 指针是可以进行不整数做加减运算的,两个指针之间也可以进行大小比较运算和相减运算。引用不行,叧能
进行赋值运算。 – 引用就是一个变量或对象的别名(引用的本质是一个对象);指针是一个段内存空间的地址(指向存储一个变量值的空间或一个对象的空间);
内存分析
▪ 栈:– 存放:局部变量
– 先进后出,自下而上存储
– 方法执行完毕,自动释放空间
▪ 堆:– 存放new出来的对象
– 需要垃圾回收器来回收:System.gc()
▪ 方法区: – 存放:类的信息(代码)、 static变量、字符串常量等.
构造方法
构造器(难点)
▪ 构造器定义: constructor 构造方法 – 一个在创建对象时被自动调用的特殊方法。 ▪ 构造器作用: – 为对象进行初始化(成员变量)工作。 ▪ 构造器是一种特殊的方法: – 构造器的方法名必须和类名一致! – 构造器虽然有返回值,但是不能定义返回类型(返回值的类型肯定是本类),不能在构 造器里调用return。 – 通过new关键字调用!!
– 如果我们没有定义构造器,则系统会自动定义一个无参的构造方法。如果已定义则 编译器不会添加无参数构造方法! – 不普通方法一样,构造方法也可以重载;
方法调用
▪ 形参和实参
– 定义方法的参数是形式参数
– 调用方法的参数是实在参数
– 调用方法时要求参数个数相同,类型兼容
▪ 参数传递
– 基本数据类型的参数传递
▪ 无法通过方法调用改变变量的值
– 引用数据类型的参数传递
▪ 可以通过方法调用改变变量的值