Java简介
James Gosling于1991年在SUN公司任职时,所在的工程师小组为了设计一种小型计算机语言,主要用于像电视盒这样的消费类电子产品,要求该语言不能和特定的体系结构绑在一起,要求语言本身是中立的,也就是跨平台的。
最初将语言命名为 Green,后来,改名为Oak,橡树的意思,改名后发现已经有一种语言叫这个名字了,再改名叫Java。
Java版本介绍
版本 | 发布时间 | 新特性 |
---|---|---|
1.0 | 1996-01-23 | Java初始版本 |
1.1 | 1997-02-19 | 引入JDBC(Java Database Connectivity) |
支持内部类 | ||
引入Java Bean | ||
引入RMI(Remote Method Invocation) | ||
引入反射(仅用于内省) | ||
1.2 | 1998-12-08 | 引入集合(Collection)框架 |
对字符串常量做内存映射 | ||
引入JIT(Just In Time)编译器 | ||
引入对打包的Java文件进行数字签名 | ||
引入控制授权访问系统资源的策略工具 | ||
引入JFC(Java Foundation Classes),包括Swing 1.0、拖放和Java 2D类库 | ||
引入Java 插件 | ||
在JDBC中引入可滚动结果集、BLOB、CLOB、批量更新和用户自定义类型 | ||
在Applet中添加声音支持 | ||
1.3 | 2000-05-08 | 引入Java Sound API |
jar文件索引 | ||
对Java的各个方面都做了大量优化和增强 | ||
1.4 | 2004-02-06 | XML处理 |
Java打印服务 | ||
引入Logging API | ||
引入Java Web Start | ||
引入JDBC 3.0 API | ||
引入断言 | ||
引入Preferences API | ||
引入链式异常处理 | ||
支持IPv6 | ||
支持正则表达式 | ||
引入Image I/O slot machine API | ||
1.5 | 2004-09-30 | 引入泛型 |
增强循环,可以使用迭代方式 | ||
自动装箱与自动拆箱 | ||
类型安全的枚举 | ||
可变参数 | ||
静态引入 | ||
元数据(注解) | ||
引入Instrumentation | ||
1.6 | 2006-12-11 | 支持脚本语言 |
引入JDBC 4.0 API | ||
引入Java Compiler API | ||
可插拔注解 | ||
增加对Native PKI(Public Key Infrastructure)、Java GSS(Generic Security Service)、Kerberos和LDAP(Lightweight Directory Access Protocol)的支持 | ||
继承Web Services | ||
1.7 | 2011-07-28 | switch语句块中允许以字符串作为分支条件 |
在创建泛型对象时应用类型推断 | ||
在一个语句块中捕获多种异常 | ||
支持动态语言 | ||
支持try-with-resources | ||
引入Java NIO.2开发包 | ||
数值类型可以用2进制字符串表示,并且可以在字符串表示中添加下划线 | ||
钻石型语法 | ||
null值的自动处理 | ||
1.8 | 2014-03-18 | 支持 lambda支持 |
增强日期与时间API的功能 | ||
对垃圾回收的性能也进行了改进 | ||
移除了permgen区 | ||
Lambdas表达式与Functional接口 | ||
接口的默认与静态方法 | ||
方法引用 | ||
重复注解 | ||
更好的类型推测机制 | ||
扩展注解的支持 |
整体结构
体系结构
Java SE(Java Platform,Standard Edition)
允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序,包含了支持 Java Web 服务开发的类,为(Java EE)提供基础
Java EE(Java Platform,Enterprise Edition)
企业版帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。
Java ME(Java Platform,Micro Edition)
为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。
运行环境
JVM(java virtual machine)
JVM是一个虚拟计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器,包含在JDK中。
不同的平台有不同的JVM。
JVM屏蔽了底层运行平台的差异,实现"一次编译,到处运行"。
JRE(java runtime environment)
Java运行环境,JRE = JVM + Java的核心类库[类]
运行JAVA程序,只需要装JRE即可
JDK(java development kit)
Java开发工具包,JDK = JRE + Java的开发工具(java,javac,javadoc,javap等)
提供给开发人员使用,包含了JAVA开发运行需要的所有工具
跨平台原理
系列文章