一、 Java是什么?

1. Java是SUN(Stanford University Network) 公司 于1995年推出的一种高级编程语言
2. Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
3. Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
4. Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序
5. java主要分三块:

(1)J2SE:java的基础核心语言。包含那些构成Java语言核心的类。比如:数据库连接、接口定义、输入/输出、网络编程。
(2)J2EE:java的企业模块,专门针对企业数据库服务器的连接维护。 包含J2SE 中的类,并且还包含用于开发企业级应用的类。比如:EJB、servlet、JSP、XML、事务控制。
(2)J2ME:java的微型模块,专门针对内存小,没有持续电源等小型设备。包含J2SE中一部分类,用于消费类电子产品的软件开发。比如:呼机、智能卡、手机、PDA、机顶盒。

J2EE和J2SE的区别:
(1)J2EE是在J2SE的基础上添加了一系列的企业级应用编程接口.J2EE包含有很多的技术!其中有你熟悉的jsp,
servlet,jdbc,jme等13种技术!
(2)J2EE主要是用来做B/S结构的应用程序!也就是说是基于浏览器和服务器的!
(3)J2SE只需要一个容器就够了,J2EE支持分布式组件可以同时存在多个容器。

二、Java的优点

1. 平台无关性

(1)平台无关性是指Java能运行于不同的平台。
(2)Java引进虚拟机原理,并运行于虚拟机,实现不同平台的Java接口之间的互相引用。
(3)使用Java编写的程序能在世界范围内共享。Java的数据类型与 机器无关,Java虚拟机(Java Virtual Machine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能, 提供于不同平台的接口。

2. 安全性

(1)Java的编程类似C++,学习过C++的读者将很快掌握Java的精髓。
(2)Java舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒
通过指针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问。

3. 面向对象

  Java吸取了C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接口的设计和应用上。Java提供了众多的一般对象的类,通过继承即可使用父类的方法。在Java中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。
  Java提供的Object类及其子类的继承关系如同一棵倒立的树形,根类为Object类,Object类功能强大,经常会使用到它及其它派生的子类。

4. 分布式

  Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。

5. 健壮性

  Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自己操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能,这些功能特征大大提高了开发Java应用程序的周期。并且Java还提供了Null指针检测、数组边界检测、异常出口、Byte code校验等功能。

6. 解释型

  我们知道C,C++等语言,都是针对CPU芯片进行编译,生成机器代码,该代码的运行就和特定的CPU有关。Java不像C或C++,它不针对CPU芯片进行编译,而是把程序编译成称为自字节码的一种“中间代码”。字节码是很接近机器码的文件,可以在提供了java虚拟机(JVM)的任何系统上被解释执行

7. 动态

  java程序的基本组成单元就是类,有些类是自己编写的,有些是从类库中引入的,而类又是运行时动态装载的,这就使得Java可以在分部环境中动态的维护程序及分类,而不像C++那样,没档期类库升级以后,如果想让程序具有新类库提供的功能,就需要修改程序,重新编译。

三、Java可以从事的方向

1. Android应用

  如果你还在寻找Java在哪运用,你不用东奔西走的寻找,你的身边就是。

2. 服务器程序

  Java在金融服务业的应用非常广泛,大多数情况下,Java被用在服务器端开发

3. 网站领域

  同样,Java在电子商务领域以及网站开发领域占据这大部分席位。你可以运用许多不同的框架来创建web项目

4. 软件工具

  许多常用的软件和开发工具都是运用Java来编写和开发的。比如Eclipse。

5. 交易系统

  第三方交易系统,现已是金融服务产业的一个很大的部分,它们同样也是Java编写。

6. J2ME系统

  随着近几年IOS和Android的出现,几乎占据了J2ME市场,但仍然有诺基亚、三星手机使用J2ME。这个时代的大多数手机游戏,手机应用都采用J2ME的一部分MIDP和CLDC编写,以适应 Android系统。J2ME在蓝光,磁卡,机顶盒这些产品中流行。通信应用之所以这么火是因为Nokia的手机依旧支持J2ME。

7. 嵌入式领域

  Java 在嵌入式领域发展空间很大。在这个平台上,你只需130KB就能够使用 Java 技术(在智能卡或者传感器上)。最初,Java 被设计用来在嵌入书设备上工作。事实上,这只是其中的一个领域,这只是当初的“一次写入,随便畅游”的项目,现在看起来是这样了。

8. 大数据技术

  Hadoop以及其他大数据处理技术都是用Java或者其他

四、Java工作流程

  Java语言可分为java程序语言和Java平台,其中Java平台又包括各种硬件平台的java虚拟机(JVM)和
应用平台程序编程接口(javaAPI)。java程序语言只能运行在自己的Java平台上。

Java程序执行过程:

(1)在Java开发环境中进行程序代码的开发,最终形成后缀为.java的Java源文件;
(2)使用Java编译器对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节码文件
(可运行在JVM上,JVM负责翻译成当地CPU指令,实现跨平台);
(3)使用Java编译器将字节码文件翻译成机器代码,执行并显示结果。
.java文本文件——>java编译器——>.class文件——>JVM——>CPU指令(Windows、Unix、Linux跨平台))

补充:由于Java生成的并非是本机的CPU指令,而是一种中间语,可以被JVM解释成适用于各个平台的CPU指令,
故具有平台无关性。