牛客JAVA选择题第一周练习错题总结(50道)

   又到了每周的练习时间!本周通过对牛客网50道选择题的
   练习,是我对之前所学知识进行了进一步回顾~接下来我
   将重点对错题进行整理与解析。

下列语句中,正确的是
正确答案: B 你的答案: A (错误)
float x=0.0
boolean b=3>5
char c=“A”
double =3.14

这道题属于一道变量类型题目,在java中,float数据类型初始化时,必须使用后缀f,故A应为float x = 0.0f。注意,此题属于java类型题,故A错误,若属于C++类型题目,则A正确。B中,布尔值可以是一个表达式的值,但必须是一个true或false值,故B正确。C中,char类型必须为字符而不是字符串,故C错误。D中缺少变量名,故错误。

以下哪个式子有可能在某个进制下成立()?
正确答案: A 你的答案: 空 (错误)
1314=204
12
34=568
14*14=140
1+1=3

这道题属于进制变换题目,对于A,将13化为八进制则为:1×8+3=11,将14化为八进制则为:1×8+4=12,11×12=132。
将204化为八进制则为:2×8×8+4=132。故A正确。

java中下面哪些是Object类的方法()
正确答案: A B D 你的答案: C D (错误)
notify()
notifyAll()
sleep()
wait()

这道题考察Object类中的方法,A中notify()为唤醒在此对象监视器上等待的单个线程,A对。B中notifyAll()为唤醒在此对象监视器上等待的所有线程,B对。C中sleep()为Thread类中方法,故C错。D中wait()在其他线程调用此对象的noyify()方法或notifyAll()方法前,导致当前线程等待,D对。

以下哪些方法是Object类中的方法
正确答案: A B C D 你的答案: B C D (错误)
clone()
toString()
wait()
finalize()

此题依然考察Object类中的方法,A中clone()为创建并返回此对象的一个副本,A对。B中toString()为返回该对象的字符串表示,B对。C中wait()在其他线程调用此对象的notify()方法或notifyAll()方法前,导致当前线程等待,C对。D中finalize()在垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法,D对。

常用的servlet包的名称是?
正确答案: B D 你的答案: A (错误)
java.servlet
javax.servlet
servlet.http
javax.servlet.http

此题考查对Servlet包的了解。使用Java技术开发WEB应用程序,深入了解Servlet的机制对应用的开发将有重要的推动作用。Servlet包中最常用的为javax.servlet和javax.servlet.http,故B、D正确。

下面有关 java 类加载器,说法正确的是?()
正确答案: A B C D 你的答案: 空 (错误)
引导类加载器(bootstrap class loader):它用来加载 Java 的核心库,是用原生代码来实现的
扩展类加载器(extensions class loader):它用来加载 Java 的扩展库。
系统类加载器(system class loader):它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类
tomcat 为每个 App 创建一个 Loader,里面保存着此 WebApp 的 ClassLoader。需要加载 WebApp 下的类时,就取出 ClassLoader 来使用

此题考查java类的加载器。类的加载是由类加载器完成的,类加载器包括:根加载器、扩展加载器、系统加载器和用户自定义类加载器。从JDK1.2开始,类加载过程采用了父亲委托机制(PDM),更好地保证了java平台的安全性,在此机制中,JVM自带的Bootstrap是根加载器,其他的加载器都有且仅有一个父类加载器。类的加载首先请求父类加载器加载,父类加载器无能为力时才由其子类加载器自行加载。JVM不会向java程序提供对Bootstrap的引用,下面是关于几个类加载器的说明:
bootstrap:一般用本地代码实现,负责加载JVM基础核心类库(rt.jar);Extension:从java.ext.dirs系统属性所指定的目录中加载类库,它的父加载器是Bootstrap;system class loader:又叫应用类加载器,其父类是Extension。它是应用最广泛的类加载器。它从环境变量classpath或系统属性java.class.path所指定的目录中记载类,是用户自定义加载器的默认父加载器;用户自定义加载器:java.lang.ClassLoader的子类。

假设 A 类有如下定义,设 a 是 A 类的一个实例,下列语句调用哪个是错误的?()
public class A
{
public int i;
static String s;
void method1(){}
static void method2(){}
}
正确答案: C 你的答案: D (错误)
System.out.println(a.i);
a.method1();
A.method1();
A.method2();

此题考查静态成员和静态方法相关知识。静态成员和静态方法可以直接通过类名进行调用,其他的成员和方法则需要进行实例化成对象之后,通过对象来调用。故C中,method1()为非静态方法,故不能通过类名直接调用,C错。

关于下面程序 ThisTest .java 运行结果 说法正确的是 : ( )
public class ThisTest {
public static void main(String args[]) {
String x=“7”;
int y = 2;
int z=2;
System.out.println(x+y+z);
}
}
正确答案: B 你的答案: D (错误)
11
722
22
程序有编译错误

此题考查不同变量类型之间的运算。"+"两边若有一边为字符类型,则为字符串拼接,故此题输出应该为722,B对。若为y+z+x则输出结果为47。

有如下4条语句:()
Integer i01=59;
int i02=59;
Integer i03=Integer.valueOf(59);
Integer i04=new Integer(59);
以下输出结果为false的是:
正确答案: C 你的答案: B (错误)
System.out.println(i01i02);
System.out.println(i01
i03);
System.out.println(i03i04);
System.out.println(i02
i04);

此题考查对“==”的理解,通常比较的是地址,当为基本类型时,比较的是值;若两边均为包装类型,即为对象,比较的是地址;若两边有包装类型,即先将包装类型转化为基本类型再比较值是否相等。Byte,Short,Integer,Long,Character这五种整型的包装类也只是在对应值小于等于127并且大于等于-128时才可使用常量池。Integer.valueOf方法中也有判断,若传递的整型变量>=-128且小于等于127时会返回IntegerCache类中的一个静态数组中的某一个对象,否则会返回一个新的Integer对象。故C为false,因为new关键字开辟了一块新内存放置值为59的integer对象,故与i03的地址不同。

下面的程序 编译运行后,在屏幕上显示的结果是()
public class test {
public static void main(String args[]) {
int x,y;
x=5>>2;
y=x>>>2;
System.out.println(y);
}
}
正确答案: A 你的答案: B (错误)
0
2
5
80

此题考查位运算,>>为带符号右移,>>>为无符号右移,5的二进制表示为0101,符号右移两位为:0001,再将0001无符号右移2位,为0000,故结果为0。

下面属于java合法变量定义的是?
正确答案: C 你的答案: D (错误)
final
1var1
_var2
var3&

此题考查变量命名规则,final为关键字不能做变量名,A错。变量名首字母不能为数字,B错。下划线可以为变量名首字母,C对。不能与&组合命名,D错。

关于Java以下描述正确的有( )
正确答案: A 你的答案: B (错误)
native关键字表名修饰的方法是由其它非Java语言编写的
能够出现在import语句前的只有注释语句
接口中定义的方法只能是public
构造方法只能被修饰为public或者default

此题考查Java基本概念。native是由调用本地方法库(如操作系统底层函数),可以由C,C++实现,A对。import 用于导包,其前面可以出现package,用来声明包,B错误。接口方法的修饰符可以是:public,abstract,default,static(后两者需要有{}),C错误。构造方法可以用private,protected,default,private,D错误。

DBMS 中实现事务持久性的子系统是()
正确答案: D 你的答案: B (错误)
安全性管理子系统
完整性管理子系统
并发控制子系统
恢复管理子系统

此题考查对事务性质的理解。原子性:事务时一组不可分割的操作单元,这组单元要麽同时成功妖魔同时失败(由DBMS的事务管理子系统来实现);一致性:事务前后的数据完整性要保持一致(由DBMS的完整性子系统执行测试任务);隔离性:多个用户的事务之间不要相互影响,要相互隔离(由DBMS的并发控制子系统实现);持久性:一个事务一旦提交,那么他对数据库产生的影响就是永久的不可逆的,如果后面再回滚或者出异常,都不会影响已提交的事务(由DBMS的恢复管理子系统实现的)。故D对。

假定Base b = new Derived(); 调用执行b.methodOne()后,输出结果是什么?
public class Base
{
public void methodOne()
{
System.out.print(“A”);
methodTwo();
}
public void methodTwo()
{
System.out.print(“B”);
}
}
public class Derived extends Base
{
public void methodOne()
{
super.methodOne();
System.out.print(“C”);
}
public void methodTwo()
{
super.methodTwo();
System.out.print(“D”);
}
}
正确答案: A 你的答案: C (错误)
ABDC
AB
ABCD
ABC

此题考查多态中成员方法的使用规则。只要是被子类重写的方法,不被super调用即都是调用子类方法。即第一步b.methodOne()没有被super调用,故调用子类方法,调用时,由于super.methodOne,故再去调用父类方法,输出A,再调用子类methodTwo,再调用父类methodTwo,输出B,再输出D,再输出C。

类 ABC 定义如下:
1 . public class ABC{
2 . public double max( double a, double b) { }
3 .
4 . }
将以下哪个方法插入行 3 是不合法的。()
正确答案: B 你的答案: D (错误)
public float max(float a, float b, float c){ }
public double max (double c, double d){ }
public float max(float a, float b){ }
private int max(int a, int b, int c){ }

此题考察的是对函数重载的理解,函数重载的要求:方法名一致,形参列表不一致(即形参个数、形参类型不一致或不同类型的形参类型不一致,其中有一项不一致即可),并且与形参变量名是否相同无关。注意:与方法返回值无关,方法返回值类型可以相同也可以不同。故B仅改变变量名,故错误。

下面关于JAVA的垃圾回收机制,正确的是( )
正确答案: B 你的答案: B (正确)
当调用“System.gc()”来强制回收时,系统会立即回收垃圾
垃圾回收不能确定具体的回收时间
程序可明确地标识某个局部变量的引用不再被使用
程序可以显式地立即释放对象占有的内存

本题考查对java垃圾回收机制的认知,java提供了一个系统级的线程,即垃圾回收器线程。用来对每一个分配出去的内存空间进行跟踪。当JVM空闲时,自动回收每块可能被回收的内存,GC是完全自动的,不能被强制执行。程序员最多只能用System.gc()来建议执行垃圾回收器回收内存,但是具体的回收时间,是不可知的。当对象的引用变量被赋值为null,可能被当成垃圾。

下面有关JAVA异常类的描述,说法错误的是?
正确答案: D 你的答案: C (错误)
异常的继承结构:基类为Throwable,Error和Exception继承Throwable,RuntimeException和IOException等继承Exception
非RuntimeException一般是外部错误(非Error),其一般被 try{}catch语句块所捕获
Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形,Error不需要捕捉
RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等,必须被 try{}catch语句块所捕获

此题考查异常与错误。异常是指程序运行时(非编译)所发生的非正常情况或错误,当程序违反了语义规则时,JVM就会将出现的错误表示一个异常抛出。异常也是java的对象,定义了基类java\lang\throwable作为异常父类。这些异常类又包括error和exception两大类。error类异常主要是运行时逻辑错误导致,一个正确程序中是不应该出现error的,当出现error一般jvm会终止。exception表示可恢复异常,包括检查异常和运行时异常。检查异常是最常见的异常,比如:IO异常,sql异常,都发生在编译阶段。这类通过try\catch捕捉。而运行时异常编译器没有强制对其进行捕捉和处理。一般都会把异常向上抛出,直到遇到处理代码位置,若没有处理块就会抛到最上层,多线程用thread\run()抛出,单线程用main()抛出。常见的运行异常包括空指针异常、类型转换异常、数组越界异常、数组存储异常、缓冲区溢出异常、算数异常等。

Servlet的生命周期可以分为初始化阶段,运行阶段和销毁阶段三个阶段,以下过程属于初始化阶段是()。
正确答案: A C D 你的答案: A D (错误)
加载Servlet类及.class对应的数据
创建servletRequest和servletResponse对象
创建ServletConfig对象
创建Servlet对象

此题考查Servlet的生命周期相关知识。通常分为三个阶段:初始化阶段、运行阶段和销毁阶段。初始化阶段通常会加载Servlet类以及.class对应的数据;创建ServletConfig对象;创建Servlet对象。

Given the following code:
import EnclosingOne.InsideOne
class Enclosingone
{ public class InsideOne {}
}
public class inertest
{
public static void main(string[]args)
{
EnclosingOne eo = new EnclosingOne();
//insert code here
}
}
Which statement at line 11 constructs an instance of the inner class?
正确答案: A D 你的答案: 空 (错误)
InsideOne ei=eo.new InsideOne();
eo.InsideOne ei=eo.new InsideOne();
InsideOne ei=EnclosingOne.new InsideOne();
EnclosingOne.InsideOne ei=eo.new InsideOne();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值