叨叨两句
- 有些困,有些难,诶诶~hoho~ o(^@^)o
牛客网——java专项练习034
1
关于static说法不正确的是( )
正确答案: D
- 可以直接用类名来访问类中静态方法(public权限)
- 静态块仅在类加载时执行一次
- static方法就是没有this的方法
- 不可以用对象名来访问类中的静态方法(public权限)
C选项稍微有点歧义,只要明白static里不能用this即可。 但是不影响D选项的错误
2
class Foo {
final int i;
int j;
public void doSomething() {
System.out.println(++j + i);
}
}
的输出是?
正确答案: D
- 0
- 1
- 2
- 不能执行,因为编译有错
楼上都不太准确
final作为对象成员存在时,必须初始化;但是,如果不初始化,也可以在类的构造函数中初始
因为java允许将数据成员声明为final,却不赋初值。但是,blank finals必须在使用之前初始化,且必须在构造函数中初始化
3
Web程序中,当前用户上下文信息应该保存在下面哪个对象中()
正确答案: C
- page
- request
- session
- Application
JSP 四大作用域: page (作用范围最小)、request、session、application(作用范围最大)。
存储在application对象中的属性可以被同一个WEB应用程序中的所有Servlet和JSP页面访问。(属性作用范围最大)
存储在session对象中的属性可以被属于同一个会话(浏览器打开直到关闭称为一次会话,且在此期间会话不失效)的所有Servlet和JSP页面访问。
存储在request对象中的属性可以被属于同一个请求的所有Servlet和JSP页面访问(在有转发的情况下可以跨页面获取属性值),例如使用PageContext.forward和PageContext.include方法连接起来的多个Servlet和JSP页面。
存储在pageContext对象中的属性仅可以被当前JSP页面的当前响应过程中调用的各个组件访问,例如,正在响应当前请求的JSP页面和它调用的各个自定义标签类。
4
如下代码,执行test()函数后,屏幕打印结果为()
public class Test2
{
public void add(Byte b)
{
b = b++;
}
public void test()
{
Byte a = 127;
Byte b = 127;
add(++a);
System.out.print(a + " ");
add(b);
System.out.print(b + "");
}
}
正确答案: D
- 127 127
- 128 127
- 129 128
- 以上都不对
该题的详细分析可参见博客:http://www.cnblogs.com/nailperry/p/4780354.html
这里简单说明两点:
1.b = b++;这一操作并未改变b的值,原因详见http://blog.csdn.net/lm2302293/article/details/6713147;
2.++a先是触发拆箱操作Byte.byteValue,得到基本类型的值127,然后执行+1操作,使得值变为-128,最后触发装箱操作Byte.valueOf将value=-128的Byte对象赋值给a。
正数的补码就是它的原码,而负数的补码是将其原码(取绝对值后的原码)取反加1得到的。
http://blog.csdn.net/u011601165/article/details/51658910
5
java8中,忽略内部接口的情况,不能用来修饰interface里的方法的有( )
正确答案: A C
- private
- public
- protected
- static
Jdk1.8支持接口内部实现静态方法,而且可以有方法体具体实现。答案要与时俱进啊,或者标明题目的jdk版本,免得误解
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。