每日一练,java02

题目

选自牛客网

一、选择题

1.Java中基本的编程单元为:
A.类
B.函数
C.变量
D.数据
正确答案:A
java的基本编程单元是类,基本存储单元是变量。


2.在J2EE中,使用Servlet过滤器,需要在web.xml中配置()元素
A. filter
B.filter-mapping
C.servlet-filter
D.filter-config
正确答案:AB

在J2EE中,配置Servlet过滤器确实需要在web.xml中进行,正确答案是A和B。选项A <filter>
用于定义过滤器本身,包括过滤器的名字和过滤器的实现类。选项B <filter-mapping>
用于定义过滤器的应用范围,即哪些URL或Servlet需要通过这个过滤器。因此,正确配置Servlet过滤器需要同时使用
<filter><filter-mapping>
元素。选项C和D并不是标准的J2EE配置元素,因此不适用于Servlet过滤器的配置。


3.下列选项中是正确的方法声明的是?()
A.protected abstract void f1();
B.public final void f1() {}
C.static final void fq(){}
D.private void f1() {}
正确答案:ABCD


4.CMS垃圾回收器在那些阶段是没用用户线程参与的
A.初始标记
B.并发标记
C.重新标记
D.并发清理

正确答案:AC

CMS(Concurrent Mark
Sweep)垃圾收集器是一种以多线程并发方式工作的垃圾收集器,主要用于执行老年代的垃圾回收。它主要分为以下几个阶段:

A. 初始标记(Initial Mark) -
这个阶段是垃圾收集的开始阶段,需要暂停应用程序中的用户线程(Stop-the-World),以便收集器可以准确地标记与根对象直接或间接可达的对象。

B. 并发标记(Concurrent Mark) -
在这个阶段,垃圾收集器会并发地遍历堆中的对象图,标记所有存活的对象。这个阶段与用户线程并发执行,不需要用户线程参与。

C. 重新标记(Remark) -
这个阶段是为了修正并发标记阶段由于用户线程继续运行而导致标记可能产生变动的部分。重新标记也需要暂停用户线程,因为它需要保证在重新标记过程中对象的引用关系不再发生变化。

D. 并发清理(Concurrent Sweep) -
在这个阶段,收集器会并发地清理掉那些未被标记的对象,也就是那些无用的对象。这个阶段同样不需要用户线程的参与,可以与用户线程并发执行。

因此,正确答案是A和C,即初始标记和重新标记阶段是会暂停用户线程的。


5.下面有关jdbc statement的说法错误的是?
A.JDBC提供了Statement、PreparedStatement 和 CallableStatement三种方式来执行查询语句,其中 Statement 用于通用查询, PreparedStatement 用于执行参数化查询,而 CallableStatement则是用于存储过程
B.对于PreparedStatement来说,数据库可以使用已经编译过及定义好的执行计划,由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象”
C.PreparedStatement中,“?” 叫做占位符,一个占位符可以有一个或者多个值
D.PreparedStatement可以阻止常见的SQL注入式攻击

正确答案:C
选项C的说法是不准确的。在PreparedStatement中,“?”确实是作为参数的占位符,但每一个“?”占位符只对应一个值,而不是可以有多个值。当执行SQL语句时,每个“?”占位符将被设置的参数值所替换,每个占位符只能被一个具体的值所替代,而不能同时被多个值替换。因此,选项C是错误的描述。

其他选项的描述是正确的: A.
描述了JDBC中三种执行查询语句的方式,Statement用于基本的SQL语句执行,PreparedStatement用于参数化查询,而CallableStatement用于调用存储过程。
B. PreparedStatement确实因为预编译而具有更高的执行效率,数据库可以利用已编译的执行计划来优化SQL语句的执行。 D.
PreparedStatement的一个重要特性就是可以有效地防止SQL注入攻击,通过使用参数化查询,将输入值与SQL语句分离,避免了直接拼接SQL语句带来的安全风险。


6.局部内部类可以用哪些修饰符修饰?
A.public
B.private
C.abstract
D.final

正确答案:CD
实际上,局部内部类(局部类)可以被abstractfinal修饰符所修饰,但是不能被publicprivate这样的访问修饰符修饰,因为局部类定义在方法体内部,其作用域仅限于该方法,因此不需要访问修饰符。

  • abstract:可以用来声明一个局部内部类为抽象类,意味着它不能被实例化,只能被继承。
  • final:可以用来声明一个局部内部类为最终类,意味着它不能被继承。

然而,根据题目选项的正确答案标识为CD,这可能是一个误导,因为final修饰符对于局部内部类来说是合法的,但是privatepublic这样的访问修饰符对于局部类是不适用的,它们通常用于成员内部类。因此,正确的描述应当是局部内部类可以被abstractfinal修饰,但是不能被publicprivate修饰。如果题目的意图是询问哪些修饰符实际上可以被用来修饰局部内部类,那么正确的选项应该是Cabstract)。Dfinal)虽然语法上是允许的,但是它在局部内部类中的使用意义不大,因为局部类的作用域已经决定了它不可能被外部类的其他部分所访问,因此final的使用并不增加额外的访问控制。所以,如果从实际意义上来讲,最合适的答案应该是Cabstract)。但是,如果题目要求选择所有可能的修饰符,则应包括final,尽管其在局部类中的作用有限。因此,根据题目的表述,正确答案应为CD,尽管D的适用性在实际编程中可能并不常见。

二、判断题

1.//中可以嵌套//注释,也能嵌套//注释。
A.正确
B.错误
正确答案:B

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

布说在见

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值