Java是什么?
Java是一门语言,是用于计算机的,我们使用Java语言可以和计算机进行沟通 Java核心特点:跨平台,面向对象
Java由四方面组成:
- Java编程语言,即:语法
- Java文件格式,即各种文件夹、文件的后缀,Java文件格式,即各种文件夹、文件的后缀
- Java虚拟机(JVM),即处理 .class文件的解释器
- Java应用程序接口(Java API)
Java开发工具:
一般通过IDE (Eclipse、NetBeans、JBuilder、IDEA等编程开发工具) 编写、编译Java代码(在没有IDE的时代,都是用文本编辑器编写,使用javac编译),在这个过程中,会使用到JDK与第三方Jar包(Jar包即一组编译后的类打成的压缩包,可以使用解压工具解压成文件结构)。
Java的特性:
1.简单性:
Java语法中没有头文件、指针运算(甚至指针语法),结构、联合、操作符重载、虚基类等等,不仅如此,Java开发环境远远超出大多数其他编程语言的开发环境
2.面向对象特性
C语言是面向过程的语言,而Java是面向对象的,在Java的世界里,一切皆是对象 Java的面向对象特性和C++基本差不多,主要差别在于多重继承,在Java中,取而代之的是简单的接口概念,而与C++相比,Java提供了更丰富的运行时自省功能 举例: 面向过程: 把大象放进冰箱需要三步,1.打开冰箱,2.把大象放进冰箱,3.关上冰箱;研究的是这个过程 面向对象: 把大象放进冰箱的三步,都是针对于"冰箱"这个对象来说的,那就可以以冰箱为主体来研究这个事,面向对象的思想比较抽象
面向过程和面向对象比较: 面向过程是具体化的,流程化的,解决一个问题,你需要一步一步的分析,一步一步的实现。 面向对象是模型化的,你只需抽象出一个类,这是一个封闭的盒子,在这里你拥有数据也拥有解决问题的方法。需要什么功能直接使用就可以了,不必去一步一步的实现,至于这个功能是如何实现的,管我们什么事?我们会用就可以了。 面向对象的底层其实还是面向过程,把面向过程抽象成类,然后封装,方便我们使用的就是面向对象了。
| 优点 | 缺点 |
---|
面向过程 | 性能比面向对象好,因为类调用时需要实例化,开销比较大,比较消耗资源 | 不易维护、不易复用、不易扩展 | 面向对象 | 易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护 | 性能比面向过程差 |
总结 抽象会使复杂的问题更加简单化,面向对象更符合人类的思维,面向过程则是机器的思想
3.分布式(微服务)
Java有丰富的例程库,用于处理HTTP和FTP之类的TCP / IP协议,Java应用程序能够通过URL打开和访问网络上的对象,就像访问本地文件一样便捷
4.健壮性
Java与C++最大的不同在于:Java采用的指针模型可以消除重写内存和损坏数据的可能性,不仅如此,Java编译器能够检测许多在其他语言中仅在运行时才能够检测出的问题
5.安全性
使用Java可以构建防病毒、防篡改的系统 Java可以防范常见的各种攻击:
- 运行时堆栈溢出,蠕虫和病毒常见的攻击手段
- 破坏自己进程空间之外的内存
- 未经授权读写文件
6.可移植性
Java的基本数据类型大小以及相关运算都做了明确的说明,int类型在Java中永远都是32位,而在C / C++中,int可能是16位整数、32位整数、也可能是编译器提供伤指定的其他大小,而在Java中,数据类型具有固定的大小,这消除了代码移植时令人头疼的问题
7.跨平台
Java一次编译,到处运行,Java是可以跨平台的编程语言
8.多线程
Java是第一个支持并发程序设计的主流语言
9.动态性
Java和C / C++比,更具有动态性,它能够适应不断发展的环境,库中可以自由的添加新方法和实例变量,而对客户端没有任何影响
Jre介绍:
Jre是Java运行环境,Java的"一次编译,到处运行",这种机制需依靠Jvm实现,java程序编译得到的是中间字节码,中间字节码是不能再机器上直接运行的,必须要经过Jvm把中间字节码转换为机器语言 而Jre中主要包含的就是Jvm,Jre是面向的是java程序用户,是运行Java程序所须环境的集合,包含Jvm标准实现及Java核心类库 运行Java程序一般都要求用户的电脑安装Jre, 没有jre,java程序无法运行;而没有java程序,jre就没有用武之地
Jvm介绍
Java虚拟机,是整个Java实现跨平台最核心的部分,能够运行通过Java语言编写的应用程序 所有的Java程序会首先被编译为.class的类文件,Jvm虚拟机可以执行这种编译后的类文件,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释为目标代码 (不同操作系统不同) ,给本地系统执行,Jvm屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码,就可以在多种平台上不加修改地运行。 只有Jvm还不能事class文件执行,因为在解释class的时候Jvm需要调用解释所需要的类库lib,即Jre中的lib类库,单独的Jvm没有任何作用
Jvm Jdk jre的关系
JDK是Java开发工具,Jre是Java运行环境,Jvm是Java虚拟机
Java语言的优势
1.语法简单,学过计算机编程的开发者都能快速上手 2.在许多领域都有很强的竞争力,例:服务端编程、企业软件事务处理、分布式计算、Android移动终端应用开发等等 3.Java的生态齐全(围绕Java有很多的工具、库) 4.Java的开发成本相对于C / C++低 5.一次编译,到处运行
掌握Java语言可以干什么
掌握Java语言后可以进行如下:
- 可实现web开发
- Android开发
- 客户端开发
- 游戏开发
- 等其他生活中常见的软件
|