叨叨两句

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

牛客网——java专项练习050

1

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

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.jsp

<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.htm

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

5

下面程序的输出是:()

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()确实返回了大写字符串,但是没有覆盖原来的,所以字符串还是小写的。

Wall_Breaker
2.1k 声望1.2k 粉丝

生死之间,就是我的跃迁之路,全程记录,欢迎见证