1.14

UML图:
1.类名
2.静态属性
3.动态方法

面向对象的方法分析(栈、堆、方法区)下图:

public class SxtStu{

    //属性fields
    int id;
    String sname;
    int age;

    Computer comp;

    //方法
    void study(){

        System.out.println("我在认真学习! 使用电脑:" + comp.brand);

    }

    void play(){

        System.out.println("我在玩游戏!王者农药!");

    }

    //构造方法。用于创建这个类的对象。无参的构造方法可由系统自动创建
    SxtStu(){
    }

    public static void main(String[] args){
        SxtStu stu = new SxtStu();
        stu.id = 1001;
        stu.sname = "小马哥";
        stu.age = 18;

        Computer c1 = new Computer();
        c1.brand = "戴尔";

        stu.comp = c1;

        stu.play();
        stu.study();
    }

}

class Computer{
    String brand;
}

构造器(构造方法)
1.构造方法名称和类名保持一致
2.通过new关键字调用
3.构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用return返回某个值
4.如果我们没有定义构造器,则编译器会自动定义一个无参的构造函数。如果已定义则编译器不会自动添加
构造方法的第一句总是super();

垃圾回收
1.发现无用的对象
2.回收无用对象占用的内存空间
相关算法:
1.引用计数法
优点:算法简单。缺点:“循环引用的无用对象”
2.引用可达法(根搜索算法)

分代垃圾回收机制:
年轻代:Eden、Survivor            年老代Tenured/Old            持久代
Eden  (Minor GC) ---->  Survivor1、Survivor2 (Major GC) ----> Tenured(Full GC)

this关键字
this的本质就是“创建好的对象的地址”!由于在构造方法调用前,对象已经创建。
因此,在构造方法中也可以使用this代表“当前对象”。
this不能用于static方法中。
创建一个对象分为如下四步:
1.分配对象空间,并将对象成员变量初始化为0或空
2.执行属性值的显式初始化
3.执行构造方法
4.返回对象的地址给相关的变量


static关键字:
静态成员变量,也称为类变量。类变量的生命周期和类相同,在整个应用程序执行期间都有效
static修饰的成员变量和方法,从属于类。普通的变量和方法从属于对象的。
非静态方法可以调用静态属性和静态方法,而静态方法不能调用非静态属性和非静态方法(内存图)
故this不能用于静态方法中

静态初始化块:
上溯到Object类,先执行Object的静态初始化块,再向下执行子类的静态初始化块,直到我们的类的静态初始化块为止。

参数传值机制:
JAVA中,方法中所有参数都是“值传递”
基本数据类型参数的传值:传递的是值的副本,基本不会影响原件
引用类型参数的传值:传递的是值的副本。但是引用类型指的是“对象的地址”。因此副本和原参数都指向同一个”地址“。

JAVA包机制:
包对于类,相当于文件夹对于文件的作用。
package使用的两个要点:
1.通常是类的第一句非注释语句。
2.包名:域名倒着写即可,再加上模块名,便于内部管理类。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值