Spring框架中session和globalSession有什么区别?
<bean id="exampleBean" class="com.test.baen.ExampleBean" scope="session"/>
<bean id="exampleBean" class="com.test.baen.ExampleBean" scope="globalSession"/>
Run Code Online (Sandbox Code Playgroud)
根据我的研究,两者在Web感知Spring ApplicationContext的上下文中都是有效的.
现在,会话bean作用域将一直保留到用户会话,但是globalSession bean作用域在整个应用程序中是否可用?
是申请范围吗?
我无法理解术语"全局HTTP会话"; 它将在整个全球HTTP会话中可用吗?
我怎样才能转换 Map<String,Object>成Map<String,String>?
这不起作用:
Map<String,Object> map = new HashMap<String,Object>(); //Object is containing String
Map<String,String> newMap =new HashMap<String,String>(map);
Run Code Online (Sandbox Code Playgroud) 声明只有常量的java文件的最佳做法是什么?
public interface DeclareConstants
{
String constant = "Test";
}
Run Code Online (Sandbox Code Playgroud)
要么
public abstract class DeclareConstants
{
public static final String constant = "Test";
}
Run Code Online (Sandbox Code Playgroud) 我一直在调查hashCode()java中的方法,并发现String类奇怪的一个.源代码如下:
public int hashCode() {
int h = hash;
if (h == 0 && value.length > 0) {
char val[] = value;
for (int i = 0; i < value.length; i++) {
h = 31 * h + val[i];
}
hash = h;
}
return h;
}
Run Code Online (Sandbox Code Playgroud)
代码本身非常简单.但我想知道以这种方式计算哈希码的原因是什么?
为什么选择31?
为什么从0开始而不是value.length - 1?
是否保证这会使哈希码更不可能相互冲突?
java常量变量是否有任何命名约定?
通常我们使用名称包含大写字母和下划线(_)的变量.
例如:
public final class DeclareConstant {
public static final String CONSTANT_STRING = "some constant";
public static final int CONSTANT_INTEGER = 5;
}
Run Code Online (Sandbox Code Playgroud) 具有公共静态的所有方法的实用程序类的正确方法是什么.
我应该使用最终类还是抽象类?
请给出建议.
例如:
public final class A{
public static void method(){
/* ... */
}
}
Run Code Online (Sandbox Code Playgroud)
要么
public abstract class A{
public static void method(){
/* ... */
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试在django和yii之间进行选择,以获得具有数据库(最好是mysql)后端的可扩展,可维护的企业级Web应用程序.该应用主要侧重于数据输入,但具有自定义工作流程(超出您的基本自动生成的crud表单)和自定义报告.我有CS背景,熟悉MVC,c ++编程背景,C#.8年前使用php,mysql,perl/cgi构建了一个类似的应用程序,并记住它很痛苦(从头开始做陡峭的学习曲线).需要再次学习python或php语法,但我很快就会学习语言.在线阅读关于django vs yii的广泛内容.由于需要开源,无法使用.net mvc路由.涉及RoR,喜欢这种语言但我对发生的魔法不太满意,特别是对于生产级别的应用程序.或许在将来.所以回到Django vs yii -
决策因素是:
1)更容易学习曲线
2)更适合我需要的特定任务的框架 - 重型数据库操作,自定义UI流程(没有太多gfx密集型,只是常规表单元素,但我需要通过多个表操作数据)加入等)
3)没有令人讨厌的意外与db连接(读取但不完全理解所有与django orm和mysql的陷阱).
4)我不打算基本事物的框架/语言的东西
5)可扩展和快速运行时间(我知道很多取决于一个架构师的解决方案)
请指教.寻求熟悉在两个框架中工作的人的帮助.非常感谢
为什么我们public static final在Java接口中使用实例变量的声明?
所有变量都隐含public static final在Java接口中.在常量变量中
使用public static final它是一种很好的编码实践,尽管它是在接口内声明的.
例如 :
public interface TestInterface{
public static final String EX_CONSTANT = "ABC";
public static final int EX_INT_CONSTANT = 5;
public static final double EX_DOUBLE = 5.0;
public static final Integer EX_INTEGER = 10;
}
Run Code Online (Sandbox Code Playgroud) 在采访中,面试官问我为什么需要私人证件JAAS?
我们可以访问公共凭据和私人凭据,例如:
Set<Object> privateCredentials = subject.getPrivateCredentials();
Set<Object> publicCredentials = subject.getPublicCredentials();
Run Code Online (Sandbox Code Playgroud)
两者(privateCredentials和publicCredentials)都是可访问的,访问方式是相同的.
那么,两种凭证的重要性是什么?
如果我在以这种方式声明枚举常量之前或之前声明变量:
enum MyEnum
{
int i = 90;
}
Run Code Online (Sandbox Code Playgroud)
它显示以下编译错误.
MyEnum.java:3: <identifier> expected
{
^
MyEnum.java:4: ',', '}', or ';' expected
int i = 90;
^
MyEnum.java:4: '}' expected
int i = 90;
^
MyEnum.java:5: class, interface, or enum expected
}
^
4 errors
Run Code Online (Sandbox Code Playgroud)
但是如果我在声明之前宣布一个枚举常量,i那么它编译得很好.
即使以下代码将编译正常:
enum MyEnum
{
;//put a semicolon
int i = 90;
}
Run Code Online (Sandbox Code Playgroud)
为什么java enum是这样设计的?