阅读 35984 次
发表时间:2009-02-25
asin 写道
pipilu 写道
jieyuan_cg 写道
pipilu 写道
加罗德蓝 写道
第一题是 a:1
        b:1
ie6 + tomcat6.0 的测试结果,第三次访问开始a才是2


看来你试都试错了。。
肯定是:a:2 b:1

你验证过吗?不要乱说话!


我不得不再去特意验证一下,答案仍然是:a:2 b:1

然后,我又多试了几次,有你说的那种结果,但也有第四次又从a=1 b=1开始的,有一次在第8次时从a=1 b=1开始。
我还没想出一个能够确定的解释。但是这题的答案肯定是:a=2 b=1。在resin下是正常的。
上面asin解释的也很牵强。
你对这个现象有没有一个合理的解释?



<%! int a=0; %>

<%
    int b=0;
    
    System.out.println("刷新页面...");
    System.out.println("a的值: "+a);
    System.out.println("b的值: "+b);
    
    
    a++;
    b++;
    
    System.out.println("a++的值: "+a);
    System.out.println("b++的值: "+b);
%>

a:<%=a %>
b:<%=b %>


到后台去看...

asin兄的解释应该是对的。这样的问题以前还真是没有注意过。
后台打印,第一次,第二次的值依然是a=1,b=1,呵呵~跟缓存没有关系了吧~
发表时间:2009-02-25
gosin 写道
jieyuan_cg 写道
pipilu 写道
加罗德蓝 写道
第一题是 a:1
        b:1
ie6 + tomcat6.0 的测试结果,第三次访问开始a才是2


看来你试都试错了。。
肯定是:a:2 b:1

你验证过吗?不要乱说话!



这东西还要验证么,

jsp生成的servlet 一个是全局变量,一个是局部变量而已




又一个凭空想象者!!!
发表时间:2009-02-25

测试了一下,IE浏览器
第一次,是a=1,b=1,
第二次,是a=1,b=2,

出现第二次b=1是
发表时间:2009-02-26
最新测试结果:
如果第一次访问时jsp已编译成.class文件,则第一次a=1,b=1;第二次a=1,b=2

如果第一次访问时jsp未编译成.class文件,则第一次a=1,b=1;第二次a=1,b=1
发表时间:2009-02-28
有的不知道选择什么。
发表时间:2009-02-28
直接把servlet源代码研究一下不更好么.
发表时间:2009-03-10
刷新页面...
a的值: 0
b的值: 0
a++的值: 1
b++的值: 1
刷新页面...
a的值: 0
b的值: 0
a++的值: 1
b++的值: 1
刷新页面...
a的值: 1
b的值: 0
a++的值: 2
b++的值: 1

这个是在工作目录被clean的情况下,如果工作目录非空,重启后,得到的结果是 a=2 b=1
注:Tomcat5.0的行为

发表时间:2009-03-10
记忆性的东西比较多,考不到学习能力和创造能力,开发的知识领域总在变,如果有一天Servlet不用了,这些就没有意义了
发表时间:2009-06-11
笔试的题目防不胜防,还是得多积累,研究一下楼主的题,希望自己以后面试时候能遇上
发表时间:2009-06-22
不要这样,做人要有素质。
Global site tag (gtag.js) - Google Analytics