Java面向对象选择题总结归纳
作者:kuls 发布时间:2023-08-05 23:30:21
把最近听的写的一些题目做下笔记!
1.下列程序的执行,说法错误的是 ( ABC )
public class MultiCatch {
public static void main(String args[]){
try{
int a=args.length;
int b=42/a; //10行
int c[]={1};
c[42]=99;
System.out.println("b="+b);
}catch(ArithmeticException e){
System.out.println("除0异常:"+e); // 15行
}catch(ArrayIndexOutOfBoundsException e) {
System.out.println("数组超越边界异常:"+e); // 19行
}
}
}
A、程序将输出第15行的异常信息
B、程序第10行出错
C、程序将输出”b=42”
D、程序将输出第15或者19行的异常信息
笔记:首先分析A选项,它说第15行将会输出异常信息,那我们先看下整个程序,int a =args.length 这一句是获取args数组的长度,这个地方也许很多人都不清楚,都认为这里就是空的,也就是长度为0,那么肯定会抛出异常的,但是其实这个main中的这个数组是可以赋值的(这里大家可以百度一下),这个赋值是很特殊的,所以A不对,不一定会抛出异常。
同样B也是一样的道理。
我们看C、程序将输出”b=42”。很显然如果args数组真为0,那么他会跳过System.out.println(“b=”+b);直接进入catch语句抛出异常,所以不一定会输出42。
看D、程序将输出第15或者19行的异常信息,很显然数组越界是百分之百会报错的,但是不一定会有除0异常,所以D对。
2. 此方法返回值是多少(B )
public static int divide(){
int i = 3;
try {
int a = 10/0;
return i;
} catch (Exception e) {
i = 4;
return i;
}finally{
i = 5;
}
}
A.3
B.4
C.5
D.报异常错误
分析:这个题确实有点坑,但是return掌握完全 就没问题了,相信大部分人选C,但实际答案确实B。我们先一步一步分析,首先try中的肯定会抛出异常,于是到了int a =10\0 的时候就直接跳到了catch语句中,此时i被赋值为4,并且此时return 返回 i值,我们都知道finally的语句中是最后一定会执行的,但是我们在catch中把 i 给返回了,其他的任何赋值都没用!!!
所以选B。
3。对于catch子句的排列,下列哪种是正确的( B )
A、父类在先,子类在后
B、子类在先,父类在后
C、有继承关系的异常不能在同一个try程序段内
D、先有子类,其他如何排列都无关
分析:我举两个
像底下这种,是可以的
public class MultiCatch {
public static void main(String args[]){
try{
。。。。此处省略
}catch(ArithmeticException e){ //子类异常
System.out.println("除0异常:"+e);
}catch(Exception e) {
System.out.println("异常:"+e); //父类异常
}
}
}
像底下这种就不行,回报错,因为Exception是很大的一个类,基本所有异常都继承于它,有了它就可以处理所有的异常,所以导致后面写的就没有意义,所以是错的
public class MultiCatch {
public static void main(String args[]){
try{
。。。。此处省略
}catch(Exception e){ //父类异常
System.out.println("异常:"+e);
}catch(ArithmeticException e) {
System.out.println("除0异常:"+e); //子类异常
}
}
}
好吧,今天就写这么多,以后会继续给大家分享我做的一些题目
来源:https://blog.csdn.net/qq_36547531/article/details/81659929


猜你喜欢
- 本文实例展示了DevExpress实现自定义TreeListNode的Tooltip的方法,具体方法如下所示:主要功能代码如下:/// &l
- 突然学到了,所以就放到博客上来共享一下,权当是学习日记吧。首先说明一下,数组是引用类型的,所以注意不要在复制时复制了地址而没有复制数值哦!其
- Eclipse的Servers视图中无法添加Tomcat6/Tomcat7的方法引言: 在基于Eclipse的开发过程中,出现了无法在Ecl
- 这篇文章主要介绍了springboot @Configuration @bean注解作用解析,文中通过示例代码介绍的非常详细,对大家的学习或
- 环境操作系统windows10JDKjdk1.8.0_192IDEEclipse IDE for Enterprise Java Devel
- 今天看一个教程,看到一个颜色渐变的ProgressBar,觉得有点意思,所以记录一番。下面这个是效果图颜色渐变的ProgressBar看到效
- 一、简介SHA-256 是 SHA-2 下细分出的一种算法。截止目前(2023-03)未出现“碰撞”
- 本文实例为大家分享了Android实现跟随手指画圆的具体代码,供大家参考,具体内容如下首先自己定义一个View子类:package com.
- 本文实例讲述了Java实现的并发任务处理方法。分享给大家供大家参考,具体如下:public void init() { super.init
- TreeMap 的实现就是红黑树数据结构,也就说是一棵自平衡的排序二叉树,这样就可以保证当需要快速检索指定节点。TreeSet 和 Tree
- 本文实例为大家分享了android自定义Camera实现录像和拍照的具体代码,供大家参考,具体内容如下源码:package com.exam
- 本文实例讲述了java采用中文方式显示时间的方法。分享给大家供大家参考。具体如下:其中t为秒,比如有时候需要计算两个任务相差多久,或者该任务
- 我就废话不多说了,大家还是直接看代码吧~//returnContent为获取到的返回参数System.out.println(returnC
- 项目结构src com servletdemo
- 前言:回顾上一节服务器配置的内容,我们已经可以自己完成公众号服务器的配置。配置完成之后,我们就可以通过调用的方式,完成对消息管理的处理。当用
- 前言最近在做物联网课设,过程中需要用到Android的蓝牙API,奈何原生的蓝牙API使用有点麻烦。于是上网搜索看有没有好用的Android
- Android系统提供了MediaScanner,MediaProvider,MediaStore等接口,并且提供了一套数据库表格,通过Co
- 当我们在做前后端分离的开发时,在使用fetch交换数据的时候,提示Access-Control-Allow-Origin跨域问题,解决方案跟
- 一、Socket 基础知识1.1 Socket 概述Socket 指的是“插座”,是应用层与传输层之
- 主要通过System.Resources.ResourceManager类中GetString和GetObject两个方法。两个方法的返回值