跳转至

JAVA 介绍

1. 心态

  • 不要做一个浮躁的人
  • 学好英语,很重要
  • 阅读源代码和文档
  • 共享源代码,不要做一个功利的人
  • 热爱Java

2. 发展史

java发展史

  • 1991年,Sun公司的Green项目,Oak
  • 1995年,推出Java测试版
  • 1996年,JDK1.0
  • 1997年,JDK1.1 ▪ 1998年,JDK1.2,大大改进了早期版本的缺陷,是一个革命性的版本,更名为Java2
  • 1999 Java被分成J2SE、J2EE 和J2ME,JSP/Servlet技术诞生
  • 2004年,J2SE 5.0 (1.5.0) Tiger老虎.为了表示这个版本的重要性,J2SE1.5更名为J2SE5.0。
  • 2006年,J2SE 6.0 (1.6.0) Mustang野马.此时,Java的各种版本被更名,取消其中的数字"2":J2EE更名为Java EE, J2SE更名为 Java SE,J2ME更名为Java ME
  • 2009年4月20日甲骨文收购Sun公司,交易价格达74亿美元
  • 2011年,JavaSE7.0
  • 2014年 ,JavaSE8.0
  • 2017年,JavaSE9.0
  • 2018年3月,JavaSE10.0
  • 2018年9月,JavaSE11.0
  • 2019年3月,JavaSE12.0

3.版本差异

3.1 J2EE (JavaEE)

  • Java 2 Enterprise Edition:
  • 定位在服务器端的应用

3.2 J2SE (JavaSE)

  • Java 2 Standard Edition
  • 定位在个人计算机上的应用

3.3 J2ME (JavaME)

  • Java 2 Micro Edition
  • 定位在消费性电子产品的应用上

4. JVM

  • JVM是一种规范。就是一个虚拟的用 于执行bytecodes字节码的计算机。
  • Java虚拟机是Java最核心技术,也是跨 平台的基础。
  • 可以使用软件来实现
  • IBM, SUN, BEA等。你也可以自己 写一个JVM
  • 可以使用硬件来实现 比如sun/intel公司正在研发的Java 芯片

5. JVM和JAVA跨平台特性

  • 通过“编译器”将Java源程序编译成Java 字节码文件(.class) (字节码文件采用结构中立的中间文件格式)
  • 通过“解释器”将Java字节码文件解释为对应机器语言并运行

跨平台

Java和C跨平台原理的比较

  • Java:一次编译,到处运行
  • C多次编译,到处运行

6. JAVA特点

  • Java是跨平台的
1. Java程序的跨平台主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设 备上运行,
2. Java虚拟机中的Java解释器负责将字节码文件解释成为特定的机器码进行运 行。
  • Java是简单的
1. 不再有#include 和#define 等预处理功能 
2. 不再有struct,union及typedef
3. 不再有函数、 
4. 不再有指针、
5. 不再有多重继承 
6. 不再有goto 
7. 不再有操作符重载(Operatior Overloading) 
8. 不再有全局变量 取消自动类型转换,要求强制转换 
9. 不再有手动内存管理
  • Java是安全的
1. Java取消了强大但又危险的指针。由于指针可进行移动运算,指针可随便指向 一个内存区域,
而不管这个区域是否可用,这样做是危险的,因为原来这个内 存地址可能存储着重要数据或者是其他程序运行所占用的,
 并且使用指针也容 易数组越界。 

2.Java提供了自动内存管理机制,由垃圾回收器在后台自动回收, 

3.Java在字节码的传输过程中使用了公开密钥加密机制(PKC)。 

4.而在运行环境提供了四级安全性保障机制: 
    1. 字节码校验器 
    2. 类装载器 
    3. 运行时内存布局 
    4. 文件访问限制
  • Java是完全面向对象的
1. Java和C++都是面向对象语言。也就是说,它们都能够实现面向对 象思想(封装,继承,多态)。 

2. 由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为 了带类的C语言,多少影响了其面向对象的彻底性! 

3. Java则是完全的面向对象语言,它句法更清晰,规模更小,更易学。
它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其 他语言的不足之处,从根本上解决了c++的固有缺陷。
  • Java是健壮的
1. Java的强制类型机制、异常处理、垃圾的自动收集等是Java程 序健壮性的重要保证。
对指针的丢弃是Java的明智选择。

2. Java的安全检查机制使得Java更具健壮性