Java复习第一篇

第一章、Java初体验

经验技巧分享

1.多练

2.多问

3.及时总结

第二章、变量和常量

2-1、Java中的关键字

Java语言中有一些具有特殊用途的词被称为关键字。

Java中常用的关键字:

abstractbooleanbreakbytecasecatch
charclasscontinuedefaultdodouble
elseextendsfalsefinalfinallyfloat
forifimplementsimportinstanceofint
interfacelongnativenewnullpackage
privateprotectedpublicreturnshortstatic
superswitchsynchronizedthisthrowthrows
transienttruetryvoidvolatwhile

任务:把voiD修改为void

2-2、认识Java标识符

标识符就是用于给Java程序中变量、类、方法等命名的符号。

使用标识符时,需要遵守几条规则:

1.标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含@、%、空格等其它特殊字符,不能以数字开头。譬如:123name就是不合法滴
2.标识符不能是 Java 关键字和保留字( Java 预留的关键字,以后的升级版本中有可能作为关键字),但可以包含关键字和保留字。如:不可以使用 void 作为标识符,但是 Myvoid 可以
3.标识符是严格区分大小写的。所以涅,一定要分清楚 imooc 和 IMooc 是两个不同的标识符哦!
4.标识符的命名最好能反映出其作用,做到见名知意。

任务:因为标识符不能包含%等特殊符号,所以要将HelloWorld%修改为HelloWorld。

2-3、练习题

以下标识符命名符合规范的是(B)
 A 123rate
 B marks _3
 C discount %
 D my name

2-4、变量是什么

简单的说,我们可以把变量看作是个盒子,可以将钥匙、手机饮料等物品存放在这个盒子中,也可以在需要的时候换成我们想存放的新物品。

任务:给hobby这个变量赋值即可

2-5、如何命名Java变量

1、变量名由多单词组成时,第一个单词的首字母小写,其后单词的首字母大写,俗称骆驼式命名法(也称驼峰命名法),如 myAge 
2、变量命名时,尽量简短且能清楚的表达变量的作用,做到见名知意。如:定义变量名 stuName 保存"学生姓名"信息
 PS : Java 变量名的长度没有限制,但 Java 语言是区分大小写的,所以 price 和 Price 是两个完全不同的变量哦!
任务:先定义String类型的变量a并给它赋值为我爱慕课网,再定义一个String类型的变量b赋值为www.imooc.com,最后输出a和b

2-6、Java中的数据类型

在Java中有8种基本数据类型来储存数值,字符和布尔值。

  1. 基本数据类型:数值型,字符型,布尔型。
  2. 数值型分为:整数类型(byte,short,int,long)和浮点类型(float,double)。
  3. 字符型:char,转义字符"\"。
  4. 布尔型:false,true。

2-7、Java中变量的使用规则

1.变量的使用是程序设计中一个重要的环节,声明变量就是告诉编译器这个变量的数据类型。
2.在程序运行过程中,空间内的值是变化的,这个内存空间就称为变量。
3.在声明变量时可以是没有赋值,也可以是直接赋初值。
例如,声明一个整数型变量和声明一个字符型变量,代码如下:
int age;              //声明一个int型变量

char char1 = 'r'; //声明char型变量并赋值

注意:变量名必须是一个有效的标识符;变量名不可以使用Java中的关键字;变量名不能重复;应选择有意义的单词作为变量名。

2-8、练习题

下列语句中,正确的完成整型变量的声明和赋值的是(B)
 A int count , count =0;
 B int count =0;
 C count =0;
 D int count1;

2-9、自动类型转换

数据类型转换
数据类型转换包括隐式类型转换,显示类型转换。数据类型的精度从低到高的排名为:byte<short<int<long<float<double。
隐式类型转换:从低级类型向高级类型的转换,系统将自动执行,程序员无须进行任何操作。注意:隐式类型转换一定不会丢失数据。

2-10、强制类型转换

显式类型转换:显示类型转换又称(强制类型转换),当把高精度的变量的值赋给低精度的变量时,必须使用显示类型转换运算。注意:显示类型转换有可能会丢失数据。

2-11、常量的应用

声明常量
在程序运行过程中一直不会改变的量。
通常称为“final变量”。
常量在整个程序中只能被赋值一次。
例如,声明常量 a,(程序中用PI表示)代码如下
final double PI = 3.14;//声明 double型常量PI并赋值

注意当变量被final关键字修饰时,该变量就变成了常量,必须在定义时就设定它的初值,否则就会发生编译错误

2-12、如何在Java中使用注释

  (1)单行注释:通常用于对程序中的某一行代码进行解释,用符号“//”表示,“//”后面为被注释的内容,具体如右:int c = 10;//定义一个整数类型的变量并赋值。

  (2)多行注释:顾名思义就是在注释中的内容可以为多行,它的符号以“/*”开头,以“*/”结尾,

多行注释具体示例如右:/*int c = 10;

                                          int x = 5;*/

 (3)文档注释:以“/**”开头,并在注释内容末尾以“*/”结束。

2-13、练习题

以下为 Java 中的多行注释声明的是(D)
 A //这是注释
 B */这是注释*/
 C /这是注释
 D /*这是注释*/

第三章、常用的运算符

3-1、什么是运算符

运算符是一种功能符号,用以通知Java进行相关的运算。例如,我们需要将变量age的值设置为20,这时候就要一个“=”告诉程序程序需要进行赋值操作。

Java语言中常用的运算符可分为如下几种:

算术运算符、赋值运算符、比较运算符、逻辑运算符、条件运算符

3-2、Java中的算数运算符

 算数运算符
Java中的算数运算符主要有加(+),减(-),乘(*),除(/),求余(%),它们都是二元运算符。
Java中算数的功能及使用方式(如下表)。注意,“+”和“-”运算符还可以作为数值的正负符号,例如+6,-6。
在进行除法运算时,0不能做除数。例如,对于语句“int a = 5 / 0;”,系统会抛出ArithemticException异常。
使用算数运算符进行模拟计算器(如下图)。

操作符描述例子
+加法 - 相加运算符两侧的值A + B 等于 30
-减法 - 左操作数减去右操作数A – B 等于 -10
*乘法 - 相乘操作符两侧的值A * B等于200
/除法 - 左操作数除以右操作数B / A等于2
取余 - 左操作数除以右操作数的余数B%A等于0

3-3、Java中的赋值运算符

赋值运算符是以符号“=”表示,它是一个二元运算符,其功能是将右方操作数所含的值赋给左方的操作数。例如:int a = 100;该表达式是将100赋值给变量a。
左方的操作数必须是一个变量,而右边的操作数则可以是任何表示,包括变量(如a,number),常量(如123,‘book’)有效的表达式。

3-4、Java中的比较运算符

比较运算符属于二元运算符,用于程序中的变量之间,变量和自变量之间以及其他类型的信息之间比较。
比较运算符的运算结果是Boolean型,当运算符相对应的关系成立时,运算结果为true,否则为false。
所有比较运算符通常作为判断的依据用在条件语句中,比较运算符共有六个(如下表)。

3-5、Java中的逻辑运算符

  1. 逻辑运算符包括逻辑与(&&),逻辑或(||),逻辑非(!)。
  2. 逻辑运算符的操作元必须是Boolean型数据,在逻辑运算符中,除了“!”是一元运算符,其他都是二元运算符。
  3. 逻辑运算符表格,其中1表示真,0表示假,详细如下表。
  4. 操作符描述例子
    &&两者都为真,结果才是真(1&&1)为真,(1&&0)为假。
    | |只要有一者为真,结果就是真(1| |0)为真。
    非真即假,非假即真   !1     为假。

3-6、练习题

以下运算结果为 true 的是(C)
 A (5>2)&&( false )
 B ( false ) II (5<2)
 C ( true )&&(2<5)
 D !(2<5)

3-7、Java中的条件运算符

  1. 三元运算符的使用格式为:条件式 ?  值1 :值2 。
  2. 三元运算符的运算法则为:若条件式为真(true),则执行值1,条件式为假(false),则执行值2。

3-8、Java中运算符的优先级

Java中的表达式就是使用运算符连接起来的符号Java规则的式子。
运算符的优先级决定了表达式中运算执行的先后顺序。
运算符的优先级顺序,通常顺序如:增量和减量运算>算数运算>比较运算>逻辑运算>赋值运算。
注意:在编写程序时尽量使用括号来指定运算次序,以免产生错误的运算顺序。

3-9、练习题

下列运算符(C)的优先级最高?
 A !运算符
 B =运算符
 C ()运算符
 D &&运算符

3-10、练习题

表达式(11+3*8)/4%3的结果是(D)
 A 答案:3
 B 答案:0
 C 答案:1
 D 答案:2

第四章、流程控制语句

4-1、Java条件语句之if

可根据不同的条件执行不同的语句,用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下执行另外的语句。
使用if条件语句,可选择是否要执行紧跟在条件之后的那个语句。关键字if之后是作为条件的“布尔表达式”。如果该表达式返回结果为true,则执行其后语句;如果为false,则不执行if条件之后的语句。

语法:if(条件){

条件成立时执行的代码

}

4-2、Java条件语句之if...else

if...else语句是条件语句中最常用的一种形式,它会针对某种条件有选择地做出处理。通常表现为“如果满足某种条件,就进行某种处理,否则就进行另一种处理”。
if后面“()”内的表达式的值必须是Boolean型的。如果表达式的值为true,则执行紧跟if语句的复合语句;如果表达式的值为false,则执行else后面的复合语句。
同if条件语句一样,如果if...else语句的语句序列只有一条语句,则可以省略该语句序列外面的“{}”。有时为了编程需要,else或if后面的“{}”中可以没有语句。

语法:if(条件的布尔表达式){

代码块1

}else{

代码块2

}

4-3、Java条件语句之多重if

多重if语句,在条件1不满足的情况下,才会进行条件2的判断;当前面的条件均不成立时,才会执行else块内的代码。例如,如果考试成绩大于90分,则奖励一个IPHONE 5S,如果成绩介于70至90分之间,则奖励一个红米,否则罚做500个俯卧撑。

语法:if(条件1){

代码块1

}else if(条件2){

代码块2

}else{

代码块3

}

4-4、Java条件语句之嵌套if

嵌套if语句,只有当外层if的条件成立时,才会判断内层if的条件。

语法:if(条件1){

if(条件2){

代码块1

}else{

代码块2

}

}else{

代码块3

}

4-5、练习题

Java 中关于 if 语句描述错误的是(C)
 A if 语句是根据条件判断之后再做处理的一种语法结构
 B 关键字 if 后小括号里面条件表达式的值必须为布尔类型
 C if 后小括号里的表达式的值为 false 时,程序需要执行后面大括号里的语句
 D if 语句可以和 else 一起使用

4-6、Java条件语句之switch

当需要对选项进行判断时,使用switch语句更加简洁明了。

switch语句中表达式的值必须是整型,字符型,字符串类型或枚举类型,常量值1~n的数据类型必须与表达式的值的类型相同。
switch语句首先计算表达式的值,如果表达式的计算结果和某个case后面的常量值相同,则执行该case语句后的若干个语句直到遇到break语句为止。此时,如果该case语句中没有break语句,将继续执行后面的case中的若干个语句,直到遇到break语句为止。若没有一个常量的值与表达式的值相同,则执行default后面的语句。default语句为可选的,如果它不存在,且switch语句中表达式的值不与任何case的常量值相同,switch语句则不做任何处理。
注意:同一个switch语句,case语句的常量值必须不相同。

语法:

switch(表达式){

case 值1:

执行代码块1

break;

case 值2:

执行代码块2

break;

case 值n:

执行代码块n

break;

default:

默认执行的代码

}

4-7、Java循环语句之while

语法:while(判断条件){

循环操作

}

执行过程:

<1>、判断while后面的条件是否成立(true/false)

<2>、当条件成立时,执行循环内的操作代码,然后重复执行<1>、<2>,直到循环条件不成立为止

特点:先判断,后执行

4-8、Java循环语句之do...while

语法:

do{

循环操作

}while(判断条件);

执行过程:

<1>、先执行一遍循环操作,然后判断循环条件是否成立

<2>、如果条件成立,继续执行<1>、<2>,直到循环条件不成立为止

特点:先执行,后判断

由此可见,do...while语句保证循环至少被执行一次

4-9、Java循环语句之for

语法:for(循环变量初始化;循环条件;循环变量变化){

循环操作

}

执行过程:

<1>、执行循环变量初始化部分,设置循环的初始状态,此部分在整个循环中只执行一次

<2>、进行循环条件的判断,如果条件为true,则执行循环体内代码;如果为false,则直接退出循环

<3>、执行循环变量变化部分,改变循环变量的值,以便进行下一次条件判断

<4>、依次重新执行<2>、<3>、<4>,直到退出循环

特点:相比whlie和do...whlie语句结构更加简洁易读

4-10、练习题

下列关于循环说法错误的是(B)
 A while 循环先判断后执行, do ..… while 先执行后判断
 B do ..… while 循环结束的条件是 while 后的条件成立
 C do .… while 循环的循环体至少无条件执行一次
 D for 语句构成的循环可以用其他循环语句替换

4-11、Java循环跳转语句之break

在Java中,我们可以使用break语句退出指定的循环,直接执行循环后面的代码。

4-12、Java循环跳转语句之continue

continue的作用是跳过循环体中剩余的语句执行下一次循环。

4-13、练习题

以下关于循环跳转说法正确的是(B)
 A continue 语句的作用是结束整个循环的执行
 B 可以在循环体内和 switch 语句体内使用 break 语句
 C 循环体内使用 break 语句和 continue 语句的作用相同
 D switch 语句体内必须有 break

4-14、Java循环语句之多重循环

循环体中包含循环语句的结构称为多重循环。三种循环语句可以自身嵌套,也可以相互嵌套,最常见的就是二重循环。在二重循环中,外层循环每执行一次,内层循环要执行一圈。

第五章、阶段练习

5-1、编程练习

第六章、数组

6-1、什么是数组

6-2、练习题

定义一个数组 int[ ] scores = { 1, 2, 3, 4, 5, 6, 7 } ,数组中的 score[3] 指的是( D)

A答案:1

B答案:2

C答案:3

D答案:4

6-3、如何使用 Java 中的数组

Java 中操作数组只需要四个步骤:

1、 声明数组

语法:  数据类型[ ] 数组名;

或者   数据类型 数组名[ ];

其中,数组名可以是任意合法的变量名,

2、 分配空间

简单地说,就是指定数组中最多可存储多少个元素

语法:  数组名 = new  数据类型 [ 数组长度 ];

其中,数组长度就是数组中能存放元素的个数

话说,我们也可以将上面的两个步骤合并,在声明数组的同时为它分配空间

3、 赋值

分配空间后就可以向数组中放数据了,数组中元素都是通过下标来访问的,例如向 scores 数组中存放学生成绩

4、 处理数组中数据

我们可以对赋值后的数组进行操作和处理,如获取并输出数组中元素的值

在 Java 中还提供了另外一种直接创建数组的方式,它将声明数组、分配空间和赋值合并完成

任务:

6-4、练习题

下列数组的初始化正确的是(B)

Aint[ ] score = new int[ ];

Bint score[ ] = new int[ ] { 34, 90, 87, 54, 24 };

Cint[ ] score = new int[ 4 ] { 90, 12, 34, 77 };

Dint score = { 78, 23, 44, 78 };

6-5、使用循环操作 Java 中的数组

 数组名.length  用于获取数组的长度

需要注意的“小毛病”:

1、 数组下标从 0 开始。因此 scores[3] ,表示数组中的第 4 个元素,而并非第 3 个元素

2、 数组下标的范围是 0 至 数组长度-1 ,如果越界访问,就会报错。

任务:

6-6、编程练习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是第十版Java教材第九章复习题的答案: 1. 什么是接口?如何声明一个接口? 接口是一种抽象数据类型,它定义了一组方法,但没有提供方法的实现。它只是指定了方法名、参数列表和返回类型。可以通过实现接口来提供方法的具体实现。 接口声明使用interface关键字,如下所示: ``` public interface MyInterface { public void method1(); public int method2(String str); } ``` 2. 什么是抽象类?如何声明一个抽象类? 抽象类是一个不能被实例化的类,它只能被继承。抽象类可以包含抽象方法和非抽象方法。抽象方法没有具体的实现,而是由子类提供实现。 抽象类声明使用abstract关键字,如下所示: ``` public abstract class MyAbstractClass { public abstract void method1(); public void method2() { // implementation } } ``` 3. 接口和抽象类有什么区别? 接口只能包含抽象方法和常量,而抽象类可以包含非抽象方法和属性。另外,类只能继承一个类,但可以实现多个接口。 4. 什么是函数式接口?如何声明一个函数式接口? 函数式接口是只包含一个抽象方法的接口。它们通常用于Lambda表达式和方法引用。 函数式接口声明使用@FunctionalInterface注解,如下所示: ``` @FunctionalInterface public interface MyFunctionalInterface { public void method(); } ``` 5. Lambda表达式是什么?如何使用Lambda表达式? Lambda表达式是一种匿名函数,它可以作为参数传递给方法或赋值给变量。它的语法如下: ``` (parameter1, parameter2, ...) -> expression ``` 例如: ``` Arrays.sort(names, (String s1, String s2) -> s1.compareTo(s2)); ``` 这个Lambda表达式定义了一个比较字符串的方法,并传递给Arrays.sort方法。 6. 方法引用是什么?如何使用方法引用? 方法引用是一种简化Lambda表达式的方式,它允许你引用已经存在的方法并将其作为Lambda表达式传递给方法或赋值给变量。它的语法如下: ``` ClassName::methodName ``` 例如: ``` Arrays.sort(names, String::compareTo); ``` 这个方法引用引用了String类的compareTo方法,并传递给Arrays.sort方法。 7. Stream是什么?如何使用Stream? Stream是一种在集合上进行复杂操作的方式。它提供了过滤、映射、排序等操作。Stream的操作可以是中间操作或终端操作。中间操作返回一个Stream对象,终端操作返回一个非Stream对象(如List、Map等)。 例如: ``` List<String> names = Arrays.asList("Alice", "Bob", "Charlie"); List<String> filteredNames = names.stream() .filter(name -> name.startsWith("A")) .collect(Collectors.toList()); ``` 这个代码使用Stream过滤以"A"开头的字符串,并将结果存储在List中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Violet Evegarden

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值