java复习知识点完整版.docx
- 文档编号:9237309
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:28
- 大小:44.97KB
java复习知识点完整版.docx
《java复习知识点完整版.docx》由会员分享,可在线阅读,更多相关《java复习知识点完整版.docx(28页珍藏版)》请在冰豆网上搜索。
java复习知识点完整版
1、Java是一种简单的、面向对象的、分布式的、强壮的、安全的、体系结构中立的、可移植的、高性能的、多线程的和动态的语言。
2、编译器——javac
javac的作用是将源程序(.java文件)编译成字节码(.class文件)。
Java源程序的后缀名必须是java。
javac一次可以编译一个或多个源程序,对于源程序中定义的每个类,都会生成一个单独的类文件。
例如,如果在A.java中定义了A、B、C三个类,则经过javac编译后要生成A.class,B.class,C.class三个类文件。
vjavac的调用格式为:
javac[选项]源文件名表
v其中源文件名表是多个带.java后缀的源文件名
3、Java的语言解释器——java
vjava命令解释执行Java字节码。
其格式为:
java[选项]类名〈参数表〉
这里的类名代表由编译器生成的带.class后缀的类文件名,但在上述命令不需要带后缀。
这个类必须是一个独立程序(不能是Applet),程序中必须带有一个按如下格式声明的main方法。
publicstaticvoidmain(String[]args){…}
v并且包含main方法的类的类名必须与类文件名相同,即与现在命令行中的“类名”相同。
v在执行java命令时,若类名后带有参数表,则参数表中的参数依次直接传递给该类中的main方法的args数组,这样在main方法中就可以使用这些数组元素。
解释运行的三个阶段:
(1)载入:
Java解释器中的类载入器将字节码文件加载到存(网上运行程序则通过网络下载到本地存);
(2)代码校验:
Java解释器中的代码检验器检查这些字节码的合法性;
(3)解释执行:
合法的字节码程序由Java解释器逐句地解释运行。
4、Java程序分两种:
vJavaApplication(Java应用程序):
是一个完整的应用程序,可以独立地运行
v运行在Java虚拟机(JVM)上
v中间代码
v必须有main函数
vJavaApplet(小应用程序):
不是一个完整的应用程序,而是框架程序中的一个模块,所以只能在WWW浏览器环境下运行
v可以没有main函数
v必须由某个支持java的浏览器来运行
5、利用编辑器编写Java源程序
v源文件名:
主类名.java
v利用编译器将源程序编译成字节码
v字节码文件名:
源文件名.class
v利用虚拟机(解释器)运行
v运行过程:
载入、代码校验、解释执行
Application程序
(1)Java语言标识符的字母区分大小写;
(2)一个程序可以由一个或多个类组成,其中必须有也只能有一个主类。
(3)源文件名必须与程序的主类名一致,并且以.java为其后缀。
6、变量是用标识符命名的数据项,是程序运行过程中其值可以改变的量。
vJava是强类型语言,这就意味着每一个变量都必须有一个数据类型。
为了描述一个变量的类型和名字,必须用如下方式编写变量声明:
类型变量名;
v使用变量之前必须先声明变量。
v声明变量包括两项容:
变量名和变量的类型。
通过变量名可使用变量包含的数据。
变量的类型决定了它可以容纳什么类型的数值以及可以对它进行什么样的操作。
v变量声明的位置,决定了该变量的作用域。
变量名应满足下面的要求:
Ø必须是一个合法的标识符。
Ø不能是一个关键字或者保留字(如true、false或者null)。
Ø在同一个作用域中必须是唯一的。
vJava语言规定标识符由字母、下划线(_)、美元符($)和数字组成,且第一个字符不能是数字。
其中,字母包括:
大、小写字母、汉字等。
v一般约定:
变量名是以小写字母开头。
如果变量名包含了多个单词,则在每个单词的第一个字母大写,如:
isVisible。
下划线“_”可以用在常数中用它分离单词,因为常数名都是用大写字母,用下划线可以更清晰。
7、
Java语言规提供了两种数据类型:
简单类型和引用类型。
引用类型可使用一个引用变量得到它的值或者得到由它所表示的值的集合,一个简单变量名是取该变量的真实值。
8、只有一个运算对象的运算符称为一元运算符。
一元运算符支持前缀和后缀运算符。
前缀运算符是指运算符出现在它的运算对象之前,例如:
operatorop//前缀运算符
v后缀运算符是指运算对象出现在运算符之前,例如:
opoperator//后缀运算符
需要两个运算对象的运算符号称为二元运算符。
比如赋值号(=)就是一个二元运算符。
所有的二元运算符使用中缀运算符,即运算符出现在两个运算对象的中间:
op1operatorop2//中缀运算符
三元运算符需要三个运算对象。
Java语言有一个三元运算符“?
:
”,它是一个简要的if-else语句。
三元运算符也是使用中缀运算符,例如:
op1?
op2:
op3//中缀运算符
9、
运算符
描述
?
:
作用相当于if-else语句
[]
用于声明数组,创建数组以及访问数组元素
.
访问对象的成员变量和方法
(params)
以逗号分开的参数系列
(type)
将某一个值转换为type类型
new
创建一个新的对象或者新数组
instanceof
决定第一个运算对象是否为第二个运算对象的一个实例
运算符
用法
返回true的情况
&&
op1&&op2
op1和op2都是true
||
op1||op2
op1或者op2是true
!
!
op
op为false
^
op1^op2
op1和op2逻辑值不相同
10、表达式是由运算符、操作数和方法调用,按照语言的语法构造而成的符号序列。
vJava语言的语句可分为以下几类:
·表达式语句
·复合语句
·控制语句
·包语句和引入语句
v其中,表达式语句是用分号“;”终止表达式的语句,包括:
·赋值表达式语句
·++、--语句
·方法调用语句
·对象创建语句
·变量的声明语句
11、控制语句用于改变程序执行的顺序。
程序利用控制语句有条件地执行语句、循环地执行语句或者跳转到程序中的其他部分执行语句。
vJava的控制语句有:
·if-else语句·for语句
·switch语句·跳转语句
·while和do-while语句·异常处理语句
switch(expression){
casevalue1:
{
statements1;
break;
}
….
casevalueN:
{
statementsN;
break;
}
[default:
{
defaultStatements;
}]
}
v表达式expression的返回值类型必须是这几种类型之一:
int、byte、char、short。
vcase子句中的值valueI必须是常量,而且所有case子句中的值应是不同的。
vdefault子句是任选的。
vbreak语句用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行。
如果某个case分支后没有break语句,程序将不再做比较而执行下一个分支。
vswitch语句的功能可以用if-else语句来实现,但某些情况下,使用switch语句更简炼。
vfor循环语句
for(initialization;termination;iteration)
{
body;//循环体
}
其中:
vinitialization:
初始化条件;
vtermination:
循环条件
viteration:
迭代,变更循环条件
初始化、终止以及迭代部分都可以为空语句(但分号不能省),三者均为空的时候,相当于一个无限循环。
在初始化部分和迭代部分可以使用逗号语句,来进行多个操作。
逗号语句是用逗号分隔的语句序列。
if(boolean-expression1){
statements1;
}
elseif(boolean-expression2)
{
statements2;
}else{
…
statementsN;
}
v布尔表达式boolean-expression是任意一个返回布尔数据类型的表达式,而且必须是.
v每个单一语句后面都要有分号。
为了增强程序的可读性,应将if或else后的语句用{}括起来。
velse子句是任选的,不能单独作为语句使用,它必须和if语句配对使用,并且总是与离它最近的if配对。
12、Java语言有3种跳转语句:
·break语句
·continue语句
·return语句
break语句
其功能是从该语句所在的switch分支或循环中跳转出来,执行其后继语句。
break语句的第二种使用情况就是跳出它所指定的块,并从紧跟该块后的第一条语句处执行。
continue语句
Øcontinue语句用来结束本次循环,跳过循环体中下面尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环。
对于for语句,在进行终止条件的判断前,还要先执行迭代语句。
它的格式为:
continue;
Ø也可以用continue跳转到括号指明的外层循环中,这时的格式为
continueouterLable;
return语句
Øreturn语句从当前方法中退出,返回到调用该方法的语句处,并从紧跟该语句的下一条语句继续程序的执行。
返回语句有两种格式:
returnexpression;//当方法需要返回某种类型数据时
return;//当方法的返回类型为void时
Ø单独一条return语句放在方法中间时,会产生“不可到达”编译错误,因为其后的语句将不会执行到。
若真需要退出方法,可以通过将return语句嵌入某些语句(如if-else)来使程序在未执行完方法中所有语句时退出。
13、数组的长度在数组创建的时候就已经确定。
一旦创建以后,数组就有了固定长度。
如图所示,数组的长度为10,第一个下标为0,下标为8的元素为第9个元素。
数组元素就是数组中的一个成员,可以通过数组中的位置来访问它。
声明一个数组
–声明数组时无需指明数组元素的个数,也不为数组元素分配存空间
–不能直接使用,必须经过初始化分配存后才能使用
int[]anArray;
创建一个数组
●用关键字new构成数组的创建表达式,可以指定数组的类型和数组元素的个数。
元素个数可以是常量也可以是变量
●基本类型数组的每个元素都是一个基本类型的变量;引用类型数组的每个元素都是对象的的引用
可使用Java的new运算符来创建一个数组
anArray=newint[10];
数组初始化程序
●声明数组名时,给出了数组的初始值,程序便会利用数组初始值创建数组并对它的各个元素进行初始化
inta[]={22,33,44,55};
●创建数组的时,如果没有指定初始值,数组便被赋予默认值初始值。
–基本类型数值数据,默认的初始值为0;
–boolean类型数据,默认值为false;
–引用类型元素的默认值为null。
●程序也可以在数组被构造之后改变数组元素值
boolean[]answers={true,false,true,true,false};
访问数组元素
anArray[i]=i;
确定数组的大小
arrayname.length
由同类型的对象为数组元素组成的数组称为对象数组。
数组可用于保存引用类型的多个对象。
Java的二维数组实质上是一维数组的数组,如图所示。
这个二维数组可用arrayOfInts.length代表其长度,该长度为一维数组的个数。
arrayOfInts[i].length表示第i行子数组的长度。
classGauss
{publicstaticvoidmain(String[]args)
{int[]ia=newint[101];
for(inti=0;i ia[i]=i; intsum=0; for(inti=0;i sum+=ia[i]; System.out.println(sum); } } publicclassArrays {publicstaticvoidmain(String[]args) {int[]a1={1,2,3,4,5}; int[]a2; a2=a1; for(inti=0;i for(inti=0;i System.out.println("a1["+i+"]="+a1[i]); } } 运行结果: a1[0]=2 a1[1]=3 a1[2]=4 a1[3]=5 a1[4]=6 14、二维数组的声明和构造 –int[][]myArray; ●myArray可以存储一个指向2维整数数组的引用。 其初始值为null。 –int[][]myArray=newint[3][5]; ●建立一个数组对象,把引用存储到myArray。 这个数组所有元素的初始值为零。 –int[][]myArray={{8,1,2,2,9},{1,9,4,0,3},{0,3,0,0,7}}; ●建立一个数组并为每一个元素赋值。 ●二维数组的长度 classUnevenExample2 {publicstaticvoidmain(String[]arg) {int[][]uneven= {{1,9,4}, {0,2}, {0,1,2,3,4}}; System.out.println("Lengthis: "+uneven.length); } } 运行结果: Lengthis: 3 15、对象(Object)有两个层次的概念: Ø现实生活中对象指的是客观世界的实体,它由状态(State)和行为(Behavior)构成; Ø程序中对象是现实世界对象的模型,是一组变量和相关方法的集合。 变量(Variables)表示现实对象的状态,方法(Methods)表现现实世界对象的行为,这些变量和方法叫做这个对象的成员(Member)。 v类(Class) 类是描述对象的“基本原型”,它定义一类对象所能拥有的数据和能完成的操作。 在面向对象的程序设计中,类是程序的基本单元。 相似的对象可以归并到同一个类中去,就像传统语言中的变量与数据类型关系一样。 将变量和方法封装在一个类中,可以对成员变量进行隐藏,外部对类成员的访问都通过方法进行,能够保护类成员不被非法修改。 v封装(Encapsulation) 封装把对象的所有组成部分组合在一起。 封装定义程序如何引用对象的数据,实际上是用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。 封装利于模块化和信息隐藏。 v子类(Subclass) 子类是作为另一个类的扩充或修正而定义的一个类。 v继承(Inheritance) 一个类从另一个类派生出来的过程叫继承。 这个类叫子类(派生类),而被继承的类叫该类的超类(父类)。 继承的子类可利用父类中定义的方法和变量,就像它们属于子类本身一样。 也可以改变继承来的方法和变量。 classCar {intcolor_number; intdoor_number; intspeed; publicvoidpush_break(){ … } publicvoidadd_oil(){…} } classTrash_CarextendsCar { doubleamount; publicvoidfill_trash() { … } } v方法的覆盖(override) 在子类中重新定义父类中已有的方法。 classCar {intcolor_number; intdoor_number; intspeed; publicvoidpush_break(){ speed=0; } publicvoidadd_oil(){…} } classTrash_CarextendsCar { doubleamount; publicvoidfill_trash(){…} publicvoidpush_break() { speed=speed–10; } } v方法的重载(Overload) 在同一个类中至少有两个方法用同一个名字,但有不同的参数列表。 使用重载方法时,Java编译器根据传递给这个参数的数目和类型确定正确的方法。 重载实现了对象的多态特性。 多态性的特点大大提高了程序的抽象程度和简洁性。 16、[类修饰符]class类名称[extends父类名称][implements接口名称列表] { 变量定义及初始化; 方法定义及方法体; } 类修饰符是下列之一: [public|abstract|final] public该关键字声明的类可以在其他的任何类中使用。 默认时,该类只能被同一个程序包中其他的类使用。 abstract—抽象类,没有具体对象的概念类,没有具体实现功能,只用于扩展子类。 例如: “鸟”,它可以派生出“鸽子”、“燕子”等具体类。 final—最终类,表示该类已经非常具体,没有子类可扩展。 17、类变量访问控制符 public: 任何其它类、对象只要可以看到这个类的话,那么它就可以存取变量的数据,或使用方法。 protected: 同一类,同一包可以使用。 不同包的类要使用,必须是该类的子类。 private: 不允许任何其他类存取和调用。 default: (前边没有修饰字的情况)在同一包中出现的类才可以直接使用它的数据和方法. 18、类变量 属于类的变量和方法——static static在变量或方法之前,表明它们是属于类的,称为类方法(静态方法)或类变量(静态变量)。 若无static修饰,则是实例方法和实例变量。 类变量的生存期不依赖于对象的实例,其它类可以不通过对象实例访问它们。 甚至可以在它的类的任何对象创建之前访问。 publicclassStaticVar {publicstaticintnumber=5; } publicclassOtherClass {publicvoidmethod() {intx=StaticVar.number; } } 19、方法的声明与实现 方法是类的动态属性。 对象的行为是由它的方法来实现的。 一个对象可通过调用另一个对象的方法来访问该对象。 与类一样,方法也有两个主要部分: 方法首部声明和方法体。 方法声明的基本形式为: 返回类型方法名(){ ……//方法体 } 方法声明的完整形式: [方法修饰符]返回类型方法名称(参数1,参数2,…)[throwsexceptionList] {…statements;//方法体: 方法的容 } 方法修饰符 [public|protected|private][static][final|abstract][native][synchronized] 返回类型可以是任意的Java数据类型,当一个方法不需要返回值时,返回类型为void。 参数的类型可以是简单数据类型,也可以是引用数据类型(数组、类或接口),参数传递方式是值传递。 方法体是对方法的实现。 它包括局部变量的声明以及所有合法的Java指令。 局部变量的作用域只在该方法部。 方法名可以是任何合法的Java标识符。 (1)方法可以重载 Java支持方法名重载,即多个方法可以共享一个名字。 (2)重载的方法不一定返回相同的数据类型,但参数必须有所区别: ·参数的类型不同。 例如,doubleIt(intx)和doubleIt(Stringx)方法的两个版本的参数的类型不一样。 ·参数的顺序不同。 这里是指一个方法有多个不同类型参数的情况,改变参数的顺序也算是一种区分方法。 ·参数的个数不同。 20、类方法 类方法独立于该类的任何对象,其他类不用实例化即可调用它们。 类方法可以调用其它的类方法 类方法只能访问static变量 类方法不能以任何形式引用this和super publicclassGeneralFunction{ publicstaticintaddUp(intx,inty) {returnx+y;} } publicclassUseGeneral{ publicvoidmethod(){ inta=9; intb=10; intc=GeneralFunction.addUp(a,b); //通过类名GeneralFunction引用addUp方法 } } 21.对象声明 像声明基本类型的变量一样,对象声明的一般形式为: 类名对象名; 声明一个引用变量时并没有对象生成(变量除了存储基本数据类型的数据,还能存储对象的引用,用来存储对象引用的变量称为引用变量) 为对象分配存及初始化 分配存及初始化形式如下: 对象名=new构造方法名([参数表]); 创建对象首先需说明新建对象所属的类,由与类同名的构造方法给出;然后要说明新建对象的名字,即赋值号左边的对象名;赋值号右边的new是为新建对象开辟存空间的运算符,用new运算符开辟新建对象的存之后,系统自动调用构造方法初始化该对象。 若类中没有定义构造方法,系统会调用默认的构造方法。 对象的使用 对象的使用是通过一个引用类型的变量来实现,包括引用对象的成员变量和方法,通过运算符“·”可以实现对变量的访问和方法的调用。 使用对象的基本形式如下: <对象>.<域变量名> <对象>.<方法名> 例如: BirthDatedate; intday; day=date.day;//引用date的成员变量day date.tomorrow();//调用date的方法tomorrow() 22、定义和使用构造方法 v构造方法是类的一种特殊方法,它的特殊性主要体现在如下几个方面: ·构造方法的方法名与类名相同。 ·构造方法没有返回类型。 ·构造方法的主要作用是完成对象的初始化工作。 ·
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 复习 知识点 完整版