有如下JSP代码
<html>
<% { %>
<% String str; %>
<% } %>
str is <%=str %>
</html>
请问一下代码执行后的结果是什么,有4个选项
A.翻译期错误
B.编译期错误
C.执行编译后的字节码发生错误
D.运行后,浏览器上显示:str is null
请高手解释一下啊,谢谢!!!
这问题好玩!!!非常好玩!
这个应该是找不到 str 这个变量的定义吧!或者说str这个变量在使用时根本就没有定义,然而就要使用他?
用.NET的逻辑来推演的话,这个是编译期的错误吧,编译器不会让这个通过编译的吧!
这个应该编译通不过,两个原因:一、变量的定义范围,请看
<% { String str; } %>
二、即使把大括号去掉,也不会编译通过,因为变量str没有初始化,
正确的是:String str=null;
此时选择D