JAVA面向对象OOP→构造方法、this、访问修饰符、static、方法重载、JVM内存分配、GC垃圾回收、包、样例代码

构造方法(constructor):与类名同名,没有返回值
其初始化作用:一为属性分配内存空间、二为属性赋值
构造方法不能自己调用,只能通过new实例化对象调用
隐式构造方法:对象实例化时编译器会自动产生一个无参的构造方法,如果自己写了构造方法,系统就不再默认产生。
显示构造方法:初始化属性,带参是需要外部的参数确定初始化状态

this当前对象,当属性名和方法的参数同类型重名的时候优先使用属性名,为使参数名生效使用this.property表示当前属性

在这里插入图片描述
在这里插入图片描述

static 内存中只有一份,直接通过类名访问,属于类的,不属于某个对象。
通常用于共通的标准统一的场景。

方法重载overload
在同一个类中,如果有一组方法,他们的方法名相同,参数不同(个数或者是类型不同),返回值没有关系,这样一组方法就叫做方法重载。完成相似功能。
在这里插入图片描述

栈区: 基本数据类型,对象引用名
堆区: 真正的对象
Person p= new Person();
p对象引用名,在栈区
new Person() 真正的对象,在堆区
p.show()点是JAVA指针通过栈调用堆
NullPointerException 栈区的对象引用名没有指向堆区的某个对象
当给实例分配的内存没有引用指向时,虚拟机释放掉这块内存
在这里插入图片描述

finalize()即最后定下的方案,只会在对象内存回收前被调用一次,finalize()是Object类的方法,所有类都是Object的子类,内存被回收时自动执行,如果确定不再使用的对象可以引用指定为null(零值的等于零的)
System.gc()(garbage collection)GC管理的主要区域是Java堆,定时调用
垃圾回收器,没有引用的对象内存资源释放掉

在这里插入图片描述

package com.java.root;打包即文件目录
import java.io.*; 不在同一个包中的类,访问的时候需要导入导入其他包的类
编译 javac -d . *.java
运行 java com.java.Test
在这里插入图片描述

天地不仁,以万物为刍狗;圣人不仁,以百姓为刍狗。
天地之间,其犹橐籥乎?
虚而不屈,动而愈出。
多言数穷,不如守中。
————《道德经》第五章

猜你喜欢

转载自blog.csdn.net/xindashou/article/details/113361056