Java基础
1.什么是Java
Java是一门面向对象编程语言,不仅继承了C++的优点,还摒弃了C++里难以理解的多线程、指针等概念
因此Java具有功能强大和简单易用的两个特征
Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式 进行复杂的编程
2.诞生背景
任职于Sun公司(Stanford University Network斯坦福网络公司)的詹姆斯·高斯林和麦克·舍林丹等人于1990年代初开发Java语言的雏形,最初被命名为Oak,Oak的目标是作为家用电器等小型系统的编程语言,用于电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展,Sun公司发现Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。伴随着互联网的迅猛发展,Java逐渐成为重要的网络编程语言。
三大版本
Java SE
(J2SE,Java 2 Platform Standard Edition,标准版)
-
Java SE以前被称为J2SE,它允许开发和部署到桌面和服务器、嵌入式环境和实时环境中使用的Java应用 程序。Java SE包含了支持Java web服务开发的类,并为Java EE和Java ME提供基础
Java EE
(J2EE, Java 2 Platform Enterprise Edition,企业版)
-
ava EE 以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web2.0应用程序。2018年2月,Eclipse 宣布正式将 JavaEE 更名为 JakartaEE
Java ME
(J2ME,Java 2 Platform Micro Edition,微型版)
-
Java ME 以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。
语言特点和应用场景
Java语言具有简单性、面向对象、分布式、健壮性、安全性、跨平台性、可移植性、多线程与动态性等特点。 Java语言可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统等 。Java 快速、安全、可靠。从 笔记本电脑到数据中心,从游戏控制台到超级计算机,从手机到互联网,Java 无处不在!
Java运行体系
Java技术体系图
**
**
-
Sun官方定义的java技术体系包括:
Java程序设计语言
各种硬件平台上的Java虚拟机
Class文件格式
Java API类库
来自商业集团的第三方类库
-
JDK:用于支持Java程序开发的最小环境,内容包括:
Java程序设计语言
Java虚拟机
Java API类库
-
JRE:用于支持Java程序开发的标准环境,内容包括:
Java API类库中的Java SE API子集
Java虚拟机
Java语言口号
Write Once , Run Anywhere。
JDK命名
JDK从1.5版本开始,官方在正式文档与宣传上不在使用类似jdk1.5版本,只在程序内部使用的的开发版本号(Developer Version,例如java --version的输出)中才继续沿用1.5,1.6...。而攻克版本号(Product Version)则 改为JDK5、JDK6、JDK7的命名方式。
Java开源
2006年11月13日的JavaOne大会上,Sun公司宣布开源java,JDK1.6在12月11日发布。并建立了OpenJDK组织对浙西源码进行独立管理,除了极少量的产权代码(Encumbered Code,这部分代码大多史Sun本身也无权限进行开源处理的)外,OpenJDK几乎包括了Sun JDK的全部代码。
可以运行在Java虚拟机上的语言
对于这些运行于java虚拟机之上,Java语言之外的语言,来自系统级的、底层底层的支持正在迅速增强,JSR-292为核心的一系列项目和功能改进,推动java虚拟机从“Java语言的虚拟机”向“多语言虚拟机"的方向发展。
编写JDK使用的语言
OpenJDK的各个组成部分(Hotspot、JDK API、JAXWS、JAXP....)有的是使用C++编写的,更多的代码则是使 用Java自身实现的。
JDK、JRE和JVM的区别
JDK
Java Development Kit是提供给Java开发人员使用的,其中包含了Java的开发工具,也包括了JRE。所以安 装了JDK,就无需再单独安装JRE了。其中的开发工具:编译工具(javac.exe),打包工具(jar.exe)等
JRE
Java Runtime Environment包括Java虚拟机和Java程序所需的核心类库等。核心类库主要是java.lang包: 包含了运行Java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类 等,系统缺省加载这个包
JVM
Java Virtual Machine是Java虚拟机,Java程序需要运行在虚拟机上,不同的平台有自己的虚拟机,因此 Java语言可以实现跨平台。