二级Java复习资料 (1)

上传人:ns****g 文档编号:113477613 上传时间:2019-11-08 格式:DOCX 页数:36 大小:187.35KB
返回 下载 相关 举报
二级Java复习资料 (1)_第1页
第1页 / 共36页
二级Java复习资料 (1)_第2页
第2页 / 共36页
二级Java复习资料 (1)_第3页
第3页 / 共36页
二级Java复习资料 (1)_第4页
第4页 / 共36页
二级Java复习资料 (1)_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《二级Java复习资料 (1)》由会员分享,可在线阅读,更多相关《二级Java复习资料 (1)(36页珍藏版)》请在金锄头文库上搜索。

1、一、Java的历史、现状1.Java历史在上世纪90年代初,sun公司有一个叫做Green的项目,目的是为家用消费电子产品开发一个分布式代码系统,这样就可以对家用电器进行控制,和它们进行信息交流。詹姆斯高斯林(JamesGosling)等人基于C+开发一种新的语言Oak(Java的前身)。Oak是一种用于网络的精巧而安全的语言。Sun公司曾依此投标一个交互式电视项目,但结果是被SGI打败,Sun打算抛弃Oak。随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造Oak,在1995年5月以“Java”的名称正式发布,从此Java走上繁荣之路。当然提到Java历史,不得不提的

2、一个故事就是Java的命名。开始“Oak”的命名是以项目小组办公室外的树而得名,但是Oak商标被其他公司注册了,必须另外取一个名字,传说有一天,几位Java成员组的会员正在讨论给这个新的语言取什么名字,当时他们正在咖啡馆喝着Java(爪哇)咖啡,有一个人灵机一动说就叫Java怎样,得到了其他人的赞同,于是,Java这个名字就这样传开了。当然对于传说,了解一下就好了,不必过于认真。2.Java作为学习Java的人士,对Java历史上发生的大事件有一个了解是应该的。JDK(JavaSoftwareDevelopKit):Java软件开发工具包。JDK是Java的核心,包括了Java运行环境,一系列

3、Java开发工具和Java基础的类库。目前主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。3.Java特点简单地说,Java具有如下特点:简单的、面向对象、平台无关、多线程、分布式、安全、高性能、可靠的、解释型、自动垃圾回收等特点。这里只解释一下平台无关和分布式,其余的在后面会逐步接触到。3.1平台无关所谓平台无关指的是:用Java写的程序不用修改就可在不同的软硬件平台上运行。这样就能实现同样的程序既可以在Windows下运行,到了Unix或者Linux环境不用

4、修改就直接可以运行了。Java主要靠Java虚拟机(JVM)实现平台无关性。平台无关性就是一次编写,到处运行:Write Once, Run Anywhere3.2分布式分布式指的是:软件由很多个可以独立执行的模块组成,这些模块被分布在多台计算机上,可以同时运行,对外看起来还是一个整体。也就是说,分布式能够把多台计算机集合起来就像一台计算机一样,从而提供更好的性能。4.Java标准组织JCPJCP(Java Community Process) 是一个开放的国际组织,成立于 1995 年,主要职能是发展和更新 Java 技术规范、参考实现(RI) 、技术兼容包(TCK) 。Java 技术和 J

5、CP 两者的原创者都是 SUN 计算机公司。组织成员可以提交 JSR(Java Specification Requests) ,通过讨论、认可、审核以后,将进入到下一版本的规范里面。也就是说 JCP 是目前 Java 技术发展事实上的控制者和领领导者。二、Java从代码到运行用一个图来描述这个过程会比较容易理解:1.编写代码首先把我们想要计算机做的事情,通过 Java 表达出来,写成 Java 文件,这个过程就是编写代码的过程。如上图所示的 Hello.java 文件。2.编译写完 Java 代码后,机器并不认识我们写的 Java 代码,需要进行编译成为字节码,编译后的文件叫做 class

6、文件。如上图所示的 Hello.class 文件。3.类装载ClassLoader类装载的功能是为执行程序寻找和装载所需要的类。ClassLoader能够加强代码的安全性,主要方式是:把本机上的类和网络资源类相分离, 在调入类的时候进行检查,因而可以限制任何“特洛伊木马”的应用。4.字节码(byte-code)校验功能是对 class 文件的代码进行校验,保证代码的安全性。Java 软件代码在实际运行之前要经过几次测试。JVM 将代码输入一个字节码校验器以测试代码段格式并进行规则检查-检查伪造指针、 违反对象访问权限或试图改变对象类型的非法代码。注意-所有源于网络的类文件都要经过字节码校验器字

7、节码校验器对程序代码进行四遍校验, 这可以保证代码符合JVM 规范并且不破坏系统的完整性。如果校验器在完成四遍校验后未返回出错信息,则下列各点可被保证:- 类符合JVM规范的类文件格式- 无访问限制异常- 代码未引起操作数栈上溢或下溢- 所有操作代码的参数类型将总是正确的- 无非法数据转换发生,如将整数转换为对象引用- 对象域访问是合法的5.解释(Interpreter)可是机器也不能认识 class 文件,还需要被解释器进行解释,机器才能最终理解我们所要表达的东西。6.运行最后由运行环境中的 Runtime 对代码进行运行,真正实现我们想要机器完成的工作。7.说明由上面的讲述,大家看到,Ja

8、va通过一个编译阶段和一个运行阶段,来让机器最终理解我们想要它完成的工作,并按照我们的要求进行运行。在这两个阶段中,需要我们去完成的就是编译阶段的工作,也就是说:我们需要把我们想要机器完成的工作用 Java 语言表达出来,写成 Java 源文件,然后把源文件进行编译,形成 class 文件, 最后就可以在 Java 运行环境中运行了。 运行阶段的工作由 Java 平台自身提供,我们不需要做什么工作。三、Java程序设计基础1.Java编程概况现在你可以复习一下Java语言的背景材料,它的基本结构象C/C+,但任何用面向过程语言编写过程序的人都可以了解Java语言的大部分结构.1.1程序结构Ja

9、va语言的源程序代码由一个或多个编译单元(compilationunit)组成,每个编译单元只能包含下列内容(空格和注释除外):*一个程序包语句(packagestatement)*入口语句(importstatements)*类的声明(classdeclarations)*界面声明(interfacedeclarations)每个Java的编译单元可包含多个类或界面,但是每个编译单元最多只能有一个类或者界面是公共的。Java的源程序代码被编译后,便产生了Java字节代码。Java的运行系统工作起来如同一台虚拟机。在当前的Java实现中,每个编译单元就是一个以.java为后缀的文件。每个编译单

10、元有若干个类,编译后,每个类生成一个.class文件。.class文件是Java虚拟机能够识别的代码。1.2注释三种类型如下:/注释一行/*一行或多行注释*/*文档注释*/文档注释一般放在一个变量或函数定义前,指示在任何自动生成文档系统中调入。1.3标识符变量,函数,类和对象的名称都是标识符,程序员需要标识和使用的东西都需要标识符。在Java语言里,标识符以字符或_,$开头,后面可以包含数字,标识符是大小写有区别的,没有长度限制。有效的标识符mynameict_networkHello_sys_path$bill例子:inta_number;char_onechar;float$bill;1.

11、4数据类型Java使用五种基本类型:integer(整数),floating(浮点数),point(指针),Boolean(布尔变量),CharacterorString(字符或字符串)。integer整数下边给出的数据表示都是整数的例子:4,15,089,0xAD00整数长度数据类型表示8bitsbyte16bitsshort32bitsint64bitslongfloating浮点数下边给出的数据表示都是浮点数的例子:6.37,3.7E15,3e8浮点数长度数据类型表示32bitsfloat64bitsdoubleBoolean布尔变量下边是布尔变量的两种可能取值:truefalseCha

12、racter字符下边给出的都是字符的例子:at(tab)u?(unicode)String字符串下边给出的都是字符串的例子:Thisisastringliteral中国科学院计算所数组你可以定义任意类型的数组.chars;这是字符型数组;intarray;这是整型数组;你还可以定义数组的数组.intblock=newint23;数组边界在运行时被检测,避免堆栈溢出和内存崩溃.在Java里,数组实际上是一个对象,数组有一个成员变量:length。你可以用这个成员函数来查看任意数组的长度.inta=newint103a.length/*10*/a0.length/*3*/创建数组在Java里创建数

13、组,你可使用两种基本方法:创建一个空数组:intlist=newint50;或你可以用初始数值填充数组.Stringnames=Chenji,Yuan,Chun,Yang;相当于下面功能:Stringnames;names=newString4;names0=newString(Chenji);names1=newString(Yuan);names2=newString(Chun);names3=newString(Yang);在编译时你不能象下例那样创建静态数组。intname50;/将产生一个编译错误你也不能用new操作去填充一个没定义大小的数组。intname;for(inti=0;i

14、1.5表达式Java语言的表达式和C语言非常类似。运算符运算符(operator)优先级从高到底排列如下:.()+-!instanceof*/%+-=!=&|?:=op=,整数运算符在整数运算时,如果操作数是long类型,则运算结果是long类型,否则为int类型,绝不会是byte,short或char型。这样,如果变量i被声明为short或byte,i+1的结果会是int。如果结果超过该类型的取值范围,则按该类型的最大值取模。单目整数运算符是:运算符操作-单目非位补码+加1-减1+运算符用于表示直接加1操作。增量操作也可以用加运算符和赋值操作间接完成。+lvalue(表示lvalue+=1,

15、+lvalue也表示lvalue=lvalue+1(只要lvalue没有副作用)。-运算符用于表示减1操作。+和-运算符既可以作为前缀运算符,也可以做为后缀运算符。双目整数运算符是:运算符操作*+加-减*乘/除%取模&位与|位或位异或=,=和!=产生boolean类型的数据。布尔运算符布尔(boolean)变量或表达式的组合运算可以产生新的boolean值。单目运算符!是布尔非。双目运算符&,|和是逻辑AND,OR和XOR运算符,它们强制两个操作数求布尔值。为避免右侧操作数冗余求值,用户可以使用短路求值运算符&和|。用户可以使用=和!=,赋值运算符也可以用&=、|=、=。三元条件操作符?:和C语言中的一样。浮点运算符浮点运算符可以使用常规运算符的组合:如单目运算符+、-,双目运算符+、-、*和/,以及赋值运算符+=,-=,*=,和/=。此外,还有取模运算:%和%=也可以作用于浮点数,例如:a%b和a-(int)(a/b)*b)的语义相同。这表示a%b的结果是除完后剩下的浮点数部分。只有单精度操作数的浮点表达式按照单精度运算求值,产生单精度结果。如果浮点表达式中含有一个或一个以上的双精度操作数,则按双精度运

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > Windows相关

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号