Hello Java!

1. Java发展史

1.1 计算机编程语言分类

  • 机器语言:电子机器能够直接识别的语言,无需经过翻译,计算机内部就有相应的电路来完成它;从使用的角度来看,机器语言是最低级的语言。

    机器语言。指令以二进制代码形式存在。

  • 汇编语言:面向机器的程序设计语言,符号语言;人工操作起来较简易的方式来设计程序的语言,通过不同的符号代替机器指令,特定的汇编语言与特定的机器语言指令集是一一对应的。

    汇编语言。使用助记符表示一条机器指令。

  • 高级语言 :更容易被人们所理解的高级程序语言,符合人类思维模式的程序设计语言,如:C、Java,JavaScript、Python、Go

从上面这个简单的加法计算,可以看出越到高级语言,越接近人的思维,人使用起来就越方便。

高级语言的出现,尤其是面向对象语言的出现,相当于人类的工业社会,高级语言极其易用,编程门槛和难度大大降低,大量的人员进入软件开发行业,为软件爆发性的增长提供了充足的人力资源。目前以及可预见的将来,计算机语言仍然处于"第三代高级语言"阶段。

1.2 Java语言概述

  • 是SUN(Stanford University Network,斯坦福大学网络公司 ) 1995年推出的一门高级编程语言。

  • Java一开始富有吸引力是因为Java程序可以 在Web浏览器中运行。这些Java程序被称为Java小程序(applet)。applet使用现代的图形用户界面与Web用户进行交互。 applet内嵌在HTML代码中。

  • 随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。

  • 后台开发:Java、PHP、Python、Go、Node.js

1.3 Java诞生发展及核心

版本

版本 工程代号 发行日期
JDK Beta 1995年
JDK 1.0 Oak(橡树)适用于互联网 1996年1月
JDK 1.1 1997年2月
J2SE 1.2 Playground(运动场) 1998年12月
J2SE 1.3 Kestrel(美洲红隼) 2000年5月
J2SE 1.4 Merlin(灰背隼) 2002年2月
Java SE 5 (1.5) Tiger(老虎)(里程碑式的版本,更名为JDK5.0) 2004年9月
Java SE 6 (1.6) Mustang(野马)(2009年Oracle公司74亿美元收购SUN) 2006年12月
Java SE 7 (1.7) Dolphin(海豚) 2011年7月
Java SE 8 (1.8) (LTS) Spider(蜘蛛) 2014年3月
Java SE 9 2017年9月
Java SE 10 2018年3月
Java SE 11 (LTS) 2018年9月
Java SE 12 2019年3月
Java SE 13 2019年9月
Java SE 14 2020年3月
Java SE 15 2020年9月
Java SE 16 2021年3月
Java SE 17 (LTS) 2021年9月
Java SE 18 2022年3月

Oracle

1.4 Java技术体系平台

  • JavaSE :**(Java Platform Standard Edition)**标准版本,也称之为( J2SE),具备了基本的库,用于在pc端进行开发,Java 标准平台,所有的 Java 项目都需要 JavaSE 的支持,包括 Java EE 和 Java ME ,提供了完整的Java核心API。

  • JavaEE:企业版本,也称之为( J2EE),Java 的企业平台,用于开发和部署可移植、健壮、可拓展和安全稳定的服务器端Java应用程序,具备了开发网站的功能,用于开发网站。

    是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如 :Servlet 、Jsp等,主要针对于Web应用程序开发

  • JavaME:最小版本,也称之为( J2ME),在移动端开发使用,嵌入式设备上使用。

    支持Java程序运行在移动终端(手机、PDA)上的平台,对Java API有所精简,并加入了针对移动终端的支持,用于开发移动设备、嵌入式设备(比如手机、PDA、电视机顶盒和打印机)等。

1.5 Java语言的特点

  • 特点一:

    • 面向对象

    • 两个基本概念:类、对象

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

  • 特点二:

    • 健壮性

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

  • 特点三:

    • 跨平台性 (可移植性,详见2.3)

    • 通过Java语言编写的应用程序在不同的系统平台上都可以运行。"Write once , Run "Anywhere"

2. JDK、JRE、JVM

2.1 基本概述

  • JVM(Java Virtual Machine):JVM(Java虚拟机)是一个可执行Java字节码的虚拟机进程,用于解析编译后的字节码文件。 JVM屏蔽了与操作系统平台相关的信息,可以把字节码解释成具体平台上的机器指令执行,这也是Java的能够 "一次编译,到处运行" 的原因。

    • JVM的核心任务是解释字节码文件,它不能运行字节码文件。因为JVM执行class还需要JRE下的lib类库的支持,尤其是rt.jar,这一点非常重要。
  • JRE(Java Runtime Environment):JRE(Java运行环境),它包含JVM的标准实现及Java核心类库。需要注意的是 : JRE是Java的运行环境,不是开发环境。JRE不包含任何开发工具,如:编译器、调试器等,因为JRE是面向Java程序(jar包)的,程序只需要运行不需要编译、调试等功能。

    • 在Java的世界中,JRE的地位相当于是一台PC机器中的Windows操作系统。 Windows操作系统可以运行.exe格式化的应用程序,对应的,JRE操作系统用于运行.jar格式的应用程序. B/S (我的世界)
  • JDK (Java Development Kit):JDK是java开发工具包,它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行时环境,以及常用的Java类库等。JDK是面向程序员的。JDK安装目录中是包含JRE的,而JRE中是包含JVM的,所以电脑安装完JDK后就具备了开发Java源文件、编译class字节码文件、运行jar程序的功能

2.2 三者关系

  • Jre = JVM + 运行时需要的类库

  • Jdk = Jre + Java程序开发工具(例如javac编译工具等)

2.3 Java可移植性

  • 什么是可移植性

    高级语言开发流程:(c/c++ 编程时情况)

    编写代码===》编译代码===》运行程序,换种说法:

    源码文件 --> 编译成机器能够识别的语言 --> 机器执行

    问题?硬件怎么交流?===》操作系统的作用 ===》根据操作系统编写代码 ===》编写的代码不具备跨平台行

    java是如何解决跨平台运行的问题呢?

    对于不同的平台,有不同的虚拟机。只有某平台提供了对应的java虚拟机,java程序才可在此平台运行

    Java虚拟机机制屏蔽了底层运行平台的差别,实现了"一次编译,到处运行"

    例如:Java程序可以在Windows操作系统上运行,在不做任何修改的情况下,也可以在Linux操作系统下运行。

2.4 安装JDK

下载

Azul

  • 配置环境变量:

    每次执行 java 的工具都要进入到bin目录下,是非常麻烦的。可不可以在任何目录下都可以执行java的工具呢? 根据windows系统在查找可执行程序的原理,可以将java工具所在路径定义到path 环境变量中,让系统帮我们去找运行执行的程序。

  • 配置方法:

    我的电脑--属性--高级系统设置--环境变量

1.新建环境变量

2.输入jdk安装目录

复制代码
JAVA_HOME
C:\zulu11.60.19-ca-jdk11.0.17-win_x64
  1. 修改配置方式,为以后工作环境做好铺垫

复制代码
 path
 %JAVA_HOME%\bin
相关推荐
Susea&36 分钟前
数据结构初阶:队列
c语言·开发语言·数据结构
慕容静漪39 分钟前
如何本地安装Python Flask并结合内网穿透实现远程开发
开发语言·后端·golang
ErizJ41 分钟前
Golang|锁相关
开发语言·后端·golang
GOTXX1 小时前
【Qt】Qt Creator开发基础:项目创建、界面解析与核心概念入门
开发语言·数据库·c++·qt·图形渲染·图形化界面·qt新手入门
搬砖工程师Cola1 小时前
<C#>在 .NET 开发中,依赖注入, 注册一个接口的多个实现
开发语言·c#·.net
巨龙之路1 小时前
Lua中的元表
java·开发语言·lua
徐行1101 小时前
C++核心机制-this 指针传递与内存布局分析
开发语言·c++
划水哥~1 小时前
Kotlin作用域函数
开发语言·kotlin
小臭希2 小时前
python蓝桥杯备赛常用算法模板
开发语言·python·蓝桥杯
mosaicwang2 小时前
dnf install openssl失败的原因和解决办法
linux·运维·开发语言·python