跳至主要內容

Java 简介

wangdx大约 9 分钟JAVA

Java 简介

  Java 是 SUN(全称为:Stanford University Network,1982 年成立)公司开发出来的一套编程语言,主设计者是 James Gosling。其最早来源于一个叫 Green 的嵌入式程序项目,目的是为家用电子消费产品开发的一个分布式代码系统,这样就可以通过网络对家用电器进行控制。 Janmesgoslin   在 GREEN 项目最开始的时候,SUN 的工程师原本打算使用 C++进行项目的开发,但是考虑的 C++语言开发的复杂性,所以基于 C++开发出了一套自己的独立平台"OAK"(被称为 Java 语言的前身,是一种用于网络精巧的安全语言)。SUN 公司曾以此投标一个交互式电视项目,但结果被 SGI 打败。于是当时的 Oak 几乎无家可归,恰巧这时 Marc Andressen 开发的 Mosaic 和 Netscape 项目启发了 Oak 项目组成员,SUN 的工程师们开发出了 HotJava 浏览器,触发 Java 进军 Internet。但是后来由于互联网低潮所带来的影响,SUN 公司并没有得到很好的发展,于是在 2009 年 04 月 20 日被甲骨文公司(Oracle)以 74 亿美元的交易价格收购。

Java 技术开发分支

  Java 是一门综合性的编程语言,从最初设计时就综合考虑了嵌入式系统以及企业平台的开发支持,所以在实际的 Java 开发过程中,其最主要有三种开发方向,分别为:JAVA SE(最早称为“J2SE”)、JAVA EE(最早称为“J2EE”)、JAVA ME(最早成为“J2ME”)

  • Java 标准开发(Java Platform,Standard Edition、JavaSE ):包含构成 Java 语言核心的类。比如:数据库连接、接口定义、输入/输出、网络编程,当用户安装了 JDK(Java 开发工具包)之后就自动支持此类开发支持;
  • Java 嵌入式开发(Java Platform, Micro Edition、JAVA ME):包含 JAVA SE 中一部分类,用于消费类电子产品的软件开发。比如:呼机、智能卡、手机、PDA、机顶盒,现在已经被 Android 开发所代替;
  • Java 企业开发(Java Platform, Enterprise Edition、JAVA EE):包含 JAVA SE 中的所有类,并且还包含用于开发企业级应用的类。比如: EJB、Servlet、JSP、XML、事务控制,也是现在大型系统和互联网项目开发的主要平台。

Java 特点

  • 简洁有效 Java 语言是一种相当简洁的“面向对象”程序设计语言,Java 语言省略了 C++语言中所有的难以理解、容易混淆的特性,例如头文件、指针、结构、单元、运算符重载、虚拟基础类等。它更加严谨、简洁。所以足够简单;
  • 可移植性 Java 语言最大的特点在于“一次编写、处处运行”,Java 语言的执行基于 VM (Java Virtual Machine、Java 虚拟机)运行,在其源代码编译之后将形成字节码文件,而后不同的操作系统匹配的 JVM 就可以直接利用 JVM 的“指令集”解释程序运行,这样降低了程序开发的复杂度,也提高了开发效率;
  • 面向对象 “面向对象”是软件工程学的一次革命,大大提升了人类的软件开发能力,是一个使大的进步,是软件发展的一个重大的里程碑。Java 是一门面向对象的编程语言,并且有着更加良好的程序结构定义;
  • 垃圾回收 垃圾指的是无用的内存回收,Java 提供有垃圾回收机制(Garbage Collection、GC),利用 GC 机制使得开发者在编写程序时只需要考虑自身程序的合理性,而不用去关注 GC 问题,极大的简化了开发难度,而后在 Java11 版本中又引入了著名的 ZGC 技术,使得垃圾回收的速度进一步提升。
  • 引用传递 避免了复杂的指针问题,而使用更加简单的引用来代替指针。指针虽然是一种高效的内存处理模式,但是其需要较强的逻辑分析,而 Java 在设计的时候充分的考虑到了这一点,所以开发者直接利用引用就可以简化指针的处理,而引用也是在所有初学过程之中最为难以理解的部分;
  • 适合分布式计算 Java 设计的初衷是为了更好的解决网络通讯问题..所以 Java 语言非常适合于分布式计算程序的开发,在 Java 中不仅提供供有简洁的 Socket 并发支持,同时也适用于公共网关接口(Common Gateway Interface、CGI)程序的开发,同时在 Java 中提供有 NIO、AIO 的支持,使得网络通讯性能得到了强大的改善;
  • 健壮性
  • 多线程编程支持 线程是一种轻量级进程,是现代程序设计中必不可少的一种特性,多线程处理能力使得程序能够具有更好的交互性、实时性。Java 在多线程处理方面性能超群,同时随着 Java 语言的不断完善,也提供有 JUC 的多线程开发框架方便开发者实现多线程的负责开发;
  • 较高的安全性 Jaye 程序的执行依赖于 JVM 上解释节码程序文件,而 JVM 拥有较高的安全性,同时随着版本的不断更新,面对于最新的安全隐患也可以及时进行修补。
  • 函数式编程 除了支持面向对象编程技术之外,在 Jaxa 中也有着良好的函数式编程支持(Lambda 表达式支持),利用函数式编程可以更加简洁的实现程序代码编写。
  • 模块化支持 Java9 版本开始提供的最重要功能,毫无疑问就是模转化(Module),代码名字叫做 Jigsaw(拉锯),可以将庞大冗余的 Java 锯成一个个的 Module,方便开发和部署;

Java 虚拟机

基于虚拟机的软件开发模型

  现代的编程语言实际已经不仅仅是一个基本程序功能,更多考虑可移植设计,通用性设计,这个移植概念最早提出就是 Java 语言。代表一种新的开发模式。传统软件开发都需要依赖大量平台支持(操作系统就是一个平台),利用已有平台来进行硬件设备的操作,而可移植不直接使用平台,而是在平台上植入虚拟机(virtual Machine),所有的程序开发面向虚拟机编程,这样就解决平台依赖问题。

jvm
jvm

基于虚拟机的软件开发模型

  计算机高级语言类型主要有编译型和解释型两种,虽然 Java 语言是基于虚拟机技术的编程开发,但是其依然遵循着高级语言的设计要求,所以在 Java 语言程序设计中就必须对源程序进行编译处理和解释执行两个步骤才可以正确运行程序

JVM 执行原理

  Java 语言在执行的时候必须对源代码进行编译,而编译后将产生一种字节码文件("*.class”文件),这是一种“中间”文件类型,需要由特定的系统环境所执行,而这个系统环境就是 Java 虚拟机(Java Virtual Machine、JVM)。在 JVM 中定义了一整套“指令集”,并且不同操作系统版本的 JVM 所拥有的“指令集”是相同的,这样程序员只需要针对于 JVM 的指令集进行开发,而由 JVM 去匹配不同的操作系统,就解决了程序的可移植性问题

class
class

JDK

登录 Oracle 官方站点

  JDK 是 Oracle 提供给开发者的一套 Java 开发工具包,开发者可以利用 JDK 进行源代码的编译,也可以进行字节码的解释执行,开发者可以直接通过 Oracle 的官方站点(http://www.oracle.com)进行JDK工具获取。进入到官方站点之后可以直接在页面顶部的搜索栏中搜索要下载的资源,本次输入的搜索关键字为“java”

获取 Oracle-JDK 的下载路径

  如果是一位初学者,直接通过 Oracle 官方站点搜索并下载 JDK 可能有一定的难度,所以笔者建议可以通过搜索引擎的形式(例如:百度)进行 JDK 的下载搜索。在搜索栏中输入“jdk13oracle”的关键字就可以找到快捷链接

JDK

  根据搜索结果打开页面之后可以得到如图 1-11 所示的显示界面,由于本书编写时的最新 JDK 版本为 13,所以会在下载链接的顶部给出“Java SE 13.x.x”的相关信息,选择”Download”就可以进入到相应的下载页面注意:平均每半年就会发布一个 JDK 的更新版本,下载时不要局限于具体版本,版本号大于本次的 JDK 都可以使用。

JDK 的重要版本

  • [1995.05.23]JDK 1.0 的开发包发布,同时来讲在 1996 年的时候 JDK 正式提供下载标志 Java 的诞生;
  • [2014 年]Java 提供了 JDK 1.8 版本,并且支持有 Lambda 表达式,可以使用函数式编程;
  • [2017 年]Java 提供了 JDK 9 版本,进一步提升了 JDK 1.8 的稳定性
  • [2018 年]Java 提供了 JDK 11 版本,提供了最新的 ZGC 技术,为“LTS”长期维护版;
  • [2019 年]Java 提供了 JDK 13 版本,增加了 yield 关键字与多行字符串定义支持;

JDK 安装

  用户下载完成 JDK 之后将获得一个 Windows 的程序安装包,如果要安装只需要双击运 行即可。本次为了方便会将 JDK 的工具安装在“D:/Java”目录中

JDK 命令

  当 JDK 安装完成后可以直接打开 JDK 的安装目录的 bin 子目录(D:Javaidk-13.0.1\bin)在此目录中提供有两个核心命令:javac.exe (源代码编译)、java.exe(字节码解释执行)

设置 Windows 属性

  在 JDK 安装完成后提供的“javac.exe”与“java.exe”这两个命令并不属于 windows 本身,如果要想在命令行工具中直接使用,就必须在 windows 的系统环境之中进行可执行程序的路径配置,具体操作步骤为:[计算机 (此电脑)][属性][高级系统设置]

  进入到“高级系统设置”进行环境配置,操作步骤:[高级][环境变量]系统变量]>[编辑 Path 环境属性] >[添加 JDK 的目录(D: Java dk-13.0.1\bin)

上次编辑于: