一、Java的起源和特征
Java是SUN(Stanford University Network) 公司 于1995年推出的一种高级编程语言
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。
Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序
java主要分三块:
java se:java的基础核心语言。
java me:java的微型模块,专门针对内存小,没有持续电源等小型设备。
java ee:java的企业模块,专门针对企业数据库服务器的连接维护。
二、Java的优点
1.平台无关性
平台无关性是指Java能运行于不同的平台。
Java引进虚拟机 原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。Java的数据类型与 机器无关,Java虚拟机(Java Virtual Machine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能, 提供于不同平台的接口的。
2.安全性
Java的编程类似C++,学习过C++的读者将很快掌握Java的精髓。
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的工作平台
JaveSE JaveEE JaveME的区别
多数编程语言都有预选编译好的类库以支持各种特定的功能,在Java中,类库以包(package)的形式提供,不同版本的Java提供不同的包,以面向特定的应用。
Java平台包括标准版(JavaSE)、企业版(JavaEE)和微缩版(JavaME)三个版本:
JavaSE 包含那些构成Java语言核心的类。
比如:数据库连接、接口定义、输入/输出、网络编程
JavaEE 包含JavaSE 中的类,并且还包含用于开发企业级应用的类。
比如:EJB、servlet、JSP、XML、事务控制
JavaME 包含JavaSE中一部分类,用于消费类电子产品的软件开发。
比如:呼机、智能卡、手机、PDA、机顶盒
他们的范围是:JavaSE包含于JavaEE中,JavaME包含了JavaSE的核心类,但新添加了一些专有类应用场合,API的覆盖范围各不相同。
笼统的讲,可以这样理解:
JavaSE是基础;
压缩一点,再增加一些CLDC等方面的特性就是JavaME;
扩充一点,再增加一些EJB等企业应用方面的特性就是JavaEE。
补充一点JavaEE更恰当的说,应该是JAVA企业开发的技术规范,不仅仅是比标准版多了一些类。
JavaEE:针对企业网应用的、
JavaSE:针对普通PC应用的
JavaME:针对嵌入式设备及消费类电器的
对于初学者,都是从JavaSE入手的。
JavaEE和JavaSE的区别:
JaveEE是在JaveSE的基础上添加了一系列的企业级应用编程接口.J2EE包含有很多的技术!其中有你熟悉的jsp,servlet,jdbc,jme等13中技术!
JavaEE主要是用来做B/S结构的应用程序!也就是说是基于浏览器和服务器的!
JavaSE给我的感觉只需要一个容器就够了,JavaEE支持分布式组件可以同时存在多个容器
四、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指令,故具有平台无关性。
JDK和JRE
JRE: Java Runtime Environment
JDK:Java Development Kit
JRE是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。
JDK是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。
JDK包含了JRE ,如果你需要运行java程序,只需安装JRE就可以了。如果你需要编写java程序,需要安装JDK。
JDK安装文件夹中包含以下文件:
bin文件夹:提供了JDK的工具程序,包括javac、java、javadoc、appletviewer等程序;
db文件夹:Java实现的数据库;
include文件夹 : 一些供C语言使用的标题文件
jre文件夹:JDK自带的JRE;
lib文件夹:提供了工具程序使用的Java工具类;
src.zip压缩包:Java提供的API类的源代码压缩文件,如果将来需要查看API的某些功能是如何实现的,可查看这个文件中的源代码内容,Java的开源性在这里得到了很好的体现。
其中bin文件夹下的javac.exe和java.exe相当重要;
javac.exe:java程序编译器,可读取java源代码,并将其编译成字节码文件(*.class);
java.exe:java程序执行器,用来执行编译后的*.class文件。
五、配置环境变量
右击“计算机”,选择“属性——高级系统设置——高级——环境变量”进行环境变量的配置,如下:
CLASSPATH(指定类库文件的位置) .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
PATH(指定JDK命令文件的位置) 添加 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
JAVA_HOME(指定JDK安装位置) C:\Program Files\Java\jdk-10.0.2
完成以上设置后再在cmd中输入java 和javac 验证