Java日常练习题,每天进步一点点(40)

时间:2022-09-04 23:40:45

承蒙各位厚爱,我们一起每天进步一点点!(鼠标选中空白处查看答案)

1.下面有关JSP内置对象的描述,说法错误的是?

正确答案: C

session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止

request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应

application对象:多个application对象实现了用户间数据的共享,可存放全局变量

response对象:response对象包含了响应客户请求的有关信息

题解:
application服务器就创建了一个,多个用户共享一个。
application对象是共享的,多个用户共享一个,以此实现数据共享和通信
1.request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
2.response对象
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。
3.session对象
session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例.
4.application对象
application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。

2.Java语言与其它语言相比,独有的特点是( )

正确答案: C

面向对象

多线程

平台无关

网络编程

3.下面哪个选项正确创建socket连接?

正确答案: B

Socket s = new Socket(8080);

Socket s = new Socket(“192.168.1.1”,8080)

SocketServer s = new Socket(8080);

Socket s = new SocketServer(“192.168.1.1”,8080)

题解:
服务器端:ServerSocket提供的实例 ServerSocket server = new ServerSocket(端口号)
客户端:Socket提供的实例 Socket client = new Socket(IP地址,端口号)

4.定义有StringBuffer s1=new StringBuffer(10);s1.append(“1234”)则s1.length()和s1.capacity()分别是多少?

正确答案: A

4 10

4 4

10 10

10 4

题解:
length 返回当前长度
如果字符串长度没有初始化长度大,capacity返回初始化的长度
如果append后的字符串长度超过初始化长度,capacity返回增长后的长度

5.下面有关SPRING的事务传播特性,说法错误的是?

正确答案: B

PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行

PROPAGATION_REQUIRED:支持当前事务,如果当前没有事务,就抛出异常

PROPAGATION_REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起

PROPAGATION_NESTED:支持当前事务,新增Savepoint点,与当前事务同步提交或回滚

题解:
PROPAGATION_REQUIRED–支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
PROPAGATION_SUPPORTS–支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY–支持当前事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW–新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED–以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER–以非事务方式执行,如果当前存在事务,则抛出异常。

6.有一个源代码,只包含import java.util.* ; 这一个import语句,下面叙述正确的是? ( )

正确答案: C

只能写在源代码的第一句

可以访问java/util目录下及其子目录下的所有类

能访问java/util目录下的所有类,不能访问java/util子目录下的所有类

编译错误

题解:
java.util.*,只能读取其目录下的类,不能读取其子目录下的类。
因为其根目录和子目录下可能有同名类,若都能读取,则会混淆。

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

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;

}

}

正确答案: C

代码可以编译运行,输出“AB.AB”。

代码可以编译运行,输出“A.A”。

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

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

题解:
Java日常练习题,每天进步一点点(40)

8.Test.main()函数执行后的输出是( )

class Test {

public static void main(String[] args) {

System.out.println(new B().getValue());

}

static class A {

protected int value;

public A (int v) {

setValue(v);

}

public void setValue(int value) {

this.value= value;

}

public int getValue() {

try {

value ++;

return value;

} finally {

this.setValue(value);

System.out.println(value);

}

}

}

static class B extends A {

public B () {

super(5);

setValue(getValue()- 3);

}

public void setValue(int value) {

super.setValue(2 * value);

}

}

}

正确答案: B

6 7 7

22 34 17

22 74 74

11 17 34

题解:
详见讨论区

9.运行代码,输出的结果是()

public class P {

public static int abc = 123;

static{

System.out.println(“P is init”);

}

}

public class S extends P {

static{

System.out.println(“S is init”);

}

}

public class Test {

public static void main(String[] args) {

System.out.println(S.abc);

}

}

正确答案: A

A:P is init

123

B:S is init

P is init

123

C:P is init

S is init

123

D:S is init

123

题解:
属于被动引用不会出发子类初始化
1.子类引用父类的静态字段,只会触发子类的加载、父类的初始化,不会导致子类初始化
2.通过数组定义来引用类,不会触发此类的初始化
3.常量在编译阶段会进行常量优化,将常量存入调用类的常量池中, 本质上并没有直接引用到定义常量的类,因此不会触发定义常量的类的初始化。

10.单例模式中,两个基本要点是

正确答案: A D

构造函数私有

静态工厂方法

以上都不对

唯一实例

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注服务器之家的更多内容!

原文链接:https://blog.csdn.net/weixin_43883917/article/details/115898595