Java实战——简介

因为下学期要学习JavaEE因此打算将JavaSE的知识再从新学习一遍,打好基础的同时也但愿本身有新的收获和更深入的理解。
此次复习主要是参考廖雪峰老师的java教程,每学习完一章对其中一些要点进行总结和归纳。java

简介

Java最先是由SUN公司(已被Oracle收购)的詹姆斯·高斯林(高司令,人称Java之父)在上个世纪90年代初开发的一种编程语言,最初被命名为Oak,目标是针对小型家电设备的嵌入式应用,结果市场没啥反响。谁料到互联网的崛起,让Oak从新焕发了生机,因而SUN公司改造了Oak,在1995年以Java的名称正式发布,缘由是Oak已经被人注册了,所以SUN注册了Java这个商标。随着互联网的高速发展,Java逐渐成为最重要的网络编程语言。
Java介于编译型语言和解释型语言之间。编译型语言如C、C++,代码是直接编译成机器码执行,可是不一样的平台(x8六、ARM等)CPU的指令集不一样,所以,须要编译出每一种平台的对应机器码。解释型语言如Python、Ruby没有这个问题,能够由解释器直接加载源码而后运行,代价是运行效率过低。而Java是将代码编译成一种“字节码”,它相似于抽象的CPU指令,而后,针对不一样平台编写虚拟机,不一样平台的虚拟机负责加载字节码并执行,这样就实现了“一次编写,处处运行”的效果。固然,这是针对Java开发者而言。对于虚拟机,须要为每一个平台分别开发。为了保证不一样平台、不一样公司开发的虚拟机都能正确执行Java字节码,SUN公司制定了一系列的Java虚拟机规范。从实践的角度看,JVM的兼容性作得很是好,低版本的Java字节码彻底能够正常运行在高版本的JVM上。数据库

以前只知道java是一种能够跨平台运行的语言,可是并不知道其中的缘由,如今明白了java代码经过本地编译器编译造成“java字节码”,而“java字节码”能够在任何平台的虚拟机(JVM)执行,这样就实现了“一次编写,处处执行”。编程

随着Java的发展,SUN给Java又分出了三个不一样版本:网络

  • Java SE:Standard Edition (Java SE就是标准版,包含标准的JVM和标准库,JAVA平台的核心)
  • Java EE:Enterprise Edition (Java EE是企业版,它只是在Java SE的基础上加上了大量的API和库,以便方便开发Web应用、数据库、消息服务等,Java EE的应用使用的虚拟机和Java SE彻底相同。)
  • Java ME:Micro Edition (Java ME就和Java SE不一样,它是一个针对嵌入式设备的“瘦身版”,Java SE的标准库没法在Java ME上使用,Java ME的虚拟机也是“瘦身版”。)

名词解释

  • JDK:Java Development Kit
  • JRE:Java Runtime Environment
    简单地说,JRE就是运行Java字节码的虚拟机。可是,若是只有Java源码,要编译成Java字节码,就须要JDK,由于JDK除了包含JRE,还提供了编译器、调试器等开发工具。
    两者的关系编程语言

  • JSR规范:Java Specification Request
  • JCP组织:Java Community Process工具

为了保证Java语言的规范性,SUN公司搞了一个JSR规范,凡是想给Java平台加一个功能,好比说访问数据库的功能,你们要先建立一个JSR规范,定义好接口,这样,各个数据库厂商都按照规范写出Java驱动程序,开发者就不用担忧本身写的数据库代码在MySQL上能跑,却不能跑在PostgreSQL上。
因此JSR是一系列的规范,从JVM的内存模型到Web程序接口,所有都标准化了。而负责审核JSR的组织就是JCP。
一个JSR规范发布时,为了让你们有个参考,还要同时发布一个“参考实现”,以及一个“兼容性测试套件”:学习

  • RI:Reference Implementation
  • TCK:Technology Compatibility Kit

如何运行Java程序

Java源码本质上是一个文本文件,咱们须要先用javac把Hello.java编译成字节码文件Hello.class,而后,用java命令执行这个字节码文件:
┌───────┐
│ Hello.java │<─── source code
└───────┘
│ compile

┌───────┐
│ Hello.class │<─── byte code
└───────┘
│ execute

┌────────┐
│ Run on JVM │
└────────┘
所以,可执行文件javac是编译器,而可执行文件java就是虚拟机。开发工具

相关文章
相关标签/搜索