我刚刚阅读了Java中HashMap和HashTable类之间的区别.在那里,我发现前者允许空键以及后来不具有相同权限的区别.就HashMap的工作而言,我知道,它在key上调用hashcode方法来查找要放置该键值对的存储区.这是我的问题:如何计算空值的哈希码或是否有空键的哈希码的默认值(如果是这样请指定值)?
这是关于'+'运算符返回的结果的差异.结果因字符串文字和字符串对象而异.
String str="ab";
String str1="c";
String str2 = "ab"+"c"; // Line 3
String str3 = "abc";
String str4 = str+str1; // Line 5
System.out.println(str2==str3); // True
System.out.println(str2==str4); // False
Run Code Online (Sandbox Code Playgroud)
结果我们可以推断出,使用文字,返回字符串池中已有的对象,如第3行的情况,并返回字符串对象,返回新对象,如第5行所示.为什么会这样?
我是Spring的新手,并将其用于身份验证.我面临的一个问题是,当浏览器关闭或遇到任何异常故障时,会话过期但我无法捕获事件以便执行清理代码.我探讨一下,发现HttpSessionEventPublisher在春天捕获HttpSessionDestroyedEvent的sessionDestroyed()方法,但是当我关闭浏览器不叫.
请求建议相同的解决方案.
我最近开始使用 slickgrids。所以得到了很多很多的怀疑。如何在 slickgrids 中对列标题进行自动换行
以下是使用调用API方法反转字符串的两种方法.请说明哪种方法更合理,并有正当理由
public String functionOne(String str){
char arr[] = str.toCharArray();
int limit = arr.length/2;
for (int i = arr.length-1, j = 0; j < limit; i--, j++) {
char c = arr[i];
arr[i] = arr[j];
arr[j] = c;
}
return new String(arr);
}
public String functionTwo(String str) {
StringBuilder strBuilder = new StringBuilder();
char[] strChars = str.toCharArray();
for (int i = strChars.length - 1; i >= 0; i--) {
strBuilder.append(strChars[i]);
}
return strBuilder.toString();
}
Run Code Online (Sandbox Code Playgroud)
实际上,当我在长度为100000的字符串上运行我的代码时,第二次接近第二次接近时间.通过使用System.currentTimeMillis(),我发现第一种方法的执行差异为1,第二种方法的执行差异为2.