什么是Java?
Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,而且摒弃了C++语言里的多继承和指针等概念,因此Java具有功能强大和简单易用的两个特征,Java语言具有静态面向对象编程语言的代表,极好的实现了面向对象的理论,程序员以优雅的方式思维进行复杂的编程
什么是静态语言?
静态语言是在编译期间进行数据类型检查的语言,动态语言是在执行的时候进行数据类型检查的语言。
Java语言特点:
Java语言具有简单性、健壮性、面向对象、安全性、跨平台性、可移植性、分布式、多线程与动态性等特点。
JVM、JRE和JDK的关系
JVM:Java虚拟机,因为java程序是运行在虚拟机上面的,不同的平台具有不同的虚拟机,所以java具有跨平台性
JRE:JRE包括JVM虚拟机和Java程序所需要的核心类库,比如java.lang
JDK:包含了JRE和开发工具
编译性语言和解释性语言的差异
编译性语言:直接将源代码编译成可执行的机器码(二进制)
解释性语言: 将源代码编译成中间代码(java是字节码),再由解释器(Java是JVM)对中间的代码进行解释运行.在运行的时候才将源程序翻译成机器码
什么是面向对象?
这个问题我已经被我的室友问过n次了,每次我都有不同的想法,但是每次我都以沉默告终,从第一次的完全摸不着头脑,变成今天所想的,就是将现实生活中的事务抽取成对象,然后对这个对象进行操作和编程,但是感觉说出来丢人就没开口,今天就做个系统的归纳,还是因为我太浮躁了遇到问题不喜欢深究。。。
面向对象(OOP)概述,OOD(面向对象的设计),OOA(面向对象的分析)
万物皆对象,就是将现实的事务抽象出来,把现实生活中的事务以及关系抽象成类,通过继承、实现、组合的方式把万物都容纳进来,实现了对现实生活中的抽象和数据建模。
看了概念,举个列子。。
就比如我今天我今天想去图书馆借一本书
面向过程:我自己去图书馆找,然后拿去给图书管理员申请借阅,然后拿着书跑回去
面向对象:我:”王天赐去帮我借一本斗破苍穹“
我不需要自己去干那么多事,什么找书,借书,拿书跑路,直接喊一声王天赐就行,换句话说如果我想借一本武动乾坤,我也不需要自己去找半天,而是喊一句”王天赐去帮我借一本武动乾坤“,
我所面向的对象只有王天赐,而不是去亲自做一些很多事情,这就是面向对象和面向过程的区别
总结:面向过程是一步步,具体化,流程化的(我亲自去弄)
面向对象是抽取出一个类,这是一个封闭的盒子,盒子里面干了什么我不知道,我只知道这个盒子能完成这个功能,我直接使用就行(王天赐去给我借一本书)
面向对象有啥优点呢?
优点:容易维护,容易复用(天天喊王天赐去借),易于扩展(王天赐去给我端洗脚水),由于面向对象具有封装、继承、多态的三大特性可以设计低耦合的系统,让系统更加灵活易于维护(书借错了,要换一本书,直接使唤王天赐,也不用自己去搞那么麻烦)
缺点呢?
太消耗资源了(自己去做,不要钱,喊王天赐去做一次给两块钱)。。