Java学习笔记(五)

发布时间 2023-04-25 19:49:57作者: 南极星丶

一、面向对象程序设计思想

  • 找一个对象帮助我们做事情(万物皆为对象),用虚拟思想去模拟现实生活。

二、类和对象的概念

  • 是事物相关属性和行为的集合,可以看成是一类事物的模板,使用事物的属性特征来描述该类事物。
  • 是一类事物的具体体现,对象就是类的一个具体实例,对象具备该类事物的属性和行为。

三、类的声明

 

四、对象的使用

  • 创建对象

类名 对象名 = new 类名();

  • 然后对象调用属性

对象名.属性名

  • 最后对象调用方法

对象名.方法名();

五、什么是类?什么是对象?类与对象的关系是什么?

类是事物相关属性和行为的集合,可以看成是一类事物的模板,使用事物的属性特征来描述该类事物。

对象是一类事物的具体体现,对象就是类的一个具体实例,对象具备该类事物的属性和行为。

他们的关系:

(1)类是对一类事物的描述,是抽象的

(2)对象是一类事物的实例,是具体的

(3)类是对象的模板,对象是类的实体

六、面向对象的内存分析

首先,准备好代码:

 JVM运行时数据区中有栈、堆、方法区

 当执行程序时,首先执行main方法,会在栈中给main方法分配一个栈帧:

 

然后将Person.class文件加载到方法区:

 然后Person p1 = new Person(),会在main栈帧中开辟一个p1内存空间,在堆中开辟一个对象内存地址,存放类中的属性和方法,假设内存地址为0x11。则会把对象的内存地址赋值给p1,所以p1是引用对象,内存地址指向堆中的真正的对象,然后给age和name赋值,这里会先找到p1,然后很具p1指向的堆的内存地址,找到age和name属性,其中name是字符串类型,所以赋值时先在方法区中创建一个常量池,将字符串内容放到常量池中,然后从常量池中获取数据给name赋值:

 

下一步会执行调用show方法,则会在栈中给show方法分配一个栈帧:

 

然后执行完show方法,则会将show方法出栈,之后main方法也执行完毕,则main方法也会出栈,程序执行完毕。

 

(1)JVM执行Java程序的流程:

从.class字节码文件开始 ,当点击Test类中运行按钮时。字节码文件会生成,生成后由类加载工具类将其class文件加载到运行时数据区,然后经过运行时数据区。再经过执行引擎,Java程序才会返回运行结果。

(2)字节码文件在被加载到内存中的方法区后,那接下来就该去执行字节码文件了,程序得执行在代码层面来讲。必须要找到程序的执行入口(main()方法),所以会调用main()方法,所以接下来就得进行main()的压栈操作,其实就是将main()函数放到栈中。

(3)依据Student student = new Student();堆内存中的堆空间创建,引入具体的属性,返回给栈内存中的对象引用。

七、使用面向对象思想完成人洗衣服操作