java流程控制考试题_2.13号Java复习题目——Java 中的运算符和流程控制(面试题)...

1. Java 中 i++ 和 ++i 有什么区别?

答:i 先赋值再运算(加一);i 先运算再赋值。

代码举例:

int i = 0;int i2 = i++;int j = 0;int j2 = ++j;

System.out.println("i2=" +i2);

System.out.println("j2=" + j2);

输出结果:i2=0,j2=1

2. 以下代码 i 的值是多少?

int i = 0;

i = i++;

System.out.println(i);

答:i=0

题目解析:因为 Java 虚拟机在执行 i++ 时,把这个值有赋值给了 i,而 i++ 是先赋值再相加,所以这个时候 i 接收到的结果自然是 0 了。

3. 以下代码 i2 和 i3 的值分别为多少?

int i = 0;int i2 = i++;int i3 = ++i;

答:i2=0,i3=2

4. 以下代码能不能正常执行?

if (true) System.out.println("laowang");

答:可以正常执行,其中判断条件的括号不能省略,大括号是可以省略的(并不建议为了省代码的而牺牲代码的可读性)。

5. 以下 switch 执行的结果是什么?

int num = 1;switch(num) {case 0:

System.out.print("0");case 1:

System.out.print("1");case 2:

System.out.print("2");case 3:

System.out.print("3");default:

System.out.print("default");

}

答:123default

6. switch 能否用于 byte 类型的判断上?能否用于 long 类型的判断上?

答:switch 支持 byte 类型的判断,不支持 long 类型的判断。

题目解析:switch 支持的全部类型(JDK 8):char、byte、short、int、Charachter、Byte、Short、Integer、String、enum。

7. while 必须配合 break 一起使用的说法正确吗?

答:错误,while 可以单独使用。

代码示例:

int i = 0;while (i < 3) {

System.out.println(++i);

}

8. 以下代码可以正常运行吗?为什么?

int i = 0;while (i < 3) {if (i == 2) {return;

}

System.out.println(++i);

}

答:可以正常运行,这里的 return 和 break 的效果是一致的,while 可以配合 return 或 break 一起使用。

9. 以下的程序执行结果什么?

int i = 0;do{

System.out.println(++i);

}while (i < 3)

答:编译器报错,do/while 之后必须使用分号 ; 结尾。

10. 以下程序输出的结果是?

String s = new String("laowang");

String s2= new String("laowang");

System.out.println(s==s2);switch(s) {case "laowang":

System.out.println("laowang");break;default:

System.out.println("default");break;

}

答:false,laowang

11. 以下代码循环执行了几次?

for (float i = 0; i != 10; i += 0.1) {

System.out.println("hi");

}

答:无数次,循环永远不会停下来。由于舍入误差,因为 0.1 无法精确的用二级制表示,所以上面代码到 0.9000001 之后,会直接跳到 1.0000001,不会等于 1,所以循环就永远不会停下来。

12. 以下代码输出的结果是?

int num = -4;

System.out.println(num% 2 == 1 || num % 2 == -1);

答:false

题目解析:-4 % 2 = 0 既不等于 1 也不等于 -1,所以结果为 false。

13. 以下代码输出的结果是?

int num = 4;

num= ((num & 1) == 1);

System.out.println(num);

A:4

B:1

C:以上都不是

答:C

题目解析:== 运算返回的是 boolean 类型,不能使用 int 接收,所以程序会报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Scrapy主要包括了以下组件: •引擎用来处理整个系统的数据流处理, 触发事务(框架核心) •调度器用来接受引擎发过来的请求, 压入队列, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址 •下载器用于下载网页内容, 并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的) •爬虫是主要干活的, 用于从特定的网页提取自己需要的信息, 即所谓的实体(Item)。用户也可以从提取出链接,让Scrapy继续抓取下一个页面 •项管道负责处理爬虫从网页抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项管道,并经过几个特定的次序处理数据。 •下载器间件位于Scrapy引擎和下载器之间的框架,主要是处理Scrapy引擎与下载器之间的请求及响应。 •爬虫间件介于Scrapy引擎和爬虫之间的框架,主要工作是处理蜘蛛的响应输入和请求输出。 •调度间件介于Scrapy引擎和调度之间的间件,从Scrapy引擎发送到调度的请求和响应。 Scrapy运行流程大概如下: 1.引擎从调度器取出一个链接(URL)用于接下来的抓取 2.引擎把URL封装成一个请求(Request)传给下载器 3.下载器把资源下载下来,并封装成应答包(Response) 4.爬虫解析Response 5.解析出实体(Item),则交给实体管道进行进一步的处理 6.解析出的是链接(URL),则把URL交给调度器等待抓取 scrapy框架实现豆瓣电影top250的爬取

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值