/***********
目录
一. java中的类, 方法和变量
二. Java命名空间及访问规则
三. 对象的构造方法
四. 对象的内存分析
五. This关键字的使用
六. 方法重载(OverLoad)
**********************************************************/
一. java中的类, 方法和变量
1. 对象是类的一个实例. 抽象数据类型称为类. 类是对象的模板.
2. 类的语法规范.
类的修饰符: public 公开; abstract 抽象;final 最终; 默认缺省方式 friendly
一组: public private protected
二组: static final transient
类名第一个字母要大写(规范)
成员变量的类型可以是java中的任意数据类型, 包括类, 接口, 数组
驼峰标识: nameSecond
全局变量默认初始化表:
注意: 成员变量没有初始化会自动初始化.
局部变量没有初始化则报错.
编译结果:
3.方法定义的规范
方法修饰符:
参数类型可以是简单数据类型, 也可以是引用数据类型(数组, 类或者接口)
参数传递的方式: 简单数据类型是值传递, 对象是引用传递.
4.简单数据类型的参数传递, 备注
说明区别:
System.out.print 输出后不自动换行
System.out.println 输出后换行
可以使用 System.out.println(); 来直接换行
5.引用传递
改变的是地址, 引用即是指针. 这里面传递的是int[] 的一个对象intArray, 所以该传递为引用传递.
运行结果如下:
总结, 值传递是对数据进行一个拷贝, 而引用传递是一个对象指针的传递.
6.重要部分(实例方法和类方法):
实例变量和类变量, 前面已经说明.
实例方法没有加static, 而类方法有加static.
类(静态)成员方法简称为类方法和静态方法.
成员实例方法(对象方法)简称为实例方法.
7.重要部分(构造方法):
(一)对象的生命周期
内存情况:
定义一个变量, 并没有分配内存, 只有赋初始值才会分配内存.
定义一个局部变量并赋上初值, 此时在栈区中有分配内存. 当这个函数的生命周期完成之后, 栈区的内容清除了.
3.垃圾回收
强制垃圾回收, 使用:
System.gc();
调用的是 finalization 方法, 可以重写. 相当于析构函数.
理解下面的代码:
在person 为空的时候, 表示没有引用了, 此时堆区中的属性没有被引用, 故可以被销毁.
如果有被引用, 即使使用了System.gc(); 对象也不会被销毁.
Finalize 可以用来做一些特殊的工作, 如如C++合作. 一般情况下, 不提倡使用.