每天进步一点点(Java)

每天进步一点点(Java) 专栏收录该内容
2 篇文章 0 订阅

每天进步一点点(Java)

1.下面哪些类可以被继承? Java.lang.Thread、java.lang.Number、java.lang.Double、java.lang.Math、 java.lang.ClassLoader
正确答案: A B E 你的答案:A B E (正确)
Thread
Number
Double
Math
ClassLoader

题解:
A:Thread可以被继承,用于创建新的线程
B:Number类可以被继承,Integer,Float,Double等都继承自Number类
C:Double类的声明为 public final class Doubleextends Numberimplements Comparable<Double> final声明的类不能被继承
D:Math类的声明为 public final class Mathextends Object 不能被继承
E:ClassLoader可以被继承,用户可以自定义类加载器

2.定义有StringBuffer s1=new StringBuffer(10);s1.append(“1234”)则s1.length()和s1.capacity()分别是多少?
正确答案: A 你的答案: A (正确)
4 10
4 4
10 10
10 4

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

3.下面有关JSP内置对象的描述,说法错误的是?
正确答案: C 你的答案: 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类的实例。

4.下面有关SPRING的事务传播特性,说法错误的是?
正确答案: B 你的答案: 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–以非事务方式执行,如果当前存在事务,则抛出异常。

5.以下代码结果是什么?
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 你的答案:C (正确)
代码可以编译运行,输出“AB.AB”。
代码可以编译运行,输出“A.A”。
代码可以编译运行,输出“AB.B”。
代码可以编译运行,输出“A.B”。

在这里插入图片描述
6.运行代码,输出的结果是()
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 (正确)
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.常量在编译阶段会进行常量优化,将常量存入调用类的常量池中, 本质上并没有直接引用到定义常量的类,因此不会触发定义常量的类的初始化。

7.给定以下代码,程序将输出 ()(选择一项)
class A {
public A(){
System.out.println(“A”);
}
}
class B extends A{
public B(){
System.out.println(“B”);
}
public static void main(String[] args) {
B b=new B();
}
}
A.不能通过编译
B.通过编译,输出AB
C.通过编译,输出B
D.通过编译,输出A
答案:B

题解:在继承关系下,创建子类对象,先执行父类的构造方法,再执行子类的构造方法。

8.如果希望监听TCP端口9000,服务器端应该怎样创建socket?
正确答案: B 你的答案: B (正确)
new Socket(“localhost”,9000);
new ServerSocket(9000);
new Socket(9000);
new ServerSocket(“localhost”,9000);

题解:
ServerSocket (int port) 创建一个serversocket 绑定在特定的端口
Socket(InetAddress address, int port) 创建一个socket流,连接到特定的端口和ip地址

9.What will happen when you attempt to compile and run the following code?
public class Test{
static{
int x=5;
}
static int x,y;
public static void main(String args[]){
x–;
myMethod( );
System.out.println(x+y+ ++x);
}
public static void myMethod( ){
y=x++ + ++x;
}
}
正确答案: D 你的答案: D (正确)
compiletime error
prints:1
prints:2
prints:3
prints:7
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

10.下面关于面向对象的一些理解哪些是错误的( )
正确答案: C 你的答案: C (正确)
A:面向对象的最重要的特性是支持继承、封装和多态
B:系统设计应该遵循开闭原则,系统应该稳定不不可修改,但应支持通过继承、组合等方式进行扩展
C:函数式的语言必然是面向对象的语言
D:面向对象设计时,每个类的职责应该单一,不要再一个类中引入过多的接口
E:过程式语言和面向对象的语言各有其优势,过程式语言更加灵活,面向对象语言更加强调抽象和封装
F:Java和C++都是静态类型的面向对象编程语言

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值