【312天】我爱刷题系列071(2017.12.14)

叨叨两句

  1. 打算改变一下,之后天天先只作5道题,把更多时间用于项目

牛客网——java专项练习050

1

What will happen when you attempt to compile and run the following code?html

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
A compiletime error
B prints:1
C prints:2
D prints:3
E prints:7
F prints:8java

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

2

下列描述错误的是?
A 类只能继承一个父类,可是能够实现多个接口
B 抽象类自身能够定义成员而接口不能够
C 抽象类和接口都不能被实例化(忽略匿名内部类)
D 一个类能够有多个基类和多个基接口编程

正确答案: B D浏览器

A 、java为单继承,多实现。能够实现多个接口。 
B、接口容许定义成员,但必须是常量。
C、抽象类和接口类的没法实例化,任何编译器中直接使用new会报错。
D、同A,单继承,多实现。

3

下面哪项技术能够用在WEB开发中实现会话跟踪实现?
正确答案: A B C D
A session
B Cookie
C 地址重写
D 隐藏域服务器

会话跟踪是一种灵活、轻便的机制,它使Web上的状态编程变为可能。
HTTP是一种无状态协议,每当用户发出请求时,服务器就会作出响应,客户端与服务器之间的联系是离散的、非连续的。当用户在同一网站的多个页面之间转换时,根本没法肯定是不是同一个客户,会话跟踪技术就能够解决这个问题。当一个客户在多个页面间切换时,服务器会保存该用户的信息。
有四种方法能够实现会话跟踪技术:URL重写、隐藏表单域、Cookie、Session。
1).隐藏表单域:<input type="hidden">,很是适合步须要大量数据存储的会话应用。
2).URL 重写:URL 能够在后面附加参数,和服务器的请求一块儿发送,这些参数为名字/值对。
3).Cookie:一个 Cookie 是一个小的,已命名数据元素。服务器使用 SET-Cookie 头标将它做为 HTTP
响应的一部分传送到客户端,客户端被请求保存 Cookie 值,在对同一服务器的后续请求使用一个
Cookie 头标将之返回到服务器。与其它技术比较,Cookie 的一个优势是在浏览器会话结束后,甚至
在客户端计算机重启后它仍能够保留其值
4).Session:使用 setAttribute(String str,Object obj)方法将对象捆绑到一个会话

4

看如下代码:
文件名称:forward.jspsession

<html>  
     <head><title> 跳转  </title> </head> 
     <body>  
         <jsp:forward page="index.htm"/>     
     </body>
 </html>

若是运行以上jsp文件,地址栏的内容为
正确答案: A 你的答案: C (错误)
A http://127.0.0.1:8080/myjsp/forward.jsp
B http://127.0.0.1:8080/myjsp/index.jsp
C http://127.0.0.1:8080/myjsp/index.htm
D http://127.0.0.1:8080/myjsp/forward.htmapp

forward和redirect是最常问的两个问题
forward,服务器获取跳转页面内容传给用户,用户地址栏不变
redirect,是服务器向用户发送转向的地址,redirect后地址栏变成新的地址
所以这个题是A

5

下面程序的输出是:()jsp

String x="fmn";
x.toUpperCase();
String y=x.replace('f','F');
y=y+"wxy";
System.out.println(y);

正确答案: D 你的答案: D (正确)
A FmNwxy
B fmnwxy
C wxyfmn
D Fmnwxy网站

使用String str=“xxx”时,JVM会在字符串常量池中建立“xxx”,即在编译时就可计算出来的字符串值,是不可改变的。若是改变str就会在字符串常量池里产生新的实例。 题目里调用toUpperCase()确实返回了大写字符串,可是没有覆盖原来的,因此字符串仍是小写的。