牛客错题集

来源:互联网 发布:mac软件卸载 编辑:程序博客网 时间:2024/06/05 17:32

1.下面那个不是标准Statement类?

A  Statement B PreparedStatement CCallableStatement DBatchedStatement
Statement在JDBC中相当于SQL语句的载体
A,Statement是最基本的用法,采用字符串拼接的方式,存在注入漏洞
B,PreparedStatement对Statement中的SQL语句进行预编译,同时检查合法性,效率高
C,CallableStatement接口扩展 PreparedStatement,用来调用存储过程,它提供了对输出和输入/输出参数的支持。CallableStatement 接口还具有对 PreparedStatement 接口提供的输入参数的支持。
D,不是标准的Statement类。 D

2.局部变量能否和成员变量重名?

A 可以,局部变量可以与成员变量重名,这时可用“this”来指向成员变量 B可以,这时可用“local”关键字来指向局部变量

C不能,局部变量不能与成员变量重名 D不能,在一个类中不能有重名变量,不管是成员变量还是函数中的局部变量
java采用局部优先的思想。局部变量可以和成员变量相同,使用标识符调用时,优先使用局部变量。在实例方法中出现变量名相同时,可以使用this关键字来调用。 A

3.下面有关java classloader说法错误的是?

AJava默认提供的三个ClassLoader是BootStrap ClassLoader,Extension ClassLoader,App ClassLoader BClassLoader使用的是双亲委托模型来搜索类的 CJVM在判定两个class是否相同时,只用判断类名相同即可,和类加载器无关 DClassLoader就是用来动态加载class文件到内存当中用的

一个jvm中默认的classloader有Bootstrap ClassLoader、Extension ClassLoader、App ClassLoader,分别各司其职:

  • Bootstrap ClassLoader     负责加载java基础类,主要是 %JRE_HOME/lib/ 目录下的rt.jar、resources.jar、charsets.jar和class等
  • Extension ClassLoader      负责加载java扩展类,主要是 %JRE_HOME/lib/ext 目录下的jar和class
  • App ClassLoader           负责加载当前java应用的classpath中的所有类。
JVM在判定两个class是否相同时,不仅要判断两个类名是否相同,而且要判断是否由同一个类加载器实例加载的。 C


4.java如何接受request域中的参数?

A request.getRequestURL() B request. getAttribute() Crequest.getParameter() Drequest.getWriter()
request.getAttribute()方法返回request范围内存在的对象,而request.getParameter()方法是获取http提交过来的数据。getAttribute是返回对象,getParameter返回字符串。String userName = request.getParameter("userName")方法。 C

5.在类Tester中定义方法如下,public double max(int x, int y) { // 省略 }则在该类中定义如下哪个方法头是对上述方法的重载(Overload)?

A public int max(int a, int b) {} B public int max(double a, double b) {} Cpublic double max(int x, int y) {}
D private double max(int a, int b) {}

Java 重载的规则:

1、必须具有不同的参数列表;

2、可以有不同的返回类型,只要参数列表不同就可以;

3、可以有不同的访问修饰符;

4、可以抛出不同的异常;

5、方法能够在一个类中或者在一个子类中被重载。

重载与返回值无关,与参数有关,只要参数的个数或者类型不同即可B

6.关于异常的编程,一下描述错误的是:()

A 在有除法存在的代码处,为了防止分母为零,必须抛出并捕获异常 B int i=Integer.parseInt(”123a”);将产生NumberFormatException Cint a[]=null; a[0]=1; 将产生NullPointerException D
输入输出流编程中,读和写时都要抛出IOException
异常分为运行时异常,非运行时异常和error,其中error是系统异常,只能重启系统解决。非运行时异常需要我们自己补获,而运行异常是程序运行时由虚拟机帮助我们补获,运行时异常包括数组的溢出,内存的溢出空指针,分母为0等! A

7.以下哪个类型是基本数据类型

A int B String C Byte D Float
java支持的语言类型分为:基本类型和引用类型。
基本类型包括boolean类型和数值类型,数值类型分为整型和浮点类型,整型包括:byte、short、int、long、char,浮点类型包括float和double。
引用类型包括类、接口和数组
Byte和Float属于基本类型的包装类型,属于引用类型。 String不属于基本数据类型。 A

8.



A  compiletime error Bprints:1 C prints:2 D prints:3 E prints:7 F prints:8
1.静态语句块中x为局部变量,不影响静态变量x的值
2.x和y为静态变量,默认初始值为0,属于当前类,其值得改变会影响整个类运行。
3.java中自增操作非原子性的 
main方法中:
  • 执行x--后 x=-1
  • 调用myMethod方法,x执行x++结果为-1(后++),但x=0,++x结果1,x=1 ,则y=0
  • x+y+ ++x,先执行x+y,结果为1,执行++x结果为2,得到最终结果为3 D