当前位置:网站首页 > Java基础 > 正文

java 基础 pdf



Java

经典入门教程

pdf

完整版

Java

私塾跟我学系列JAⅥ篇网址:htp:/www.lavass.Cn电话:010-

3;

Java

是一种软件运行平台

3.1:什么是软件的运行平台

如同我们需要阳光、空气、水和食物才能正常存活一样,软件最终要能够运行,也需要

系列旳外部环境,来为软件的运行提供支持,而提供这些支持的就是运行平台。

3.2:

Java

是一种运行平台

Java

本身提供

Java

软件所需要的运行环境,

Java

应用可运行在安装了JRE(

Java

Runtime environment)的机器上,所以我们说

Java

是一个运行平台。

JRE:

Java

Runtime Environment,

Java

运行环境。

4:

Java

是一种软件部署环境

4.1:什么是软件的部署

简单地讲,部署就是安装,就是把软件放置到相应的地方,并且进行相应的配置(一般

称作部署描述),让软件能够正常运行起来。

4.2:

Java

是一种软件部署环境

ava本身是一个

开发

的平台,

开发

后的

Java

程序也是运行在

Java

平台上的。也就是说,

开发

后的

Java

程序也是部署在

Java

平台上的,这个尤其在后面学习JEE(

Java

的企业版)

的时候,体现更为明显

:

Java

能干什么

JaⅦa能做的事情很多,涉及到编程领域的各个方面。

1:桌面级应用:尤其是需要跨平台的桌面级应用程序。

先解释一下桌面级应用:简单的说就是主要功能都在我们本机上运行的程序,比如

word、 excel等运行在木机上的应用就属」桌面应用。

2:企业级应用

先解释一下企业级应用:简单的说是大规模的应用,一般使用人数较多,数据量较大,

对系统的稳定性、安全性、可扩展性和可装配性等都有比较高的要求

这是目前

Java

应用最广泛的一个领域,几乎一枝独秀。包括各种行业应用,企业信息、

化,也包括电子政务等,领域涉及:办公自动化OA,客户关系管理CRM,人力资源HR,

企业资源计划ERP、知识管理KM、供应链管理SCM、企业设备管理系统EAM、产品生命

周期管理PLM、面向服务体系架构SOA、商业智能BⅠ、项日管理PM、营销管理、流程管

理 Work Flow、财务管理…..等几乎所有你能想到的应用

3:嵌入式设备及消费类电子产品

包括无线手持设备、智能卡、通信终端、医疗设备、信息家电(如数字电视、机顶盒

电冰箱)、汽车电子没备等都是近年以来热门的

Java

应用领域,尤其是手机上的

Java

应用

程序和

Java

游戏,更是普及。

4:除了上面提到的,

Java

还有很多功能:如进行数学运算、显示图形界面、进行网络操作、

进行数据库操作、进行文件的操作等等。

PDF

文件使用"

pdf

Factory Pro"试用版本创建ww, fineprint,cn

Java

私塾跟我学系列JAⅥ篇网址:htp:/www.lavass.Cn电话:010-

三:

Java

有什么

Java

体系比较庞杂,功能繁多,这也导致很多人在自学

Java

的时候总是感觉无法建立

全面的知识体系,无法从整体上把握

Java

的原因。在这里我们先简单了解一下

Java

的版本

具体的

Java

体系知识结构,将在后面详细讲述。

Java

分成三种版本,分别是

Java

标准版(JSE)、

Java

微缩版JME)和

Java

企业版(JE),

每一和版本都有自己的功能和应用方向。

1:

Java

标准版:JSE(

Java

standard Edition)

JSE(

Java

Standard edition)是sun公司针对桌面

开发

以及低端商务计算解决方案而开

发的版本,例如:我们平常熟悉的 Application桌面应用程序。这个版本是个基础,它也是

我们半常

开发

和使用最多的技术,

Java

的主要的技术将在这个版本中体现。本书主要讲的

就是JSF。

2:

Java

微缩版:JME(

Java

Micro edition)

JE(

Java

, Micro edition)是对标准版JSE进行功能缩减后的版本,于199年6月

由 Sun Microsystems第一次推向

Java

团体。它是一项能更好满足

Java 开发

人员不同需求

的广泛倡议的一部分。 Sun Microsystems将JM定义为“一种以广泛的消费性产品为目标

的高度优化的

Java

运行时环境,包括寻呼机、移动电话、可视电话、数字机顶盒和汽车导

航系统。”

JE是致丿于消费产品和嵌入式设备的

开发

人员的**选择。尽管早期人们对它看好而

Java 开发

人员团体中的热衷人土也不少,然而,J最近才开始从其影响更大的同属

品JEE和JSE的阴影中走出其不成熟期。

JME在

开发

面向內存有限的移动终端(例如寻呼机、移动电话)的应用时,显得尤其实用。

因为它是建立在操作系统之上的,使得应用的丌发无须考虑太多特殊的硬件配置类型或操作

系统。因此,

开发

商也无须为不同的终端建立特殊的应用,制造商也只需要简单地使它们的

操作平台可以攴持JM便可,

3:

Java

企业版:JEE(

Java

enterprise edition)

JE( ava Enterprise edition)是·种利用

Java

平台来简化企业解决方案的

开发

、部

著和管理相关的复杂问题的体系结构。JE技术的基础就是核心

Java

平台或

Java

平台的标

准版,JEE不仅巩固了标淮版屮的诈多优点,例如“编写一次、随处运行”的特性、方便存

取数据库的 JDBC API、 CORBA技术以及能够在 Internet应用中保护数据的安全模式等等,

同时还提供了对BJB( Enterprise

java

beans)、

Java

Servlets aPi、JSP(

Java

Server pages)

以及ⅫML技术的全面攴持。其最终目的就是成为一个能够使企业

开发

者大幅缩短投放市场时

间的体系结构。

JEE体系结构提供屮间层集成框架来满足无需太多费用而又需要高可用性、高可靠性以

及可扩展性的应用的需求。通过提供统的

开发

平台,J降低了

开发

多层应用的费用和复

杂性,同时提供对现有应用稈序集成强有力支持,完全支持 Entcrprise

java

beans,有良

好的向导攴持打包和部署应用,添加了目录攴持,增强了安全机制,提高了性能

JE是对标准版进行功能扩展,提供一系列功能,用来解决进行企业应用

开发

中所面临

的复杂的问题。具体的我们会放到后面JFE的课程去讲。

4:三个版本之间的关系

JE几乎完全包含JSE的功能,然后在JSE的基础上添加了很多新的功能。

JME主要是JSE的功能子集,然后冉加上一部分额外添加的功能

PDF

文件使用"

pdf

Factory Pro"试用版本创建ww, fineprint,cn

Java

私塾跟我学系列JAⅥ篇网址:htp:/www.lavass.Cn电话:010-

如下图所示

JEE

JSC

JME

Java

的API类库之中有一组所谓的核心类( Corellas,即

java

.*),在核心类之外还有

所谓的扩允类( xtended Class,即

Java

x.*)。根据对这两种类的支持程度,进而区分出几

种不同的

Java

版本。

我们必须以

Java

Standard Edition(JSE)作为基准,这个版本做了所有

Java

标准规格

之中所定义的核心类,也文持所有的

Java

基木类。JSE定位在客户端程序的应用上

从JSE往外延伸,其外面为

Java

Entcrprise edition(JEE),此版本除了支持所有的

标准核心类外,而且还增加了许多文持全业内部使用的扩充类,攴持 Servlet/JSP的

Java

x. servlet.*类、支持 Enterprise

Java

Bean的

java

x.ejb.*类。当然,JE必定支

持所有的

Java

基本类。JE定位在服务器端( server-side)程序的应用上。

从J5E向内看,是

Java

micro edition(JME),它所支持的只有核心类的了集合,在JME

CLDC的规格之中,只支持

java

.lang.*、

java

.io.*、以及

java

.uti1.*这些类。此版本

也增加了一些攴持“微小装置”的扩充类,如

Java

x. microedition.io.*类。然而,此版

木并不支持所有的

Java

基木类,就标准的 JMECLDO,也就是能在 Palmos上执行的

KwM( KVirtualmachine)来说,它就不支持属于浮点数( float、 double)的

Java

基本类。JME

定位在嵌入式系统的应用上

最里层,还有一个

Java

的 Smart card版本,原本在

Java

的文件之中并没有这样定义

但是将亡画在JⅦ内部是很合理的。因为 SmartCard版本具攴持

java

.lang*这个核心类,

比起JM所支持的核心类更少,但它也有属」自凵的扩充类,如

Java

card.*、

java

card.

这些类 Smartcard版本只支持 Boolean与Bytc这两种

Java

基本类,此版本定位在 SmartCard

的应用上

四:闲话

ava

1:

Java

历史

在上世纪90年代初,sun公司有一个叫做 Green的项目,目的是为家用消费电子广品

开发

一个分布式代码系统,这样就可以对家用电器进行控制,和它们进行信息交流。詹姆

斯·高斯林( James Gosling)等人基于C+

开发

一种新的

语言

0 ak (

java

的前身)。0ak是

种用于网络的精巧而安全的

语言

。Sun公司曾依此投标个交互式电视项目,但结果是被SGl

打败,Sun打算抛弃0ak。随着可联网的发展,Sun看到了0ak在计算机网络上的广阔应用

前景,于是改造0ak,在1995年5月以“

Java

”的名称正式发布,从此

Java

走上繁荣之路

当然提到Jaa历史,不得不提的一个故事就是

Java

的命名。开始“Oak”的命名是以

项目小组办公室外的树而得名,但是Oak商标被其他公司注册了,必须另外取一个名字

传说有天,几位

Java

成员组的会员正在讨论给这个新的

语言

取什么名字,当时他们止在

咖啡馆喝着

Java

(爪哇)咖啡,有一个人灵机一动说就叫

Java

怎杵,得到了其他人的赞同,

于是,

Java

这个名字就这样传开了。当然对于传说,了解一下就好了,不必过于认真

2:

Java

大事记

PDF

文件使用"

pdf

Factory Pro"试用版本创建ww, fineprint,cn

Java

私塾跟我学系列JAⅥ篇网址:htp:/www.lavass.Cn电话:010-

作为学习

Java

的人士,对

Java

历史上发生的大事件有一个了解是应该的。

JDK〔

Java

Software Develop kit):

Java

软件

开发

工具包。JIK是

Java

的核心,包

括了

Java

运行坏境,一系刎

Java 开发

工具和

Java

基础的类库。目前主流的JDK是Sun公

同发布的JDK,除了Sun之外,还有很多公司和组织都

开发

了自己的JD,例如IBM公司开

发的JD,BA公司的 Jrocket,还有GN组织丌发的JDK等等。

时间

事件

1995年5月23日

Java 语言

诞生

1996年1月

第个 JDK-JDK1.0诞生

1997年2月18日

JDK1.1发布

1998年12月8日

Java

2企业平台J2EE发布

1999年6月

Sun发布JaⅤa三个版本:标准版J2SF,企业

版J2EE,微型版JME

2004年9月30日

Java

se50发布

2006年12月

Java

java 基础 pdf se60发布

3:

Java

特点

简单地说,

Java

具有如下特点:简单的、面向对象、平台无关、多线程、分布式、安全、

晑性能、可靠的、解释型、自动垃圾回收等特点。

这里只解释一下平台无关和分布式,其余的在后面会逐步接触到

3:平台无关

所谓平台无关指的是:用

Java

写的程序不用修改就可在不同的软硬件平台上运行。这

烊就能实现同样的程序既可以在 Windows下运行,到了Unix或者 Linux环境不用修改就直

接可以运行了。

Java

主要靠

Java

虚拟机(JⅧM)实现平台无关性

平台无关性就是一次编写,到处运行: Write Once, Run Anywhere

32:分布式

分布式指的是:软件由很多个可以独立执行的模块组成,这些模块被分布在多台计算机

上,可以同时运行,对外看起来还是个整体。也就是说,分布式能够把多台计算机集合起

来就像一台计算机一样,从而提供更好的性能

4:

Java

标准组织—Cp

JCP(

Java

Community process)是一个开放的国际组织,成立于1995年,主要职能

是发展和更新

Java

技术规范、参考实现(RⅠ)、技术兼容包(TCK)。

Java

技术和JCP两者

的原创者都是SN计算机公司。组织成员可以提交JSR(

Java

Specification Requests),

通过讨论、认可、审核以后,将进入到下一版本的规范里面。

也就是说JCP是目前

Java

技术发展事实上的控制者和领导者。

五:

Java

如何做到让机器理解我们想要做的东西

用·个图来描述这个过程会比较谷易理解:

PDF

文件使用"

pdf

Factory Pro"试用版本创建ww, fineprint,cn

Java

私塾跟我学系列JAⅥ篇网址:htp:/www.lavass.Cn电话:010-

Runtime

Compile

Class

loader

Byte code

Verifier

Java

c Hello.

java

Netwo

Hello class

Interpreter

code

Runtime

generator/

Hardware

1:编写代码

首先把我们想要计算机做的事情,通过

Java

表达出来,写成

Java

文件,这个过程就是

编写代码的过程。如上图所示的 Hello

java

文件。

2:编译

写完Jaa代码后,机器并不认识我们写的

Java

代码,需要进行编译成为字节码,编译

后的文件叫做clas文件。如上图所示的 Hello, class文件。

3:类装载 Classloader

类裝载的功能是为执行程序寻找和装载所需要的类

Classloader能够加强代似的安全性,主要方式是:把本机上的类和內络资源类相分离,

在调入类的时候进行检查,因而可以限制任何“特洛伊木马”的应用。

4:字节码(byte-code)校验

功能是对 class文件的代码进行校验,保证代码的安全。

Java

软件代码在实际运行之前要经过几次测试。JWM将代码输入一个字节码校验器以

测试代码段格式并进行规则检査一一检査伪造指针、违反对象访问权限或试图改变对象类型

的非法代码。

注意-—所有源于网络的类文件都要经过字节码校验器

字节码校验器对程序代码进冇四遍校验,这可以保证代码符合JⅧM规范并∏不破坏系统

的完整性。如果校验器在完成四遍校验后未返回出错信息,则下列各点可被保证

类符合JWⅦM规范的类文件格式

无访问限制异常

代码木引起操作数栈上溢或下溢

所有操作代码的参数类型将总是正确的

无非法数据转换发生,如将整数转换为对象引用

对象域访问是合法的

5:解释( Interpreter)

可是机器也不能认识clas文件,还需要被解释器进行解释,机器才能最终理解我们所

要表达的东西

PDF

文件使用"

pdf

Factory Pro"试用版本创建ww, fineprint,cn

Java

私塾跟我学系列JAⅥ篇网址:htp:/www.lavass.Cn电话:010-

6:运行

最后由运行环境屮的 Runtime对代码进行运行,真正实现我们想要机器完成的工作

7:说明

由上面的讲述,大家看到,

Java

通过个编译阶段和个运行阶段,来让机器最终坦解

我们想要它完成的工作,并按照我们的要求进行运行

在这两个阶段屮,需要我们去完成的就是编译阶段的工作,也就是说:我们需要把我们

想要札器完成的工作用Jaa

语言

表达出来,写成

Java

源文件,然后把源文件进行编译,形

成 class文件,最后就可以在JaⅦa运行环境中运行了。运行阶段的工作由

Java

平台自身提供

我们不需要做什么上作。

六:

Java

技术三大特性

1:虚拟机

Java

虚拟机JM(

Java

Virtual Machine)在

Java

编程里面具有非常重要的地位,约

相当于前面学到的

Java

运行环境,虚拟机的基本功能如下:

(1):通过 Classloader寻找和装载 class文件

(2):解释字节码成为指令并执行,提供 class文件的运行环境

(3):进行运行期间垃圾回收

4):提供与硬件交互的平台

Java

虚拟杋是在真实札器中用软件模拟实现的—种想象机器。Jaa虚拟札代码被存储

在.clas文件中;每个文件都包含最多一个 public类。

Java

虚拟机规范为不同的硬件平台

提供了·种编译

Java

技术代码的规氾,该规范使

Java

软件独立于平台,因为编译是针对作

为虚拟机的“一般机器”而做。这个“一般机器”可用软件模拟并运行于各种现存的计算机

系统,也可用硬件米实现ε编译器在获取

Java

应用程序的源代码后,将其生成字节码,它是

为J硎M生成的一种机器码指令。每个

Java

解释器,不管它是

Java

技术廾发工具,还是可运行

applets的Wcb浏览器,都可执行JVM。

JWM为下列各项做出了定义

指令集(相当于中央处理器[CP])

寄存器

类文件格式

垃圾收集堆

存储区

JⅧM的代码格式由紧缩冇效的字节码构成。由J硎M字节码编写的程序必须保持适当的类

型约東。大部分类型检査是在编译时完成。任何从属的

Java

技术解释器必须能够运行仼何

含有类文件的程序,这些类文件应符合

Java

虚拟机规范中所指定的类文件格式

1.1:虚拟机是

Java

平合无关的保障

正是因为有虚拟机这个中间层,

Java

才能够实现与平台无关。虚拟机就好比是一个

Java

运行的基本平台,所有的

Java

程序都运行在虚拟机上,如下图所示:

PDF

文件使用"

pdf

Factory Pro"试用版本创建ww, fineprint,cn

Java

私塾跟我学系列JAⅥ篇网址:htp:/www.lavass.Cn电话:010-

Java

源程序(*

java

文件)

Java

c编译

ava类文件(*cass文什)

平台无

被装载进入虚拟机

Java

虚拟机

平台相关

解释执行字节码文件

Linux Windows

2:垃圾回收

2.1:什么是垃圾

在程序运行的过程中,存在被分配了的内存块不再被需要的情况,那么这些内存块对程

序来讲就是垃圾。

产生了垃圾,自然就需要清理这些垃圾,更为重要的是需要把这些垃圾所占用的内存资

源,回收回来,加以再利用,从而节省资源,提高系统性能。

2.2:垃圾回收

不再需要的凵分配内存应取消分配(释放内存)

在其它

语言

中,取消分配是

程序员

的责仟

Java

编程

语言

提供了种系统级线程以跟踪内存分配

垃圾攻集

可检查和释放不再需要的内存

可自动完成上述工作

可在JM实现周期中,产生意想不到的变化

许多编程

语言

都允许在程序运行时动态分配内存,分配内存的过程由于

语言

句法不同而

有所变化,但总是要将指针返回到内存的起始位置,当分配内存不再需要时(內存指针已溢

出范围),程序或运行环境应释放内存

在C,C艹+或其它

语言

中,

程序员

负责释放内存。有吋,这是件很困难的事情。因为

你并不总是事先知道内存应在何时被释放。当在系统中没有能够被分配的内有时,可导致程

序瘫痪,这种程序被称作具有内存漏洞

java

编程

语言

解除∫

程序员

释放内存的贲仼。它可提供一种系统级线程以跟踪每一次

内存的分配情況。在

Java

虚拟机的空闲周期,垃圾收集线程检查并释敚那些可被释放的内

存。垃圾收集在

Java

技术程序的生命周期中自动进行,它解除了释放内存的要求,这样能

够有效避免内存漏洞和内存泄露(内冇泄露就是程序运行期间,所占用的内存一直往上涨,

很容易造成系统资源耗尽而降低性能或崩溃)

PDF

文件使用"

pdf

Factory Pro"试用版本创建ww, fineprint,cn

Java

私塾跟我学系列JAⅥ篇网址:htp:/www.lavass.Cn电话:010-

2.3:提示

(1):在

Java

里面,垃圾回收是一个自动的系统行为,

程序员

不能控制垃圾回收的功

能和行为。比如垃圾回收什么时候开始,什么时侯结束,还有到底哪些资源需要回收等,都

程序员

不能控制的

(2):有些跟垃圾回收相关的方法,比如: System. gc(,记住“点,调用这些方法,

仅仅是在通知垃圾回收程序,全于垃圾回收程序运个运行,仆么时候运行,都是尢法控制的。

(3):

程序员

可以通过设置对象为nul(后面会讲到)来标示某个对象不再被需要了,

这只是表示这个对象可以被回收了,并不是马上被回收

3:代码安全

Java

如何保证编写的代仍是安全可靠的呢?

(1):第一关:编写的代码首先要被编译成为 class文件,如果代码写得有问题,编译期间

就会发现,然后提示有编译错误,无法编译通过。

(2):第二关:通过编译关后,在类装载的时候,还会进行类装载检查,把本机上的类和网

络资源类相分离,在调入类的时候进行检査,因而可以限制仁何“特洛伊木马”的应用

(3):第三关:类装载后,在运行前,还会进行字节校验,以判断你的程序是安全的。

(4):第四关:如果你的程序在网终上运行,还有沙箱( Sand box)的保护,什么是沙箱呢?

就是如果你的程序没有汏得授权,只能在沙箱限定的范围内运行,是不能够访问本地資源的,

从而保证安全性。

如下图所示:

Runtime

Compile

Java

class Loader匿载检查

Hello world.

java

Network

Byte code verifier

节码校验

Java

c

编译检耷

Hello World class

Interpreter

Runtime

Hardware

学习到这甲,大家应该对

Java

有了一定的了解了。现在是否想要看看

Java

程序究竟什

么样子呢?是不是想要体会一下如何

开发 Java

程序呢?下面我们先米看看如何构建JSE的

环境,这是进行

Java

程序

开发

的第一步,

  • 上一篇: 基础java工资
  • 下一篇: JAVA基础changeabc
  • 版权声明


    相关文章:

  • 基础java工资2025-04-25 19:18:02
  • java基础平台源码2025-04-25 19:18:02
  • java基础printstream2025-04-25 19:18:02
  • o基础学java2025-04-25 19:18:02
  • 谁的java基础2025-04-25 19:18:02
  • JAVA基础changeabc2025-04-25 19:18:02
  • java基础教学2032025-04-25 19:18:02
  • pc基础java软件2025-04-25 19:18:02
  • java的基础精髓2025-04-25 19:18:02
  • java基础知识编程课2025-04-25 19:18:02