java知识点4(面向对象特点,及方法执行内存分析,变量分类)

本文介绍了面向对象编程的基本概念,包括面向过程与面向对象的区别、面向对象的三大特性、类与对象的关系及其定义,并探讨了方法执行时的内存分配及变量分类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第四章

一.面向对象

1.面向过程和面向对象的区别?

面向过程:关注点是实现的具体过程,因果分析【集成显卡的开发思路】。
优点:对于业务逻辑简单的程序来说,可以快速开发,前期投入成本较低。
缺点:难以解决复杂的业务逻辑程序,耦合度高,一旦一环错,整个系统就会受到影响,导致软件的扩展力差。另外,没有独立体的概念,所以无法达到组件复用。

面向对象:关注点是对象【独立体】能完成哪些功能,【独立显卡的开发思路】。
优点:耦合度低,扩展力强。能处理复杂的业务逻辑,组件复用性强。
缺点:前期投入成本高,需要进行独立体的抽取,大量的系统分析与设计。

——c语言纯面向过程,c++半面向对象,JAVA纯面向对象。

2.面向对象的三大特征?
继承,封装,多态

3.类和对象的概念?
3.1.什么是类?
类在现实世界中是不存在的,是一个模版,一个概念,是人大脑思考抽象的结果。
在现实生活中,对象A与对象B之间具有共同的特征,进行抽象总结出的一个模版,这个模版被称为类。

3.2.什么是对象?
在现实中实际存在的个体。应该翻译为“东西”。

3.3.类和对象之间的联系?
类–>【实例化】–>对象
对象–>【抽象】–>类
(类是描述对象的共同特征)

3.4实例:
MyClass myClass=new MyClass();
new的时候在堆中新建了一个对象。这个对象是MyClass的实例。其中myClass是该对象的引用。

4.类的定义
1.语法结构:
{修饰符列表}class 类名{
属性;
方法;

2.实例化对象:
Student s=new Student();
//通过一个类,可以实例化N个对象
//new是JAVA中一个运算符,作用是创建对象,在JVM中开辟新的内存空间。
//Student是一个引用数据类型
//s是一个变量名,在堆内存中存储
//new Student()是一个学生对象
//什么是对象?new运算符在堆内存中开辟的内存空间称为对象。
//什么是引用?引用是一个变量,只不过这个变量中保存了另一个java对象的内存地址。
//java中,程序员不能直接操作堆内存,java没有指针,不像c语言。只能通过引用去访问堆内存中对象内部的实例变量
s.name=“雷霆沙赞”
//访问实例变量的语法格式:
//读取数据:引用.变量名
//修改数据:引用.变量名=值

二.方法执行内存分析

在这里插入图片描述
1.JVM(java虚拟机)主要三大内存空间:
方法区内存:在类加载的时候,class字节码代码片段都被加载到该内存空间,在类加载的时候代码片段会被载入。
栈内存:方法代码片段执行的时候,会给该方法分配内存空间,在栈内存中压栈。
堆内存:new的对象在堆内存中存储。

2.方法代码片段存在哪?方法执行过程的内存在哪分配?
*方法代码片段属于.class字节码文件的一部分,存在方法区
*方法代码片段在方法区只有一份,但可以重复调用,每一次调用,需要给它分配独立的活动场所,在栈内存中分配(先进后出)

3.方法调用时的内存变化:
所需内存空间在栈内存分配,称为压栈,结束后,释放该方法所属的内存空间释放,弹栈。

4.变化最频繁的是栈内存,最先有数据的是方法区内存,垃圾回收器主要针对的是堆内存。

5.垃圾回收器【自动垃圾回收机制】什么时候发动?
*当堆内存中的java对象成为垃圾时(1.没有更多的引用指向它。2.这个对象无法被访问,因为访问对象只能通过引用的方式访问),会被回收。

三.变量分类

1.分类:
局部变量【方法体中声明】没有默认值。
成员变量【在类体当中,方法体之外声明】
成员变量又分为
实例变量【修饰符中没有static】
静态变量【修饰符中有static】

2.存储地点:
局部变量
如果是基本类型,会把值直接存储在栈;
如果是引用类型,存储在栈中。比如String s = new String(“william”);会把其对象存储在堆,而把这个对象的引用(指针)存储在栈。

成员变量
实例变量在堆内存的java对象内部存储(只有实例化对象后,堆中才有实例变量,是与局部变量引用类型的对象)
静态变量存储在方法体内存中(后面将会讲解)

3.两者使用范围:
局部变量只能在声明它的方法中使用
成员变量能在当前类的任何方法使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值