欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 文化 > 每日一练,java06

每日一练,java06

2025/2/21 16:45:20 来源:https://blog.csdn.net/m0_67187271/article/details/140733945  浏览:    关键词:每日一练,java06

这里写目录标题

  • 题目
    • 1.局部变量能否和成员变量重名?
    • 2.下面哪个不属于HttpServletResponse接口完成的功能?
    • 3.以下代码结果是什么?
    • 4.实现或继承了Collection接口的是()
    • 知识点
      • 局部变量与成员变量重名
      • equals与==
      • HttpServletResponse 接口

题目

选自牛客网

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

A.可以,局部变量可以与成员变量重名,这时可用“this”来指向成员变量
B.可以,这时可用“local”关键字来指向局部变量
C.不能,局部变量不能与成员变量重名
D.不能,在一个类中不能有重名变量,不管是成员变量还是函数中的局部变量

正确答案:A局部变量可以和成员变量重名。在 Java
中,当局部变量与成员变量重名时,局部变量会屏蔽成员变量,即局部变量在该作用域内优先级更高。如果不加“this”修饰,那么默认使用的是局部变量。如果要引用成员变量,需要明确使用“this”关键字来指明。


2.下面哪个不属于HttpServletResponse接口完成的功能?

A.设置HTTP头标
B.设置cookie
C.读取路径信息
D.输出返回数据

正确答案:C HttpServletResponse 接口用于处理 HTTP 响应,它提供了许多方法来设置 HTTP 头标、添加
cookie、设置响应状态码、写入响应正文等。但是,读取路径信息并不属于 HttpServletResponse
接口的功能。相反,读取路径信息通常是由 HttpServletRequest 接口提供的功能。因此,C 选项不属于
HttpServletResponse 接口完成的功能。


3.以下代码结果是什么?

public class foo {
public static void main(String sgf[]) {

    StringBuffer a=new StringBuffer("A");StringBuffer b=new StringBuffer("B");operate(a,b);System.out.println(a+"."+b);
}
static void operate(StringBuffer x,StringBuffer y) {x.append(y);y=x;
}

}
A.代码可以编译运行,输出“AB.AB”。
B.代码可以编译运行,输出“A.A”。
C.代码可以编译运行,输出“AB.B”。
D.代码可以编译运行,输出“A.B”。

正确答案:C

代码可以编译运行,输出“AB.B”。 在 foo 类的 main 方法中,声明了两个 StringBuffer 对象 a 和 b,并分别初始化为 “A” 和 “B”。然后,调用 operate 方法,将 a 和 b 作为参数传递。在 operate 方法中,x.append(y) 将 y 的值追加到 x 的末尾,因此 x 的值变为 “AB”。接着,y=x 将 x 的引用赋值给 y,即 y 也指向了 “AB”。但是,需要注意的是,y 的原始值 “B” 并没有改变,只是 y 的引用指向了 x 对象。因此,在 main 方法中输出 a+b 的结果为“AB.B”。 在 operate 方法中,x 和 y 的值都被改变了,但 y 的原始值并没有改变。因此,当返回到 main 方法时,a 的值为 “AB”,而 b 的值仍为 “B”。所以,最终输出的结果为“AB.B”。


4.实现或继承了Collection接口的是()

A.Map
B.List
C.Vector
D.Iterator
E.Set
正确答案:BCE
在这里插入图片描述

Collection接口是集合层次结构的根,所有的集合类都是直接或间接地实现或继承了Collection接口。下面是对选项的分析:

A.
Map:不是Collection的实现或继承者。Map接口与Collection接口并列,用于处理键值对的集合。Map不继承Collection接口,因为它存储的是键值对,而Collection只存储元素。

B.
List:是Collection的子接口。List接口继承自Collection接口,提供了一个有序的元素集合,可以包含重复元素。

C.
Vector:是List接口的实现类之一。Vector是一个线程安全的List实现,它继承自AbstractList,实现了List接口,因此间接实现了Collection接口。

D.
Iterator:不是Collection的实现或继承者。Iterator是一个用于遍历集合的接口,它与Collection接口没有继承关系。

E. Set:是Collection的子接口。Set接口继承自Collection接口,提供了一个不包含重复元素的集合。

因此,正确答案是BCE,即ListVectorSet,它们都实现了或继承了Collection接口。

正确答案:BCE

知识点

局部变量与成员变量重名

例如,以下代码展示了局部变量与成员变量重名,并且没有使用“this”关键字的情况:
public class MyClass {
int x = 10; // 成员变量
public void myMethod() {
int x = 20; // 局部变量与成员变量重名
System.out.println(x); // 默认使用局部变量 x
}
}
在这个例子中,方法 myMethod 中的 x 局部变量屏蔽了成员变量 x。如果没有特别指明,那么输出的将是局部变量 x 的值,即 20。如果要输出成员变量 x 的值,需要使用“this.x”来明确指明:
public class MyClass {
int x = 10; // 成员变量
public void myMethod() {
int x = 20; // 局部变量与成员变量重名
System.out.println(this.x); // 使用 this 关键字引用成员变量 x
}
}
现在,输出的将是成员变量 x 的值,即 10。因此,在使用局部变量和成员变量重名时,一定要注意变量的作用域和优先级。

equals与==

需要注意的是,equals方法用于比较两个对象是否相等,而==运算符用于比较两个对象的引用是否指向同一个对象。在比较浮点数时,使用equals方法更为合适,因为它可以处理NaN和负零等特殊情况。

HttpServletResponse 接口

以下是 HttpServletResponse 接口的一些常用方法:
addCookie:用于添加 cookie 到响应中。
setHeader:用于设置 HTTP 响应头。
setStatus:用于设置 HTTP 响应状态码。
getOutputStream:用于获取输出流,以便将数据写入响应正文。
getWriter:用于获取 PrintWriter 对象,以便将文本写入响应正文。
可以看到,这些方法都与设置 HTTP 响应有关,而没有涉及到读取路径信息。如果需要读取路径信息,应该使用 HttpServletRequest 接口的相关方法,如 getServletPath、getContextPath 等。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词