jsp中的盲區-面試可能會問到的東西
阿新 • • 發佈:2017-10-24
結果 body style 成員 light 有趣 一行 int 為什麽
1、今天看到一個有趣的JSP題目。
<body>
This is my JSP page. <br>
<%
int a = 10;
%>
<%
out.print(a++);
%>
<%=a %>
<%!
int a = 100;
%>
<%
out.print(a++);
%>
</body>
輸出結果:10 11 11
有人可能會問最後一個輸出為什麽不是100
個人解釋: <%!
int a = 100;
%> 內的代碼相當於全局變量。
而
<%
out.print(a++);
%>
執行的是方法內部的代碼。也就是執行局部變量的代碼。所以輸出 11
2、如果代碼是這樣的:
<body> This is my JSP page. <br> <% int a = 10; %> <% out.print(a++); %> <br/> <%=a %> <%! int a = 100; %> <% out.print(this.a++); %> </body>
輸出結果是這樣的:10 11 100 最後一行會執行輸出成員變量的參數。
3、請問方法fun1會執行麽?代碼如下
<body> This is my JSP page. <br> <% int a = 10; %> <% out.print(a++); %> <br/> <%=a %> <%! int a = 100; public void fun1() { System.out.println(a); } %> <% out.print(this.a++); %> </body>
答案是不會執行。<%! 代碼..... %> 內的方法類似於在類內的方法。需要調用才會執行。正確執行代碼如下。
<body> This is my JSP page. <br> <% int a = 10; %> <% out.print(a++); %> <br/> <%=a %> <%! int a = 100; public void fun1() { System.out.println(a); } %> <% out.print(this.a++); fun1(); %> </body>
jsp中的盲區-面試可能會問到的東西