今天的博客主题
Java概述 ——》Java概述
Java
一种高级的计算机语言
Java的前身oka语言,随着社会的发展,改名为了Java
Java之父 James Gosling(詹姆斯·高斯林)
1991年Java之父开始了oka语言的开发
1994年oka语言改名为Java
1995年由Sun公司推出
Java是Java面向对象设计语言和Java平台的总称。
Java体系
JavaSE:Java Platform Standard Endition(Java标准版)各应用平台的基础,桌面开发和低端商务应用的解决方案。是JavaEE,JavaME的基础。
JavaEE:Java Platform Enterprise Endition(Java企业版)以企业为环境而开发的企业应用程序,主要针对web程序的开发。
JavaME:Java Platform Micro Endition(Java微型版)开发电子产品和嵌入式设备。
Java可以做什么?
开发桌面应用程序
开发面向Internet的web应用程序
开发Android手机应用程序
提供各行业的解决方案
Java特性
面向对象
通用性
高效性
移植性
安全性
Java语言特点
简单(Simple)
面向对象(Object-Oriented)
方便,可移植(Portable)
平台独立(Platform independent)
安全(Secured)
强大,健壮(Robust)
体系结构中立(Architecture neutral)
动态(Dynamic)
解释执行(Interpreted)
高性能(High Performance)
多线程(Multithreaded)
分布式(Distributed)
Java跨平台
write once run anywhere
跨平台就是跨操作系统
Java的跨平台是相对于其他编程语言而言的
通过Java语言编写的应用程序在不同的系统平台上都可以运行
一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码
在windows编译的c语言程序,在linux下是不能运行的,在linux下编译的c语言程序在windows下也是不能运行的。
而Java语言在不同平台上运行时不需要重新编译
Java的跨平台是通过Java虚拟机(JVM)来实现的。
Java开发三部曲
1)编写源程序,Java源代码文件
2)编译源程序,编译器把Java源代码文件编译成Java字节码文件
3)运行,Java虚拟机(JVM)
编写源程序(.java文件)===》编译源程序(.class文件)===》运行程序(输出程序结果)
JDK JRE JVM
JDK:Java Development Kit(Java开发工具包)
Java开发环境,整个Java的核心
JDK包括了Java运行环境(JRE),Java工具和Java基础库类
目前版本:JDK13
先编译(编译器javac),后运行(解释器java)
JRE:Java Runtime Environment(Java运行环境)
Java程序运行的核心类库和Java虚拟机
加载代码(加载器),校验代码(检查器),执行代码(解释器)
JVM:Java Virtual Machine(Java虚拟机)
虚拟机就是虚拟出来的计算机
用来保证Java的跨平台特性
Java程序的运行是依靠具体的Java虚拟机实例
JVM是Java运行底层,包含在了JRE里
三者的区别:
JDK Java开发工具箱,整个JAVA的核心,它里边包含了JRE,除了包含JRE之外还包含了一些Javac的工具类,把Java源文件编译成class文件,Java命令是用来运行这个程序的,除此之外,里边还包含了Java源生的API,比如rt.jar包里面的包装数据类型和IO操作。
JDK有以下三种版本:
- J2SE:标准版,是我们通常用的一个版本
- J2EE:企业版,使用这种JDK开发J2EE应用程序
- J2ME:主要用于移动设备、嵌入式设备上的Java应用程序
JRE 是Java运行时环境,保证Java程序能够运行所必备的一基础环境,也就是说它只保证Java程序的运行,而不能用来开发,JDK才是用来开发的。不过所有的Java程序都要在JRE下才能运行,因为JRE里面包括JVM和JAVA核心类库和支持文件。
与JDK相比,但它不包含开发工具:编译器、调试器和其它工具。
JVM Java运行的依赖。JVM是用来加载类文件,Java之所以跨平台,就是因为有JVM
三者之间的关系:
J2SE是基于JDK和JRE
JDK是整个JAVA的核心里边包含了JRE
JRE里边包含JVM
Java API
Java SE 7:https://docs.oracle.com/javase/7/docs/api/
Java SE 8:https://docs.oracle.com/javase/8/docs/api/