【Java题】02-2020.3.7

问题1:

关于异常的编程,以下描述错误的是:( )
正确答案: A
你的答案: C (错误)

在有除法存在的代码处,为了防止分母为零,必须抛出并捕获异常

int i=Integer.parseInt(”123a”);将产生NumberFormatException

int a[]=null; a[0]=1; 将产生NullPointerException

输入输出流编程中,读和写时都要抛出IOException

解析:

分母为0 为运行时异常,jvm帮我们补货,无需代码里面显式捕获

问题2:

Java是一门支持反射的语言,基于反射为Java提供了丰富的动态性支持,下面关于Java反射的描述,哪些是错误的:( )
Java反射主要涉及的类如Class, Method, Filed,等,他们都在java.lang.reflet包下(×)

通过反射可以动态的实现一个接口,形成一个新的类,并可以用这个类创建对象,调用对象方法

通过反射,可以突破Java语言提供的对象成员、类成员的保护机制,访问一般方式不能访问的成员

Java反射机制提供了字节码修改的技术,可以动态的修剪一个类(×)

Java的反射机制会给内存带来额外的开销。例如对永生堆的要求比不通过反射要求的更多

Java反射机制一般会带来效率问题,效率问题主要发生在查找类的方法和字段对象,因此通过缓存需要反射类的字段和方法就能达到与之间调用类的方法和访问类的字段一样的效率(×)

解析:

A选项Class类位于lang包下面,D选项反射的本质就是从字节码中查找,动态获取类的整容结构,包括属性,构造器,动态调用对象的方法,而不是修剪类,F选项我觉得应该是,使用了反射的效率都会降低,就算加了缓存

延申内容:

内部类可以是静态static的,也可用public,default,protected和private修饰,
外部类的修饰符只能是public,abstract,final

你可能感兴趣的:(Java,Exam)