叨叨两句

  1. 有些困,有些难,诶诶~hoho~ o(^@^)o

牛客网——java专项练习034

1

关于static说法不正确的是( )

正确答案: D

  1. 可以直接用类名来访问类中静态方法(public权限)
  2. 静态块仅在类加载时执行一次
  3. static方法就是没有this的方法
  4. 不可以用对象名来访问类中的静态方法(public权限)
C选项稍微有点歧义,只要明白static里不能用this即可。 但是不影响D选项的错误

2

class Foo {

final int i;
int j;
public void doSomething() {
    System.out.println(++j + i);
}

}
的输出是?
正确答案: D

  1. 0
  2. 1
  3. 2
  4. 不能执行,因为编译有错
楼上都不太准确

final作为对象成员存在时,必须初始化;但是,如果不初始化,也可以在类的构造函数中初始

因为java允许将数据成员声明为final,却不赋初值。但是,blank finals必须在使用之前初始化,且必须在构造函数中初始化  

3

Web程序中,当前用户上下文信息应该保存在下面哪个对象中()

正确答案: C

  1. page
  2. request
  3. session
  4. 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

  1. 127 127
  2. 128 127
  3. 129 128
  4. 以上都不对
该题的详细分析可参见博客: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

  1. private
  2. public
  3. protected
  4. static
Jdk1.8支持接口内部实现静态方法,而且可以有方法体具体实现。答案要与时俱进啊,或者标明题目的jdk版本,免得误解

Wall_Breaker
2.1k 声望1.2k 粉丝

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