zoukankan      html  css  js  c++  java
  • java基础之java简介(一)

    前言...

    Java最早是由SUN公司(已被Oracle收购)的詹姆斯·高斯林(高司令,人称Java之父)在上个世纪90年代初开发的一种编程语言,最初被命名为Oak,目标是针对小型家电设备的嵌入式应用,结果市场没啥反响。谁料到互联网的崛起,让Oak重新焕发了生机,于是SUN公司改造了Oak,在1995年以Java的名称正式发布,原因是Oak已经被人注册了,因此SUN注册了Java这个商标。随着互联网的高速发展,Java逐渐成为最重要的网络编程语言。

    Java介于编译型语言和解释型语言之间。编译型语言如C、C++,代码是直接编译成机器码执行,但是不同的平台(x86、ARM等)CPU的指令集不同,因此,需要编译出每一种平台的对应机器码。解释型语言如Python、Ruby没有这个问题,可以由解释器直接加载源码然后运行,代价是运行效率太低。而Java是将代码编译成一种“字节码”,它类似于抽象的CPU指令,然后,针对不同平台编写虚拟机,不同平台的虚拟机负责加载字节码并执行,这样就实现了“一次编写,到处运行”的效果。当然,这是针对Java开发者而言。对于虚拟机,需要为每个平台分别开发。为了保证不同平台、不同公司开发的虚拟机都能正确执行Java字节码,SUN公司制定了一系列的Java虚拟机规范。从实践的角度看,JVM的兼容性做得非常好,低版本的Java字节码完全可以正常运行在高版本的JVM上。

    随着Java的发展,SUN给Java又分出了三个不同版本:

    • Java SE:Standard Edition

    • Java EE:Enterprise Edition

    • Java ME:Micro Edition

    这三者之间有啥关系呢?

    ┌───────────────────────────┐
    │Java EE                    │
    │    ┌────────────────────┐ │
    │    │Java SE             │ │
    │    │    ┌─────────────┐ │ │
    │    │    │   Java ME   │ │ │
    │    │    └─────────────┘ │ │
    │    └────────────────────┘ │
    └───────────────────────────┘
    

    简单来说,Java SE就是标准版,包含标准的JVM和标准库,而Java EE是企业版,它只是在Java SE的基础上加上了大量的API和库,以便方便开发Web应用、数据库、消息服务等,Java EE的应用使用的虚拟机和Java SE完全相同。

    Java ME就和Java SE不同,它是一个针对嵌入式设备的“瘦身版”,Java SE的标准库无法在Java ME上使用,Java ME的虚拟机也是“瘦身版”。

    毫无疑问,Java SE是整个Java平台的核心,而Java EE是进一步学习Web应用所必须的。我们熟悉的Spring等框架都是Java EE开源生态系统的一部分。不幸的是,Java ME从来没有真正流行起来,反而是Android开发成为了移动平台的标准之一,因此,没有特殊需求,不建议学习Java ME。

    推荐的Java学习路线图如下:

    1. 首先要学习Java SE,掌握Java语言本身、Java核心开发技术以及Java标准库的使用;

    2. 如果继续学习Java EE,那么Spring框架、数据库开发、分布式架构就是需要学习的;

    3. 如果要学习大数据开发,那么Hadoop、Spark、Flink这些大数据平台就是需要学习的,他们都基于Java或Scala开发;

    4. 如果想要学习移动开发,那么就深入Android平台,掌握Android App开发。

    无论怎么选择,Java SE的核心技术是基础,这个教程的目的就是让你完全精通Java SE!

    Java版本

    从1995年发布1.0版本开始,到目前为止,最新的Java版本是Java 13:

    时间版本
    1995 1.0
    1998 1.2
    2000 1.3
    2002 1.4
    2004 1.5 / 5.0
    2005 1.6 / 6.0
    2011 1.7 / 7.0
    2014 1.8 / 8.0
    2017/9 1.9 / 9.0
    2018/3 10
    2018/9 11
    2019/3 12
    2019/9 13

    本教程使用的Java版本是最新版的Java 13

    名词解释

    初学者学Java,经常听到JDK、JRE这些名词,它们到底是啥?

    • JDK:Java Development Kit
    • JRE:Java Runtime Environment

    简单地说,JRE就是运行Java字节码的虚拟机。但是,如果只有Java源码,要编译成Java字节码,就需要JDK,因为JDK除了包含JRE,还提供了编译器、调试器等开发工具。

    二者关系如下:
      ┌─    ┌──────────────────────────────────┐
      │     │     Compiler, debugger, etc.     │
      │     └──────────────────────────────────┘
     JDK ┌─ ┌──────────────────────────────────┐
      │  │  │                                  │
      │ JRE │      JVM + Runtime Library       │
      │  │  │                                  │
      └─ └─ └──────────────────────────────────┘
            ┌───────┐┌───────┐┌───────┐┌───────┐
            │Windows││ Linux ││ macOS ││others │
            └───────┘└───────┘└───────┘└───────┘
    

    要学习Java开发,当然需要安装JDK了。

    那JSR、JCP……又是啥?

    • 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开发的消息服务器,这个提议很好啊,但是光有提议还不行,得贴出真正能跑的代码,这就是RI。如果有其他人也想开发这样一个消息服务器,如何保证这些消息服务器对开发者来说接口、功能都是相同的?所以还得提供TCK。

    通常来说,RI只是一个“能跑”的正确的代码,它不追求速度,所以,如果真正要选择一个Java的消息服务器,一般是没人用RI的,大家都会选择一个有竞争力的商用或开源产品。

    参考:Java消息服务JMS的JSR:https://jcp.org/en/jsr/detail?id=914

    安装jdk

    搜索JDK 13,确保从Oracle的官网下载最新的稳定版JDK:

    设置环境变量

    安装完JDK后,需要设置一个JAVA_HOME的环境变量,它指向JDK的安装目录。在Windows下,它是安装目录,类似:

    D:sorfToolsjdk13install

     然后,把JAVA_HOMEbin目录附加到系统环境变量PATH上。在Windows下,它长这样:

    %JAVA_HOME%in

     把JAVA_HOMEbin目录添加到PATH中是为了在任意文件夹下都可以运行java。打开命令提示符窗口,输入命令java -version,如果一切正常,你会看到如下输出:

     如果你看到的是如下结果: 

     这是因为系统无法找到Java虚拟机的程序java.exe,需要检查JAVA_HOME和PATH的配置

    可以参考如何设置或更改PATH系统变量

    JDK文件夹的相关信息

    细心的童鞋还可以在JAVA_HOMEbin目录下找到很多可执行文件:

    • java:这个可执行程序其实就是JVM,运行Java程序,就是启动JVM,然后让JVM执行指定的编译后的代码;
    • javac:这是Java的编译器,它用于把Java源码文件(以.java后缀结尾)编译为Java字节码文件(以.class后缀结尾);
    • jar:用于把一组.class文件打包成一个.jar文件,便于发布;
    • javadoc:用于从Java源码中自动提取注释并生成文档;
    • jdb:Java调试器,用于开发阶段的运行调试。

    编码工具 IDE的使用

    IDE是集成开发环境:Integrated Development Environment的缩写。

    使用IDE的好处在于按,可以把编写代码、组织项目、编译、运行、调试等放到一个环境中运行,能极大地提高开发效率。

    IDE提升开发效率主要靠以下几点:

    • 编辑器的自动提示,可以大大提高敲代码的速度;

    • 代码修改后可以自动重新编译,并直接运行;

    • 可以方便地进行断点调试。

    目前,流行的用于Java开发的IDE有:

    Eclipse

    Eclipse是由IBM开发并捐赠给开源社区的一个IDE,也是目前应用最广泛的IDE。Eclipse的特点是它本身是Java开发的,并且基于插件结构,即使是对Java开发的支持也是通过插件JDT实现的。

    安装Eclipse

    Eclipse的发行版提供了预打包的开发环境,包括Java、JavaEE、C++、PHP、Rust等。从这里下载:

    我们需要下载的版本是Eclipse IDE for Java Developers:

    设置Eclipse

    下载并安装完成后,我们启动Eclipse,对IDE环境做一个基本设置:

    选择菜单“Eclipse/Window”-“Preferences”,打开配置对话框:

    eclipse-pref

    我们需要调整以下设置项:

    General > Editors > Text Editors

    钩上“Show line numbers”,这样编辑器会显示行号;

    General > Workspace

    钩上“Refresh using native hooks or polling”,这样Eclipse会自动刷新文件夹的改动;

    对于“Text file encoding”,如果Default不是UTF-8,一定要改为“Other:UTF-8”,所有文本文件均使用UTF-8编码;

    对于“New text file line delimiter”,建议使用Unix,即换行符使用 而不是Windows的

    Java > Compiler

    将“Compiler compliance level”设置为13,本教程的所有代码均使用Java 13的语法,并且编译到Java 13的版本。

    去掉“Use default compliance settings”并钩上“Enable preview features for Java 13”,这样我们就可以使用Java 13的预览功能。

    Java > Installed JREs

    在Installed JREs中应该看到Java SE 13,如果还有其他的JRE,可以删除,以确保Java SE 13是默认的JRE。

    Eclipse IDE结构

    打开Eclipse后,整个IDE由若干个区域组成:

    eclipse-workspace

    • 中间可编辑的文本区(见1)是编辑器,用于编辑源码;
    • 分布在左右和下方的是视图:
      • Package Exploroer(见2)是Java项目的视图
      • Console(见3)是命令行输出视图
      • Outline(见4)是当前正在编辑的Java源码的结构视图
    • 视图可以任意组合,然后把一组视图定义成一个Perspective(见5),Eclipse预定义了Java、Debug等几个Perspective,用于快速切换。
    新建Java项目

    在Eclipse菜单选择“File”-“New”-“Java Project”,填入HelloWorld,JRE选择Java SE 13

    new-java-project

    暂时不要勾选“Create module-info.java file”,因为模块化机制我们后面才会讲到:

    new-java-project-2

    点击“Finish”就成功创建了一个名为HelloWorld的Java工程。

    新建Java文件并运行

    展开HelloWorld工程,选中源码目录src,点击右键,在弹出菜单中选择“New”-“Class”:

    new-java-class

    在弹出的对话框中,Name一栏填入Hello

    new-hello-class

    点击”Finish“,就自动在src目录下创建了一个名为Hello.java的源文件。我们双击打开这个源文件,填上代码:

    hello-java-source

    保存,然后选中文件Hello.java,点击右键,在弹出的菜单中选中“Run As...”-“Java Application”:

    run-as-java-application

    Console窗口中就可以看到运行结果:

    console

    如果没有在主界面中看到Console窗口,请选中菜单“Window”-“Show View”-“Console”,即可显示。

    IntelliJ Idea

    IntelliJ Idea是由JetBrains公司开发的一个功能强大的IDE,分为免费版和商用付费版。JetBrains公司的IDE平台也是基于IDE平台+语言插件的模式,支持Python开发环境、Ruby开发环境、PHP开发环境等,这些开发环境也分为免费版和付费版。

  • 相关阅读:
    Vuex ~ 初识
    Vue 2.0 生命周期-钩子函数理解
    vue利用watch侦听对象具体的属性 ~ 巧用计算属性computed做中间层
    Elements in iteration expect to have 'v-bind:key' directives.' 提示错误如何解决?
    微信小程序-如何自定义导航栏(navigationStyle)?
    微信小程序~触摸相关事件(拖拽操作、手势识别、多点触控)
    [Java] Collections
    [Java] Map / HashMap
    [Data Structure] 红黑树( Red-Black Tree )
    [Data Structure] 二叉搜索树(Binary Search Tree)
  • 原文地址:https://www.cnblogs.com/JonaLin/p/12121648.html
Copyright © 2011-2022 走看看