java学习的知识点整理4
第四章
一.面向对象
1.面向过程和面向对象的区别?
面向过程:关注点是实现的具体过程,因果分析【集成显卡的开发思路】。
优点:对于业务逻辑简单的程序来说,可以快速开发,前期投入成本较低。
缺点:难以解决复杂的业务逻辑程序,耦合度高,一旦一环错,整个系统就会受到影响,导致软件的扩展力差。另外,没有独立体的概念,所以无法达到组件复用。
面向对象:关注点是对象【独立体】能完成哪些功能,【独立显卡的开发思路】。
优点:耦合度低,扩展力强。能处理复杂的业务逻辑,组件复用性强。
缺点:前期投入成本高,需要进行独立体的抽取,大量的系统分析与设计。
——c语言纯面向过程,c++半面向对象,JAVA纯面向对象。
2.面向对象的三大特征?
继承,封装,多态
3.类和对象的概念?
3.1.什么是类?
类在现实世界中是不存在的,是一个模版,一个概念,是人大脑思考抽象的结果。
在现实生活中,对象A与对象B之间具有共同的特征,进行抽象总结出的一个模版,这个模版被称为类。
3.2.什么是对象?
在现实中实际存在的个体。
3.3.类和对象之间的联系?
类–>【实例化】–>对象
对象–>【抽象】–>类
(类是描述对象的共同特征)
4.类的定义
1.语法结构:
{修饰符列表}class 类名{
属性;
方法;
}
public class Student{
int a;//属性【描述的是对象的状态信息】,
string name;//在类体当中,方法体之外定义的变量被称为“成员变量”
}
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.方法的代码片段以及整个代码片段都被存储在方法区内存中,在类加载的时候这段代码片段会被载入。
3.方法调用时,所需内存空间在栈内存分配,称为压栈,结束后,释放该方法所属的内存空间释放,弹栈。
4.【局部变量在栈内存中存储,成员变量中的实例变量在堆内存的java对象内部存储(只有实例化对象后,堆中才有实例变量)】
**5.变量分类:
*局部变量【方法体中声明】
*成员变量【在类体当中,方法体之外声明】
实例变量【修饰符中没有static】
静态变量【修饰符中有static】
6.静态变量存储在方法体内存中(后面将会讲解)
7.变化最频繁的是栈内存,最先有数据的是方法区内存,垃圾回收器主要针对的是堆内存。
8.垃圾回收器【自动垃圾回收机制】什么时候发动?
*当堆内存中的java对象成为垃圾时(1.没有更多的引用指向它。2.这个对象无法被访问,因为访问对象只能通过引用的方式访问),会被回收。