Java学习笔记01 - 走进Java

一、初识Java

1、什么是Java

Java是一门面向对象编程语言。它不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言功能强大并且简单易用。Java语言作为静态面向对象编程语言代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性面向对象分布式健壮性安全性平台独立可移植性多线程动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

2、Java的由来

Java由时任Sun公司的James Gosling等人于20世纪90年代初开发,最初被命名为Oak,随着互联网的兴起,Sun公司看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,于1995年5月23日以Java的名称正式发布了。后逐渐成为业界最为重要的编程语言之一。

3、Java的发展史

时间 事件
1991年1月 Sun公司成立了Green项目小组,专攻智能家电的嵌入式控制系统
1991年2月 Green项目小组放弃C++,开发新语言,命名为“Oak”
1991年6月 James Gosling开发了Oak的解释器。
1992年1月 Green项目小组完成了Green操作系统、Oak语言、类库等开发
1994年7月 第一个Java语言的Web浏览器 WebRunner(后来改名为HotJava),Oak更名为Java
1995年5月23日 Java语言正式发布
1996年1月 Sun公司发布了Java的第一个开发工具包:JDK-1.0
1996年4月 10个最主要的操作系统供应商申明将在其产品中嵌入Java技术
1996年9月 约8.3万个网页应用了Java技术来制作
1997年2月18日 JDK1.1发布
1997年4月2日 JavaOne会议召开,参与者逾一万人,创当时全球同类会议纪录
1998年12月8日 Java 2企业平台J2EE发布
1999年6月 SUN公司发布Java三个版本:标准版(J2SE)、企业版(J2EE)和微型版(J2ME)
2000年5月8日 JDK1.3发布
2000年5月29日 JDK1.4发布
2001年9月24日 J2EE1.3发布
2002年2月26日 J2SE1.4发布,此后Java的计算能力有了大幅提升
2004年9月30日 J2SE1.5发布,成为Java语言发展史上的又一里程碑。 为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0
2005年6月 JavaOne大会召开,SUN公司发布Java SE6。此时,Java的各种版本已经更名,以取消其中的数字“2”;J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME
2009年04月20日 Oracle(甲骨文)74亿美元收购Sun。取得java的版权
2011年7月28日 甲骨文发布 Java7.0 的正式版
2014年3月18日 甲骨文发布 Java SE 8
2017年9月21日 甲骨文发布 Java SE 9
2018年3月21日 甲骨文发布 Java SE 10
2018年9月25日 Java SE 11 发布
2019年3月20日 Java SE 12 发布

4、Java的应用领域

4.1 Android应用

许多的 Android应用都是Java程序员开发者开发。虽然 Android运用了不同的JVM以及不同的封装方式,但是代码还是用Java语言所编写。相当一部分的手机中都支持Java游戏,这就使很多非编程人员都认识了Java。

4.2、在金融业应用的服务器程序

Java在金融服务业的应用非常广泛,很多第三方交易系统、银行、金融机构都选择用Java开发,因为相对而言,Java较安全。大型跨国投资银行用Java来编写前台和后台的电子交易系统,结算和确认系统,数据处理项目以及其他项目。大多数情况下,Java被用在服务器端开发,但多数没有任何前端,它们通常是从一个服务器(上一级)接收数据,处理后发向另一个处理系统(下一级处理)。

4.3、网站

Java 在电子商务领域以及网站开发领域占据了一定的席位。开发人员可以运用许多不同的框架来创建web项目,SpringMVC、Struts2.0等。即使是简单的servlet,jsp和以struts为基础的网站在政府项目中也经常被用到。例如医疗救护、保险、教育、国防以及其他的不同部门网站都是以Java为基础来开发的。

4.4、嵌入式领域

Java在嵌入式领域发展空间很大。在这个平台上,只需130KB就能够使用Java技术(在智能卡或者传感器上)。

4.5、大数据技术

Hadoop以及其他大数据处理技术很多都是用Java,例如Apache的基于Java的HBase和Accumulo以及 ElasticSearchas。

4.6、高频交易的空间

Java平台提高了这个平台的特性和即时编译,他同时也能够像 C++ 一样传递数据。正是由于这个原因,Java成为程序员编写交易平台的语言,因为虽然性能不比C++,但开发人员可以避开安全性,可移植性和可维护性等问题。

4.7、科学应用

Java在科学应用中是很好选择,包括自然语言处理。最主要的原因是因为Java比C++或者其他语言相对其安全性、便携性、可维护性以及其他高级语言的并发性更好。

5、Java编程环境

5.1 、Java开发工具包

JDK(Java Development Kit)称为Java开发包,是一个编写Java应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。可以把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(JAVA Runtime Environment),JRE是支持Java程序运行的标准环境。

5.2、Java运行时环境

JRE是个运行环境,JDK是个开发环境。因此写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。而JDK里面已经包含了JRE,因此只要安装了JDK,就可以编辑Java程序,也可以正常运行Java程序。

5.3、Java虚拟机

JVM是Java Virtual Machine(Java虚拟机)的缩写。JVM是java的核心和基础,是Java编译器和OS平台之间的虚拟处理器,主要用于实现Java跨平台。

JDK、JRE、JVM三者的关系如下图:
Java学习笔记01 - 走进Java_第1张图片

6、Java编程工具

  • Eclipse:一个开放源代码的、基于Java的可扩展开发平台
  • MyEclipse:由Genuitec公司开发的一款商业化软件,是应用比较广泛的Java应用程序集成开发环境
  • NetBeans:开放源码的Java集成开发环境,适用于各种客户机和Web应用
  • IntelliJ IDEA:在代码自动提示、代码分析等方面的具有很好的功能
  • EditPlus:如果正确配置Java的编译器“Javac”以及解释器“Java”后,可直接使用EditPlus编译执行Java程序

二、Java开发环境搭建

1、JDK下载

首先前往下载地址[jdk下载地址],截止2020.3.6(https://www.oracle.com/java/technologies/javase-downloads.html)
下载适合于自己电脑版本的JDK。

2、JDK安装

按照提示将JDK安装到自己盘符下。
注:其中,binlib目录为最主要的两个目录,bin目录下存放JDK命令lib目录下存放系统类库。

3、环境变量的配置

安装完成后,需要设置环境变量,鼠标右键单击"我的电脑",点击"属性",选择"高级系统设置"(在此电脑属性下面,而非快捷方式)如是快捷方式,在设置 -> 个性化 -> 图标下设置。
选择"高级"选项卡,点击"环境变量"
在“系统变量”或”用户变量”中设置3项环境变量,JAVA_HOMEPATHCLASSPATH,若已存在则点击“编辑”,不存在则点击“新建”,具体设置方法在下文进行详细说明。

3.1、JAVA_HOME

  • 变量名:JAVA_HOME
  • 变量值:jdk安装目录(需要设置JDK安装根目录,值可能因人而异)
  • 说明:设置JAVA_HOME,一是为了方便引用,比如,JDK安装在C:\Program Files\Java\jdk1.8.0_212目录里,则设置JAVA_HOME为该目录路径,那么以后要使用这个路径的时候,只需输入%JAVA_HOME%即可,避免每次引用都输入很长的路径串;二则是归一原则,当JDK路径改变的时候,仅需更改JAVA_HOME的变量值即可,否则,就要更改任何用绝对路径引用JDK目录的文档,要是万一没有改全,某个程序找不到JDK,后果便是该软件无法正常运行!三则是第三方软件会引用约定好的 JAVA_HOME 变量,不然,也无法正常使用该软件。

3.2、CLASSPATH

  • 变量名:CLASSPATH
  • 变量值:.;%JAVA_HOME%\lib
  • 说明:CLASSPATH 环境变量的作用是,当开发者在Java程序开发过程中需要引用别人写好的类时,告诉 Java 解释器去哪里找这个类。通常,JDK 为开发者提供了丰富的类包,都位于 C:\Program Files\Java\jdk1.8.0_141\lib 目录下,所以通常会将这个目录加到的 CLASSPATH中;那 CLASSPATH最前面的“.;”是做什么用的呢?“.”代表当前目录,所以配置“.;”,是为了让 Java 解释器去当前目录下找开发者自己提供的类.

3.3、Path

  • 变量名:Path
  • 变量值:原变量值;%JAVA_HOME%\bin
  • 说明:Path变量使得开发者能够在系统中的任何地方运行Java应用程序,比如 javacjavajavah 等等,这就要求系统能够找到开发者安装的这些Java应用程序,假设开发者的JDK安装在 C:\Program Files\Java\jdk1.8.0_212\ 目录下,那么在 C:\Program Files\Java\jdk1.8.0_212\bin 目录下就是常用的 Java 应用程序,故需要把 C:\Program Files\Java\jdk1.8.0_212\bin 这个目录添加到 Path 环境变量中.
    最后,测试环境变量是否配置正常,步骤如下:
    1、win + r,键入"cmd"
    2、键入命令: java、javac、java -version 命令,看看命令是否都能正常执行
    3、命令正常执行,环境变量配置正常。

三、第一个Java程序

1、Hello Word

第一步,创建Java源程序文件,Java源文件是以.java结尾的文本文件,是开发人员创建和编写的。将该文件命名为HelloWorldApplication.java

public class HelloWorldApplication {
	public static void main(String[] args) {
		System.out.println("Hello World");
	}
}

说明

  • 上面的代码创建了一个,类名是HelloWorldApplication,因此,HelloWorldApplication.java文件也被称为一个类文件类文件名称必须和类文件中由public修饰的类名相同
  • HelloWorldApplication类中定义了一个方法,方法名称叫mainJava程序是从main方法开始运行的。
  • main方法中的代码向控制台输出Hello World字符串。
  • 注意Java语言是严格区分大小写的。
  • 括号必须成对出现,一行只写一条语句,注意代码缩进建筑美
    说明字节码文件不允许修改的,只能修改源文件后重新生成字节码文件。

2、理解跨平台性

Java是跨平台的语言,平台是指操作系统和CPU,每个平台能够运行与该平台匹配的机器码。Java跨平台就是让所有的平台都能运行Java代码。Java做到了write once, run anyWhere一次编写到处运行。实现这一点的核心便是JVM(Java Virtual Machine),即Java虚拟机
回顾上例中的HelloWorldApplication小程序,经历的主要过程有:Java学习笔记01 - 走进Java_第2张图片
运行”这一步骤并不是直接在操作系统进行,事实上,所有的Java源程序文件都可以编译成字节码文件,字节码文件可以执行在任何一个JVM上,JVM可以运行在专用的平台上,例如JVM for DOS,JVM for windows,JVM for Unix等。所有的JVM都可以将字节码文件转换成平台对应的机器码,如下图所示:
Java学习笔记01 - 走进Java_第3张图片
进一步理解在HelloWorldApplication小程序中经历的步骤,如下:

Created with Raphaël 2.2.0 开始 编写源文件 通过Java编译器命令javac,将Java源程序编译成字节码文件 使用java解释器命令java,字节码文件将在Java虚拟机中转换成对应平台的机器码 对应平台根据机器码,执行相应的操作 结束

说明:

  1. Java源程序到字节码是编译执行,字节码到机器码是解释执行

  2. 编译执行一次性把源程序编译成计算机能识别的目标程序,因此计算机执行起来速度非常快,但是编译后的目标程序只能在同一平台下运行。比如用C语言编写的程序,在Windows平台下编译的结果,离开Windows平台将无法正确的运行;解释执行的程序是指 解释器将源程序逐句翻译的同时逐句执行,因此执行起来速度上不占优势,但是这种程序执行时往往不依赖于特定的平台,通过在不同平台上提供不同的解释器就可以跨平台执行

你可能感兴趣的:(Java学习笔记,java,jdk,编程语言)