java简介
Java历史
诞生
发展
特点
简单性
具有面向对象性
健壮性
编译和解释性
高性能
安全性
Java主要用途
应用程序的架构问题
要了解Java的主要用途,首先要明白应用程序的架构,在当前应用程序普遍有两种架构模式,即:
- C/S架构,即客户端/服务器端程序(Client/Server)架构。
- 这里的"客户端"可以是有 GUI (图形用户界面)的定制软件,也可以是浏览器,甚至可以是通过 SSH 访问服务器的命令行脚本等等。
- C/S架构实际上是一种定义非常宽泛的架构类型,很多人将它简单理解成"PC端的图形界面程序"是不正确的。
- 特别需要注意【C/S架构应用,不单单指GUI图形用户界面实现的,客户端程序】,它的定义是非常广泛的。
- B/S架构,即浏览器/服务器端程序(Brower/Server)
- 这里的浏览器就是我们常说的诸如IE、chrome、EDGE等应用软件
- B/S架构的应用程序,就需要借助浏览器来完成访问,实现功能。
- 常见的B/S架构的应用程序有:网站、APP等等(广义来说APP也是浏览器)
- 无论是B/S还是C/S架构的应用程序,它们都需要服务器端来存储、传输、运算数据,也需要服务器端来完成各种控制。
其实了解它们的定义后,不难发现这两种架构的 界限 实际上已经很 模糊 了。或者说 B/S架构本身就是C/S架构的一种特殊形式!
web应用
Web应用程序,顾名思义是一种可以通过Web(互联网)访问的应用程序。
Web应用具备以下特点:
- 普遍采用B/S架构实现,用户只需要有浏览器即可访问使用,不需要再安装其他软件。
- Web应用也可以采用C/S架构实现
- 但不管采用何种架构实现,都需要连接互联网才能使用,能够脱机使用的应用程序不是Web应用
我们日常生活中使用的大多数应用程序都是Web应用,比如各种管理系统,淘宝京东电商系统等。Web应用通过浏览器访问,必然需要服务端作出响应,而 Java是当前最常见、最主流的服务器端语言 ,使用Java做服务器端最大的优点是稳定,开发效率也很高(依赖于Java成熟的类库和框架体系)当然,目前Java最主流的用途也是作为服务器端开发语言。
android开发
使用Java进行安卓开发已经逐渐式微,越来越少人使用Java开发Android,相关的工作岗位非常少。这主要是由于:
- Google和Oracle公司有一定的纠纷,Google也不愿意再在安卓中使用Java语言。
- 原生的安卓意味着公司还需要针对iOS等其它平台开发软件,增加成本,开发效率低。现在企业都倾向于使用使用Vue,H5这种可跨平台的开发语言。
最后,可以了解一下的是,现在安卓开发使用一种类似Java的语言 Kotlin 语言,它是JetBrains公司开发的(也就是IDEA的开发公司)
桌面开发应用
狭义的桌面应用可以看成基于C/S架构的具有 GUI (图形用户界面)的定制软件,一般都是指PC端的桌面应用程序,不需要浏览器运行,而是直接运行在桌面操作系统上的应用,这意味桌面应用一般都可以单机使用,当然联网功能也完全可以具备。
普遍来说,桌面应用开发是C/C++的天下。这是因为操作系统底层多是C语言开发的,使用C语言开发相关应用程序,功能和性能都会更加优越。但是Java也有一些用武之地,在某些特殊情况下,仍然需要使用Java开发桌面应用。尤其是当一个需要频繁和Java语言交互的应用程序。(没错,我们的开发工具IDEA就是Java编写的)
JDK与JRE
JDK,JRE,JVM的作用及关系
JRE(Java Runtime Environment):Java运行时环境
- JRE包括Java虚拟机、运行时核心类库等Java程序运行时必备的环境
- JRE主要是给已经编写好的Java程序使用,也就是说操作系统中想要运行Java程序,必须要有JRE
JDK(Java Development Kit):Java开发者工具包
- JDK包含JRE
- 除了JRE外,JDK还提供了Java开发者需要使用的工具,比如javac.exe,java.exe(Windows)
作用
JVM:保证Java语言跨平台
JRE:Java程序的运行环境
JDK:Java程序的开发环境
关系
JDK:JRE+工具
JRE:JVM+类库
JDK安装
安装IDEA
Java程序的运行原理
以Windows操作系统为例:

图 3. Java程序运行原理
Java源代码总是要经过编译,得到class字节码文件,然后字节码文件在Java虚拟机中解释执行。
Java语言的跨平台性
Java语言曾经最引以为傲,最显著的特性就是Java的跨平台性 :指Java语言编写的应用程序,只需要写一次代码,就可以在不同的系统平台上正常运行。当然这个特性的实现,也并没有多少神奇的地方。Java实现跨平台性依赖于Java虚拟机(Java Virtual Machine,简称JVM)Java程序并不是直接执行在操作系统上的,而是执行在Java虚拟机中。正如上面运行原理中所看到的,字节码class文件最终都要在虚拟机中运行,只要每个操作系统都有自己的虚拟机实现,就可以完美实现跨平台性。
Java语言的编译性和解释性
编译执行:通过编译器将源代码编译为机器码(机器能识别的代码指令),然后在机器上直接执行。
解释执行:不需要编译成机器码,而是由解释器直接执行,并且一边解释一边逐句执行
其实说Java是解释型语言,或编译型语言都是不完全正确的,或者不倾向于用这种"过时的"定义来解释Java语言的特性。Java语言的程序在具体执行时,某种特定实现是解释型的或者是编译型的。所谓的编译型和解释型并不是语言的特性,而是语言实现的特性。

浙公网安备 33010602011771号