1.1 什么是Java ?
Java 是一种高级程序
设计语言,它也是一个
平台,拥有大量的
库,它
提供了一个安全性、可移植性、自动垃圾收集等服务的
执行环境。
1.2 Java具体的11个特点?
-
简单性
语言简单。对比C++,没有头文件、指针运算(甚至指针语法)、结构、联合、操作符重载、虚基类等等
运行环境简单。可以在嵌入式设备运行,如Java Micro Edition,基本解释器只有40KB。
-
面向对象
面向对象设计是一种程序设计技术。
-
分布式
丰富的程序库,方便访问网络
-
健壮性
强度进行早期问题检测、后期动态的(运行)检测、消除容易出错的情况。特殊的指针模型可以消除重写内存和损坏数据的可能性。避免C++的指针bug
-
安全性
Java的设计能预防攻击,如:运行时堆栈溢出(常见蠕虫和病毒的攻击手段);破坏自己的进程空间之外的内存;未经授权读写文件。
-
体系结构中立
编译器
生成一个体系结构中立的目标文件格式,该文件可以在任何机器上执行(包含Java 运行时环境)。
-
可移植性
定义了可移植接口,数据类型一致(如int永远为32位)
-
解释性
Java
解释器
可以直接执行Java字体码
-
高性能
即时编译器,在某些情况下超过了传统编译器。例如:监控哪些频繁执行的代码,并优化提高速度;消除函数调用;
-
多线程
多线程提高更快的交互响应和实时行为。
-
动态性
库中可以自由的添加新的方法和实例变量,对客户端没有影响。例如:从Internet下载代码,然后浏览器上运行。
1.3 什么是Java applet? /'æplət/ (小程序)
applet:在网页中运行的Java程序。
如何使用 : 需要一个启用Java的Web浏览器,该浏览器用于执行字节码。
特点:不需要安装其他软件;无论何时访问包含applet的网页,都会得到程序的最新版本。
1.4 Java 发展简史
|
|
特性
|
Java 1.0 |
1996
|
虚拟机(Sun Classic VM)
Java应用小程序(Java Applet)
Java 图形设计(AWT)
|
Java 1.1
|
1997
|
jar包
Java规划——JavaBeans
连接数据库——JDBC(Java DataBase Connectivity)
远程调用——RMI
内部类——Inner Class
反射——Reflection
|
Java 1.2
|
1998
|
字符串常量做内存映射
对打包的Java文件进行数字签名
控制授权访问系统资源的策略工具
JDBC中引入可滚动结果集,BLOB、CLOB、批量更新和用户自定义类型
在Applet中添加声音支持
即时编译技术——JIT
运行插件——Java Plug-In
J2EE规范——EJB
平台对象请求代理体系结构——Java IDL
集合——Collections
strictfp修饰符
|
Java 1.3
|
2000
|
数学运算
CORBA IIOP实现RMI的通信协议
Java 2D新特性
Jar文件索引
时间——Timer API
声音——Java Sound API
|
Java 1.4
|
2002
|
正则表达式
异常链
XML解析器
XSLT转换器
XML处理
Java打印服务
JDBC高级——Java Web Start JDBC 3.0
可以操作系统的高级功能——Preferences
高级流——NIO
日志功能——Logging
图片流——Imgae I/O
断言
|
Java 1.5
|
2004
|
自动装箱拆箱
泛型
元数据
静态引入
内省——Introspector
枚举——enum
可变长参数——Varargs
高级虚幻——foreach
内存模型——JMM
并发包——concurrent
|
Java SE 6 |
2006
|
命名方式变更
脚本语言
编译API和微型HTTP服务器API
锁与同步
垃圾收集
类加载
Kerberos
LDAP
JDBC高级——JDBC 4.0
Java™ 编程语言编译器的接口——Java Compiler
可插拔注解
公钥基础设——Native PKI
通用安全服务——Java GSS
web服务——Web Services
|
Java SE 7
|
2011
|
switch语句块中允许以字符串作为分支条件
创建泛型对象时应用类型推断
try-with-resources
null值得自动处理
数值类型可以用二进制字符串表示
引入Java NIO.2开发包
动态语言支持
安全的加减乘除
Map集合支持并发请求
菱形运算符
二进制字面量
异常处理增强
|
Java SE8
|
2014
|
Java工具的操作增强
Unicode增强功能,包括对Unicode 6.2.0的支持
并行阵列排序
标准编码和解码Base64
无符号算术支持
新的并发
Lambda表达式
方法参数反射Java XML技术增强功能
虚拟机操作增强JSSE服务器中的SSL / TLS服务器名称指示(SNI)扩展支持支持AEAD算法
包含默认方法的接口
流和日期/时间库
|
参考: