下载  >  开发技术  >  Java  > java基础教程

java基础教程 评分

该教材详细讲解了java基础,也讲解了虚拟机的功能、垃圾回收机制和java代码安全
私塾跟我学系列—篇网址: 电话 ;是一种软件运行平1 :什么是软件的运行平台 如同我们需要阳光、空气、水和食物才能正常存活一样,软件最终要能够运行,也需要 一系列的外部环境,来为软件的运行提供支持,而提供这些支持的就是运行平台。 是一种运行平台 本身提供 软件所需要的运行环境, 应用可运行在安装了 的札器上,所以我们说是一个运行平台 运行环境 是一种软件部署环境 :什么是软件的部署 简单地讲,部署就是安装,就是把软件放置到相应的地方,并且进行相应的置(一般 称作部署描述),让软件能够正常运行起来。 是一种软件部署环境 身是一个开发的平台,开发后的程序也是运行在平台上的。也就是说, 开发后的程序也是部署在平台上的,这个尤其在后面学习(的企业版) 的时候,体现更为明显 :能干什么 能做的事情很多,涉及到编程领域的各个方面。 :桌面级应用:尤其是需要跨平台的桌面级应用程序 先解释一下桌面级应用:简单的说就是主要功能都在我们本机上运行的程序,比如 等运行在木机上的应用就属于桌面应用。 :企业级应用 先解释一下企业级应用:简单的说是大规模的应用,一般使用人数较多,数据量较大, 对系统的稳定性、安全性、可护展性和可装配性等都有比较高的要求。 这是目前应用最广泛的一个领域,儿乎一枝独秀。包括各种行业应用,企业信息 化,也包括电子政务等,领域涉及:办公自动化,客户关系管理,人力资源 企业资源计划 知识管理、供应链管理 企业设备管理系统 产品生命 周期管理、面向服务体系架构、商业智能、项日管理、营销管理、流程管 理 财务管理……等等几乎所有你能想到的应用。 :嵌入式设备及消费类电子产品 包括无线手持设备、智能卡、通信终端、医疗设备、信息家电(如数字电视、机顶盒、 电冰箱)、汽车电子改备等都是近年以来热门的应用领域,尤其是手机上的应用 程序和游戏,更是普及。 :除了上面提到的,还有很多功能:如进行数学运算、显示图形界面、进行网络操作、 进行数据库操作、进行文件的操作等等。 文件使用 试用版本创建 私塾跟我学系列—篇网址: 电话 三:有什么 体系比较庞杂,功能繁多,这也导致很多人在自学的时候总是感觉无法建立 仝面的知识体系,无法从整体上把握的原因。在这里我们先简单了解 的版本。 具体的体系知识结构,将在后面详细讲述。 分成三种版本,分别是标准版、微缩版和企业版, 每一和版本都有自己的功能和应用方向。 标准版 是公司针对桌面开发以及低端商务计算解决方案而开 发的版本,例如:我们平常熟悉的 桌面应用程序。这个版本是个础,它也是 我们平常开发和使用最多的技术, 的主要的技术将在这个版本中体现。本书主要讲的 就是 微缩版: 是对标准版进行功能缩减后的版本,于年月 第一次推向团体。它是一项能更好满足开发人员不同需求 的广泛倡议的一部分。 将定义为“一种以广泛的消费性产品为目标 的高度优化的运行时环境,包括寻呼机、移动电话、可视电话、数字机顶盒和汽车导 航系统。” 是致丿于消费产品和嵌入式设备的开发人员的最佳选择。尽答早期人们对它看好而 且开发人员团体中的热衷人士也不少,然而,最近才开始从其影响更大的同属 品和的阴影中走出其不成熟期。 在开发面向内存有限的移动终端例如寻呼机、移动电话的应用时,显得尤其实用。 因为它是建立在操作系统之上的,使得应用的开发无须考虑太多特殊的硬件配置类型或操作 系统。因此,开发商也无须为不同的终端建立特殊的应用,制造商也只需要简单地使它们的 操作平台可以支持便可。 企业版 是·种利用平台来简化企业解决方案的开发、部 署和管理相关的复杂问题的体系结构。技术的基础就是核心平台或平台的标 准版,不仅巩固了标准版中的诈多优点,例如“编写一次、随处运行”的特性、方便存 取数据库的 技术以及能够在 应用中保护数据的安仝模式等等, 同时还提供了对 以及技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时 间的体系结构。 体系结构提供中间层集成框架来满足无需太多费用而又需要高可用性、高可靠性以 及可扩展性的应用的需求。通过提供统的开发平台,降低了开发多层应用的费用和复 杂性,同时提供对现有应用程序集成强有力支持,完全支持 有良 好的向导支持打包和部署应用,添加了目录支持,增强了安全机制,提高了性能。 是对标准版进行功能扩展,提供一系列功能,用来解决进行企业应用开发中所血临 的复杂的问题。具体的我们会放到后面的课程去讲 三个版本之间的关系 几乎完全包含的功能,然后在的基础上添加了很多新的功能。 主要是的功能子集,然后再加上一部分额外添加的功能 文件使用 试用版本创建 私塾跟我学系列—篇网址: 电话 如下图所示: 的类库之中有一组所谓的核心类 即 ,在核心类之外还有 所谓的扩充类 即 。根据对这两种类的支持程度,进而区分出几 种不同的版本 我们必须以 作为基准,这个版本做了所有标准规格 之中所定义的核心类,也支持所有的基木类。定位在客户端程序的应用上 从往外延伸,其外面为 ,此版本除了支持所有的 标准核心类外,而且还增加了许多支持企业内部使用的扩充类,支持 /的 类、支持 的 类。当然,必定支 持所有的基本类。定位在服务器端 程序的应用上。 从向内看,是 ,它所支持的只有核心类的了集合,在 的规格之中,只支持 、以及 这些类。此版本 也增加了一些支持“微小装置”的扩充类,如 类。然而,此版 木并不支持所有的 基木类,就标准的 也就是能在 上执行的 来说,它就不支持属于浮点数 的基本类。 定位在嵌入式系统的应用上 最里层,还有一个的 版本,原本在的文件之中并没有这样定义 但是将它画在内部是很合理的。因为 版本只支持 这个核心类, 比起所支持的核心类更少,但它也有属于自凵的护充类,如 这些类。 版本只支持 与这两种基本类,此版本定位在 的应用上。 四:闲话 :历史 在上世纪年代初,公司有一个叫做的项目,目的是为家用消费电子产品 开发一个分布式代码系统,这样就可以对家用电器进行控制,和它们进行信息交流。詹姆 斯·高斯林( )等人基于开发一种新的语言 的前身。是 种用于网络的精巧而安全的语言。公司曾依此投标个交互式电视项目,但结果是被 打败,打算抛弃随着互联网的发展,看到了在计算机网络上的广应用 前景,于是改造,在年月以“”的名称正式发布,从此走上繁荣之路。 当然提到万史,不得不提的一个故事就是的命名。开始“”的命名是以 项目小组办公室外的树而得名,但是商标被其他公司注册了,必须另外取一个名字 传说有天,几位成员组的会员止在讨论给这个新的语言取什么名字,当时他们止在 咖啡馆喝着爪哇咖啡,有一个人灵机一动说就叫怎样,得到了其他人的赞同, 于是,这个名字就这样传开了。当然对于传说,了解一下就好了,不必过于认真。 大事记 文件使用 试用版本创建_ 私塾跟我学系列一篇网址 电话 作为学习的人士,对历史上发生的大事件有一个了解是应该的。 ): 软件开发工具包。是的核心,包 括了运行环境,一系刎开发工具和基础的类库。目前主流的是公 司发布的,除了之外,还有很多公司和组织都开发了自己的,例如公司开 发的 公司的 还有组织开发的等等。 时间 事件 年月日 语言诞生 年月 第个 诞生 年月日 发布 年月日 企业平台发布 年月 发布三个版本:标准版 企业 版 微型版 年月日 发布 年月 发布 :特点 简单地说,具有如下特点:简单的、面向对象、平台无关、多线程、分布式、安全、 晑性能、可靠的、解释型、自动垃圾回收等特点。 这里只解释一下平台无关和分布式,其余的在后面会逐步接触到。 :平台无关 所谓平台无关指的是:用写的程序不用修改就可在不同的软硬件平台上运行。这 烊就能实现同样的程序既可以在 下运行,到了或者环境不用修改就直 接可以运行了。主要靠虚拟机()实现平台无关性。 平台无关性就是一次编写,到处运行: :分布式 分布式指的是:软件山很多个可以独立执行的模块组成,这些模块被分布在多台计算机 上,可以同时运行,对外看起来还是个整体。也就是说,分布式能够把多台计算机集合起 来就像一台计算机一样,从而提供更好的性能。 :标准组织— 是一个开放的国际组织,成立于 年,主要职能 是发展和更新技术规范、参考实现()、技术兼容包() 技术和两者 的原创者都是计算机公司。组织成员可以提交 通过讨论、认可、审核以后,将进入到下一版本的规范里面。 也就是说是目前技术发展事实上的控制者和领导者。 五:如何做到让机器理解我们想要做的东西 用·个图来挡述这个过程会比较谷易理解: 文件使用 试用版本创建 私塾跟我学系列—篇网址: 电话 Runtime Compile 目 loader Byte code gavac Hello. java 到 etwork rentler Hello class Interpreter I ode Runtime generator t Hardware 编写代码 首先把我们想要计算机做的事情,通过表达出来,写成文件,这个过程就是 编写代码的过程。如上图所示的 文件。 :编译 写完代码后,机器并不认识我们写的代码,需要进行编译成为字节码,编译 后的文件叫做文件。如上图所示的 文件。 :类装载 类装载的功能是为执行程序寻找和装载所需要的类。 能够加强代码的安全性,主要方式是:把本机上的类和网络资源类相分离, 在调入类的时候进行检查,因而可以限制任何“特洛伊木马”的应用。 :字节码( )校验 功能是对 文件的代码进行校验,保证代码的安全忙。 软件代码在实际运行之前要经过几次测试。将代码输入一个字节码校验器以 测试代码段格式并进行规灲检查一一检査伪造指针、违反对象访问权限或试图改变对象类型 的非法代码 注意所有源于网终的类文件都要经过字节码校验器 字节码校验器对程序代码进行四遍校验,这可以保证代码符合规范并∏不破坏系统 的完整性。如果校验器在完成四遍校验后未返回出错信息,则下列各点可被保证: 类符合规范的类文件格式 无访问限制异常 代码木引起操作数栈上溢或下溢 所有操作代码的参数类型将总是正确的 无非法数据转换发生,如将整数转换为对象引用 对象域访问是合法的 :解释 可是机器也不能认识文件,还需要被解释器进行解释,机器才能最终理解我们所 要表达的东西。 文件使用 试用版本创建 私塾跟我学系列—篇网址: 电话 运行 最后由运行环境中的 对代码进行运行,真正实现我们想要机器完成的工作。 说明 由上面的讲述,大家看到,通过个编译阶段和个运行阶段,来让机器最终里解 我们想要它完成的工作,并按照我们的要求进行运行 在这两个阶段中,需要我们去完成的就是编译阶段的工作,也就是说:我们需要把我们 想要机器完成的工作用语言表达出来,写成源文件,然后把源文件进行编译,形 成文件,最后就可以在运行环境中运行了。运行阶段的工作由平台自身提供, 我们不需要做什么上作。 六:技术三大特性 :虚拟机 虚拟机( )在编程里面具有非常重要的地位,约 相当于前面学到的运行环境,虚拟机的基本功能如下: ():通过 寻找和装载 文件 ():解释字节码成为指令并执行,提供文件的运行环境 ():进行运行期间垃圾回收 ():提供与硬件交互的平台 虚拟札是在真实机器中用软件模拟实现的一种想象机器。虚拟札代码被存储 在 文件中;每个文件都包含最多一个类 虚拟机规范为不同的硬件平台 提供了·种编译技术代码的规沱,该规浥使软件独立于平台,因为编译是针对作 为虚拟机的“一般机器”而做。这个“一般机器”可用软件模拟并运行于各和现存的计算机 系统,也可用硬件米实现。编译器在获取应用程序的源代码后,将其生成字节码,它是 为生成的一种机器码指令。每个解释器,不管它是技术廾发工具,还是可运行 的浏览器,都可执行 为下列各项做出了定义 指令集(相当于中央处理器[ 寄存器 类文件格式 栈 垃圾收集堆 存储区 的代码格式由紧缩冇效的字节码构成。由字节码编写的程序必须保持适当的类 型约東。大部分类型检査是在编译时完成。仼任何从属的技术解释器必须能够运行仼何 含有类文件的程序,这些类文件应符合虚拟权规范中所指定的类文件格式 :虚拟机是平台无关的保障 正是因为有虚拟机这个中间层,才能够实现与平台无关。虚拟机就好比是一个 运行的基本平台,所有的程序都运行在虚拟机上,如下图所示: 文件使用 试用版本创建 私塾跟我学系列—篇网址: 电话 源程序文件 编译 类文件 文件 平台无关 被装载进入虚拟机 虚拟机 平台相关 解释执行字节码文件 :垃圾回收 什么是垃圾 在程序运行的过程中,存在被分配了的内存块不再被需要的情况,那么这些内存块对程 序来讲就是垃圾 产生了垃圾,自然就需要清理这些垃圾,更为重要的是需要把这些垃圾所占用的内存资 源,回收回来,加以再利用,从而节省资源,提扃系统性能。 垃圾回收 不再需要的分配内存应取消分配释放内存 在其它语言中,取消分配是程序员的责仟 编程语言提供了种系统级线程以跟踪内存分配 垃圾收集 可检查和释放不再需要的内存 可自动完成上述工作 可在实现周期中,产生意想不到的变化 许多编程语言都允许在程序运行时动态分配内存,分配内存的过程由于语言句法不同而 有所变化,但总是要将指针返回到内存的起始位置,当分配内有不雨需要时(内存指针已湓 出范围),程序或运行环境应释放内存。 在 或其它语言中,程序员负责释放内存。有吋,这是·件很困难的事情。因为 你并不总是事先知道内存应在何时被释放。当在系统中没有能够被分配的内有时,可导致程 序瘫痪,这种程序被称作具有内存漏洞 编程语言解除了程序员释放内存的贲仼。它可提供一种系统级线程以跟踪每一次 内存的分配情況。在虚拟机的空闲周期,垃圾收集线程检査并释放那些可被释放的内 存。垃圾收集在技术程序的生命周期中自动进行,它解除了释放内存的要求,这样能 够有效避免内冇漏洞和内存泄露(内存泄露就是程序运行期间,所占用的内存一直往上涨, 很容易造成系统资源耗尽而降低性能或崩溃) 文件使用 试用版本创建_ 私塾跟我学系列—篇网址: 电话 :提示 ():在里面,垃圾回收是一个自动的系统行为,程序员不能控制垃圾回收的功 能和行为。比如垃圾回收什么时候廾始,什么时侯结束,还有到底哪些资源需要回收等,都 是程序员不能控制的。 ():有些跟垃圾回收相关的方法,比如 记住“点,调用这些方法, 仅仅是在通知垃圾凹收程序,至于垃圾囗收程序运不运行,仆么时候运行,都是无法控制的。 ):程序员可以通过设置对象为(后面会讲到)来标示某个对象不再被需要了, 这只是表示这个对象可以被回收了,并不是马上被回收 :代码安全 如何保证编写的代码是安全可靠的呢? 第一关:编写的代码首先要被编译成为文件,如果代码写得有问题,编译期间 就会发现,然后提示冇编译错误,无法编译通过。 ():第二关:通过编译关后,在类装载的时候,还会进行类装载检查,把本机上的类和网 络资源类相分离,在调入类的时候进行检查,因而可以限制任何“特洛伊木马”的应用。 ():第三关:类装载后,在运行前,还会进行字节码校验,以判断你的程序是安全的 ():第四关:如果你的程序在网终上运行,还有沙箱( )的保护,什么是沙箱呢 就是如果你的程序没有获得授权,只能在沙箱限定的范围内运行,是不能够访问本地資源的, 从而保证安全性 如卜图所示: 装载检查 节码校验 编译检 学习到这里,大家应该对有了一定的了解了。现在是否想要看看程序究竞什 么样子昵?是不是想要体会一下如何开发程序呢?下面我们先米看看如何构建的 环境,这是进行程序开发的第一步。 文件使用 试用版本创建_

...展开详情
所需积分/C币:3 上传时间:2018-12-13 资源大小:1.47MB
举报 举报 收藏 收藏
分享 分享
基础Java 教程

这是一个适合初学者学习和参考的Java教程

立即下载
java教程下载

NULL 博文链接:https://daxiaoli123.iteye.com/blog/722178

立即下载