第一章 JAVA语言概述

1.1 JAVA概述

Java语言是詹姆士·高斯林发明的,Java的名字来自于一种咖啡的品种名称,所以Java语言的Logo是一杯热气腾腾的咖啡。詹姆斯·高斯林等人于1990年初开发Java语言的雏形,最初被命名为Oak。随着1990年代互联网的发展,Sun公司看见Oak在互联网上应用的前景,于是改进了Oak,并于1995年5月以Java的名称正式发布。

第一章 JAVA语言概述_第1张图片

1.1.1 JAVA语言发展历史

  • 1991年, Green项目,开发语言最初命名为Oak (橡树)
  • 1994年,开发组意识到Oak 非常适合于互联网
  • 1995年,Java语言诞生
  • 1996年,发布JDK 1.0,约8.3万个网页应用Java技术来制作
  • 1997年,发布JDK 1.1,JavaOne会议召开,创当时全球同类会议规模之最
  • 1998年,发布JDK 1.2,同年发布企业平台J2EE
  • 1999年,SUN公司发布Java的三个版本:标准版(J2SE)、企业版(J2EE)和微型版(J2ME)
  • 2001年,J2EE 1.3发布
  • 2002年,J2SE 1.4发布,自此Java的计算能力有了大幅提升
  • 2004年,J2SE 1.5的发布成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2 SE 1.5更名为Java SE 5.0
  • 2005年,J2SE -> JavaSE,J2EE -> JavaEE,J2ME -> JavaME
  • 2009年,Oracle公司收购SUN,交易价格74亿美元
  • 2011年,发布JDK 7.0
  • 2014年,发布JDK 8.0,是继JDK 5.0以来变化最大的版本(市场主流版本)
  • 2017年,发布JDK 9.0,最大限度实现模块化
  • 2018年3月,发布JDK 10.0
  • 2018年9月,发布JDK 11.0
  • 2019年3月,Oracle公司发布Java SE12
  • 2019年9月,Oracle公司发布Java SE13

1.1.2 JAVA技术体系平台

针对不同的开发市场,SUN公司将Java划分为三个技术平台,它们分别是JavaSE、JavaEE和JavaME。

  1. Java SE(Java Standard Edition)标准版

Java SE(Java Platform Standard Edition)标准版,是为开发普通桌面和商务应用程序提供的解决方案。JavaSE是三个平台中最核心的部分,JavaEE和JavaME都是从JavaSE的基础上发展而来的,JavaSE平台中包括了Java最核心的类库,如集合、IO、数据库连接以及网络编程等。

  1. Java EE(Java Enterprise Edition)企业版

Java EE(Java Platform Enterprise Edition) 企业版,是为开发企业级应用程序提供的解决方案。Java EE可以被看作一个技术平台,该平台用于开发、装配以及部署企业级应用程序,主要包括Servlet、JSP、JavaBean、JDBC、EJB、Web Service等技术。

  1. Java ME(Java Micro Edition)小型版

Java ME(Java Platform Micro Edition) 小型版,是为开发电子消费产品和嵌入式设备提供的解决方案。JavaME主要用于小型数字电子设备上软件程序的开发。例如,为家用电器增加智能化控制和联网功能,为手机增加新的游戏和通讯录管理功能。此外,Java ME还提供了HTTP等高级Internet协议,使移动电话能以Client/Server方式直接访问Internet的全部信息,提供高效率的无线交流。

1.1.3 JAVA在各领域的应用

从Java的应用领域来分,Java语言的应用方向主要表现在以下几个方面:
• 企业级应用:主要指复杂的大企业的软件系统、各种类型的网站。Java的安全机制以及它的跨平台的优势,使它在分布式系统领域开发中有广泛应用。应用领域包括金融、电信、交通、电子商务等。
• Android平台应用:Android应用程序使用Java语言编写。Android开发水平的高低很大程度上取决于Java语言核心能力是否扎实。
• 大数据平台开发:各类框架有Hadoop,spark,storm,flink等,就这类技术生态圈来讲,还有各种中间件如flume,kafka,sqoop等等 ,这些框架以及工具大多数是用Java编写而成,但提供诸如Java,scala,Python,R等各种语言API供编程。
• 移动领域应用:主要表现在消费和嵌入式领域,是指在各种小型设备上的应用,包括手机、PDA、机顶盒、汽车通信设备等。

1.1.4 JAVA语言主要特征

  1. 简单性

Java语言是一种相对简单的编程语言,它通过提供最基本的方法完成指定的任务。程序设计者只需理解一些基本的概念,就可以用它编写出适用于各种情况的应用程序。Java丢弃了C++中很难理解的运算符重载、多重继承等概念;特别是Java语言使用引用代替指针,并提供了自动的垃圾回收机制,使程序员不必担忧内存管理。

  1. 面向对象

Java语言提供了类、接口和继承等原语,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯粹的面向对象程序设计语言。

  1. 安全性

Java安全可靠,例如,Java的存储分配模型可以防御恶意代码攻击。此外,Java没有指针,因此外界不能通过伪造指针指向存储器。更重要的是,Java编译器在编译程序时,不显示存储安排决策,程序员不能通过查看声明猜测出类的实际存储安排。Java程序中的存储是在运行时由Java解释程序决定。

  1. 跨平台性

Java通过JVM(虚拟机)以及字节码实现跨平台。Java程序由javac编译器编译成为字节码文件(.class)文件, JVM中的Java解释器会将.class文件翻译成所在平台上的机器码文件,执行对应的机器码文件就可以了。Java程序只要“一次编写,就可到处运行”。

  1. 支持多线程

Java语言支持多线程。所谓多线程可以简单理解为程序中多个任务可以并发执行,多线程可以在很大程度上提高程序的执行效率。

  1. 分布性

Java是分布式语言,既支持各种层次的网络连接,又可以通过Socket类支持可靠的流(stream)网络连接。用户可以产生分布式的客户机和服务器,在这个过程中,网络变成软件应用的分布式运载工具。

1.2 JAVA程序运行机制

1.2.1 JAVA语言的特点

1.面向对象

两个基本概念:类、对象

三大特性:封装、继承、多态

2.健壮性

吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制

3.跨平台性

跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Writeonce , Run Anywhere”
原理:只要在需要运行 java 应用程序的操作系统上,先安装一个Java虚拟机 (JVM JavaVirtual Machine) 即可。由JVM来负责Java程序在该系统中的运行。

第一章 JAVA语言概述_第2张图片

1.2.2 JAVA两种核心机制

  1. JAVA虚拟机(Java Virtal Machine)
  • JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器。
  • 对于不同的平台,有不同的虚拟机。
  • 只有某平台提供了对应的java虚拟机,java程序才可在此平台运行
  • Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”

第一章 JAVA语言概述_第3张图片

  1. 垃圾收集机制(Garbage Collection)
  • 不再使用的内存空间应回收—— 垃圾回收。
    • 在C/C++等语言中,由程序员负责回收无用内存。
    • Java 语言消除了程序员回收无用内存空间的责任:它提供一种系统级线程跟踪存储空间的分配情况。并在JVM空闲时,检查并释放那些可被释放的存储空间。
  • 垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预。
  • Java程序还会出现内存泄漏和内存溢出问题吗?Yes!

1.3 JDK的使用

1.3.1 什么是JDK,JRE

JDK(Java Development Kit Java开发工具包)。JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。 其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等。

JRE(Java Runtime Environment Java运行环境) 包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

第一章 JAVA语言概述_第4张图片

1.3.2 下载JDK

官方网址:

  • www.oracle.com

从Oracle官网下载安装文件“jdk-8u212-windows-x64.exe”

  • java.sun.com

1.3.3 安装JDK

  • 傻瓜式安装,下一步即可。
  • 建议:安装路径不要有中文或者空格等特殊符号。
  • 如果操作系统是64位的,软件尽量选择支持64位的(除非软件本身不区分)。
  • 当提示安装 JRE 时,正常在JDK安装时已经装过了,但是为了后续使用Eclipse等开发,可以继续安装。
  • 工具不报错,建议也根据提示安装JRE。

安装流程:

  1. 开始安装JDK

从Oracle官网下载安装文件“jdk-8u201-windows-x64.exe”,双击文件,进入JDK 8安装界面

第一章 JAVA语言概述_第5张图片

  1. 自定义安装功能和路径

在步骤1图中,单击【下一步】按钮进入JDK自定义安装界面,如图。

第一章 JAVA语言概述_第6张图片

在本步骤图中,左侧有三个功能模块,每个模板具有特定功能如下:

  • 开发工具:开发工具是JDK中的核心功能模块,包含一系列可执行程序,如javac.exe、java.exe等,还包含了一个专用的JRE环境。
  • 源代码:是Java提供公共API类的源代码。
  • 公共JRE:是Java程序的运行环境。由于开发工具中已经包含了一个JRE,因此没有必要再安装公共的JRE环境,此项可以不作选择。

开发人员可以根据自己的需求选择所要安装的模块,本教材选择“开发工具”模块。另外,在图中所示的界面右侧有一个【更改】按钮,单击该按钮进入更改JDK安装目录的界面,如图。

第一章 JAVA语言概述_第7张图片

  1. 完成JDK安装

在步骤2中选择安装路径之后,单击【下一步】按钮开始安装JDK。安装完毕后会进入安装完成界面,如右图。

第一章 JAVA语言概述_第8张图片

JDK安装完毕后,会在磁盘上生成一个目录,该目录被称为JDK安装目录,如图。

第一章 JAVA语言概述_第9张图片

  1. bin目录:该目录用于存放一些可执行程序,如javac.exe(Java编译器)、java.exe(Java运行工具)、jar.exe(打包工具)和javadoc.exe(文档生成工具)等。其中最重要的就是javac.exe和java.exe。
  • javac.exe是Java编译器,它可以将编写好的Java文件编译成Java字节码文件(可执行的Java程序)。Java源文件的扩展名为.java,如HelloWorld.java。编译后生成对应的Java字节码文件,字节码文件的扩展名为.class,如HelloWorld.class。
  • java.exe是Java运行工具,它会启动一个Java虚拟机(JVM)进程,Java虚拟机相当于一个虚拟的操作系统,专门负责运行由Java编译器生成的字节码文件(.class文件)。
  1. db目录:db目录是一个小型的数据库。从JDK 6开始,Java中引入了一个新的成员JavaDB,这是一个纯 Java 实现、开源的数据库管理系统。这个数据库不仅轻便,而且支持JDBC 4所有的规范,在学习JDBC时,不需要再额外地安装一个数据库软件,选择直接使用JavaDB即可。
  2. jre目录:jre是Java Runtime Environment的缩写,意为Java程序运行时环境。该目录是Java运行时环境的根目录,它包含Java虚拟机、运行时的类包、Java应用启动器以及一个bin目录,但不包含开发环境中的开发工具。
  3. include目录:由于JDK是使用C和C++开发的,因此在启动时需要引入一些C语言的头文件,该目录就是用于存放这些头文件的。
  4. lib目录:lib是library的缩写,意为Java类库或库文件,是开发工具使用的归档包文件。
  5. src.zip文件与javafx-src.zip文件:这两个文件中放置的是JDK核心类的源代码和JavaFX源代码,通过这两个文件可以查看Java基础类的源代码。

1.3.4 配置环境变量

根据windows系统在查找可执行程序的原理,可以将java工具所在路径定义到
path 环境变量中,让系统帮我们去找运行执行的程序。

配置方法:

  • 我的电脑–属性–高级系统设置–环境变量
  • 编辑 path 环境变量,在变量值开始处加上java工具所在目录,后面用 “ ; ”和其他值分隔
  • 开即可。
  • 打开DOS命令行,任意目录下敲入javac。如果出现javac 的参数信息,配置成功。

第一章 JAVA语言概述_第10张图片

path路径中输入:

%JAVA_HOME%\bin;

1.3.5 验证是否安装成功

第一章 JAVA语言概述_第11张图片

1.4 第一个JAVA程序

1.4.1 编写程序

class HelloWorld {
    public static void main(String[] args) {
        System.out.println("hello world");
    }
}
  • class是一个关键字,用于定义一个类。在Java中,一个类就相当于一个程序,所有的代码都需要在类中书写。
  • HelloWorld是类的名称,简称类名。class关键字与类名之间需要用空格、制表符、换行符等任意的空白字符进行分隔。类名之后要写一对大括号,它定义了当前这个类的作用域。
  • 第2~4行代码定义了一个main()方法,该方法是Java程序的执行入口,程序将从main()方法开始执行类中的代码。
  • 第3行代码在main()方法中编写了一条执行语句“System.out.println(“hello world”);”,它的作用是打印一段文本信息并输出到屏幕,执行完这条语句,命令行窗口会输出“hello world”。

在编写程序时,程序中出现的空格、括号、分号等符号必须采用英文半角格式,否则程序会出错。

1.4.2 运行程序

单击【开始】→【所有程序】→【附件】→【运行】(或者使用快捷键Win+R),打开程序运行窗口,如图。

第一章 JAVA语言概述_第12张图片

在上图的运行窗口中输入“cmd”,单击【确定】按钮打开命令行窗口,如图:

第一章 JAVA语言概述_第13张图片

编译Java源文件,输入“javac HelloWorld.java”命令,编译HelloWorld.java源文件。

第一章 JAVA语言概述_第14张图片

运行Java程序,编译文件之后,javac命令执行完毕后,会在bin目录下生成HelloWorld.class字节码文件。在命令行窗口输入“java HelloWorld”命令,运行编译好的字节码文件,运行结果如图。

第一章 JAVA语言概述_第15张图片

在Java程序编写、编译以及运行的过程。第一,在使用javac命令进行编译时,需要输入完整的文件名。第二,在使用java命令运行程序时,需要的是类名,而非完整的文件名。

在使用javac命令编译HelloWorld.java程序时,可能会出现“找不到文件”的错误。
原因:
可能是文件的扩展名被隐藏了,虽然文本文件被重命名为“HelloWorld.java”,但实际上该文件的真实文件名“HelloWorld.java.txt”,文件类型并没有得到修改。
解决方法:
让文件显示扩展名,文件显示出扩展名.txt后,将其重命名为HelloWorld.java即可。

1.5 编辑器

1.5.1 Notepad++

1.5.2 eclipse

1.5.3 IDEA

IDEA(全称IntelliJ IDEA)是用于Java程序开发的集成环境(也可用于其他语言),它在业界被公认是最好的Java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司开发的产品,开发人员是以严谨著称的东欧程序员为主。

  1. 安装IDEA开发工具

你可能感兴趣的:(JAVA程序设计,java,jvm,开发语言)