Java历史
- Java之父: James Gosling。
- 起初是SUN公司为了Green项目,开发一款利用发邮件控制各个家电产品运行的系统。考虑到C++开发的复杂度,SUN工程师使用C++搭建了一个新平台OAK。但项目没有竞标成功,这个系统面临着生存危机。之后,SUN工程师向网景公司学习浏览器技术,推出了HotJava浏览器。在1995年,SUN公司正式将OAK更名为Java。直到1996年推出JDK 1.0程序开发包。
- Java的发展得利于Internet和Web的出现,Internet上有各种不同的计算机,它们可能使用完全不同的操作系统和CPU芯片,但仍希望运行相同的程序,Java的出现标志着真正的分布式系统的到来。
Java三大版本
- JavaSE(Java Standard Edition):标准版,是为开发普通桌面和商务应用程序提供的解决方案
- JavaEE(Java Enterprise Edition):企业版,是为开发企业级应用程序提供的解决方案
- JavaME(Java Micro Edition):小型版,是为开发电子消费产品和嵌入式设备提供的解决方案
Java运行简单流程
- 源代码文本编辑生成.java文件
- 代码编译生成字节码文件(.class)
- 通过安装在操作系统上的Java虚拟机运行(Java虚拟机对字节码文件进行解释执行,并显示结果)。
Java特性
- 安全可靠:Java通常用于网络环境中,为此,Java提供了安全机制以防恶意代码的攻击。Java运行之前会利用字节确认器进行代码的安全检查,确保程序不会存在非法访问本地资源和文件系统的可能,保证了程序在网络间传送的安全性。
- 跨平台性:Java引进虚拟机的概念,通过Java虚拟机(JVM)可以在不同的操作系统运行Java程序,从而实现跨平台特性。
- 面向对象
- 支持多线程:Java语言内置了多线程控制,可是用户程序并发执行。利用Java的多线程编程接口,开发人员可以方便地写出多线程的应用程序。Java提供地同步机制可保证各线程对共享数据的正常操作。在硬件条件允许的情况下,这些线程可以直接分布到各个CPU上,充分发挥硬件性能,提高程序执行效率。
- 动态:Java程序的基本组成单元是类。类在运行时是动态装载的,所以Java在分布环境中动态地维护程序和类库。
JDK、JRE、JVM
Java虚拟机(JVM):在计算机上由软件或硬件模拟的计算机
Java运行环境(JRE):JRE = JVM + API(类库)
Java开发工具包(JDK):JDK = JRE + Tools
JDK【JDK8及以前版本】
它是Java的核心,其中包括Java编译器、Java运行环境、Java打包工具、Java文档生成工具等。其中Java运行环境(JRE)只能运行事先编写好的程序,不能编译程序,因此通常提供给普通用户使用。
主要目录:
- bin目录——用于存放一些可执行程序,其中最重要的是javac.exe、java.exe。
- javac.exe:Java编译器工具,可以将Java文件(.java)编译成Java字节码文件(可执行的Java程序)。
- java.exe:Java运行工具,它会启动一个Java虚拟机(JVM)进程,Java虚拟机专门负责运行由Java编译器生成的字节码文件(.class)。
- 其他工具。例如:javadoc.exe(生成java注释文档)、jar.exe(打包工具)、jdb.exe(java调试器)。
-
db目录——是一个小型的数据库
-
jre目录——为Java程序提供运行环境
-
include目录——由于JDK是通过C和C++实现的,因此用开存放C语言的头文件
-
lib目录——library的缩写,Java类库或库文件,是开发工具使用的归档包文件
-
src.zip目录——src中存放了JDK核心类的源代码
Java三大内在机制
- Java虚拟机(JVM)
- 代码安全检查(JRE)
- 垃圾回收机制(Garbage Collection)
C/C++、Java特性比较
- Java舍弃了指针。
- Java中支持的垃圾回收机制,不需要程序员在编程中特别注意内存管理。而在C++中必须要时刻注意进行内存管理。