面试题集

StringBuffer的输出结果

如下,请写出输出的结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package me.qianlv.basic;
public class StringBufferTest {
public static void main(String[] args){
StringBuffer A = new StringBuffer("A");
StringBuffer B = new StringBuffer("B");
operator(A,B);
System.out.println(A);
System.out.println(B);
}
public static void operator(StringBuffer x, StringBuffer y){
x = x.append(y);
y = x;
}
}

答案:

1
2
AB
B

注:由于Java是传值调用,对于对象作为参数,其实也是传递地址值调用.故,y与x的交换不会影响到B和X,最终也会被丢弃.

Session存在于何处?sessionId是在何时生成的?

session是保存会话信息,存在于服务器端,sessionId是在第一次调用request.getSession(true)时,由应用服务器生成,回写到浏览器,并保存在cookie中的.

如,将项目部署在Tomcat中,第一次访问jsp页面时,会生成 JSESSIONID ,由于 session 是 JSP 九大内置对象中的一个,故在访问 JSP 页面时,会生成 session 对象;访问静态资源(例如 html页面,js,css等静态资源,不涉及状态的资源),不会生成 JSESSIONID; 访问 servlet ,在请求处理中调用request.getSession(false),不会生成JSESSIONID;只有当调用request.getSession()request.getSession(true)时,才会生成JSESSIONID.

可参见:我的简书

在同一浏览器中访问同一网站,多个用户多次登入登出,请问每一次登入登出session是否会删除重建?sessionId是否会改变?

您的支持将鼓励我继续创作!