叨叨两句
- 打算改变一下,以后每天先只做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()确实返回了大写字符串,但是没有覆盖原来的,所以字符串还是小写的。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。