面向过程:例如张三打篮球(从头到尾描述,张三长什么样,多高,打篮球什么动作,篮球什么样,整体巴拉巴拉描述出来,就是面向过程)
面向对象:把所有万事万物分解成小的对象,小的模块,可以去复用的东西(如张三打篮球,还要搞个李四踢足球的程序。)1.先做出人的对象,在做出人的运动的动作,在做出运动的器械这三个对象。(解:实例化一个张三的对象,对象有一个打篮球的动作,器械是篮球。2.实例化一个李四的对象,对象有一个踢足球的动作,器械是足球。
面向对象能够更好的在抽象的层面来分析问题,在程序实现上跨越极大的赋予之前的代码(直接拿过来用)。
这些是面向过程编程很难实现的。
JAVA语言的特点
特点一:面向对象 两个基本概念:类 对象 三大特性:封装,继承,多态
特点二:健壮性,完整性:吸收c优点,去掉影响健壮性的部分(如指针,内存的申请与释放)
特点三:跨平台性jvm(jvm:虚拟机):一次编写,处处运行。
JAVA两种核心机制:
JAVA虚拟机,jvm 垃圾收集机制(Garbage Collection)GC
核心机制-垃圾回收:不再使用的内存空间回收--垃圾回收。
c,c++,由程序员回收,手动编写代码回收(优点:能够在内存不使用时快速回收,准确高效;缺点:容易失误出现BUG,例如忘记编写回收内存的代码?内存一直没回收)
java,垃圾回收是自动的,开了一个系统线程自动检测哪些内存不用了然后回收掉(优点:自动的;缺点:回收不及时)
一般的观点是,宁可回收不及时但是一定要回收,使用自动的垃圾回收更合适。