它是如何知道这个钥匙已经老了并准备把它扔掉了?为什么字符串文字?
例如,
private static WeakHashMap<<? extends Object>, String> m =
new WeakHashMap<<? extends Object>, String>();
public static void A(){
Point p = new Point();
m.put(p, "a");
}
Run Code Online (Sandbox Code Playgroud)
这是否意味着一旦A()返回,'p'键就会消失?
我是Java EE的新手.我有一个网站,要求用户登录,并在用户登录后,我希望用户看到他/她自己的项目(例如:购物车).
所以这意味着我必须使用一个会话来完成它.但是我该如何处理多个会话?
例如,多个用户登录到系统以及同一个servlet?但是,我可以在一个servlet中保留多个会话吗?我是否记录下每一个?它是如何工作的?
有人可以举个例子吗?
我有一个关于参数多态性的问题.如何确定实际类型并避免强制转换如果我有一个混合了子类型的集合.例如
class Animal{
}
class Bird extends Animal{
void fly(){}
}
class Dog extends Animal{
void bark(){}
}
ArrayList<Animal> list = new ArrayList<Animal>();
Run Code Online (Sandbox Code Playgroud)
问题是当我迭代Animal集合时,我怎么知道哪一个是哪一个.我是否需要每次都使用instanceof来检查实际类型?
for(Animal animal : list){
if(animal instanceof Dog){
((Dog) animal).bark();
}
else ((Bird) animal).fly();
}
Run Code Online (Sandbox Code Playgroud) 我的直觉和假设是每当我们不能使用贪婪时,那么A*将成为可行的方式,但我并非100%肯定.我需要更多关于如何识别和发现A*算法的示例和模式.
有人可以给出一些特殊的极端情况,当你第一次看到它并且你知道这不会贪婪或它必须是A*甚至没有打扰尝试.
java ×3
algorithm ×1
generics ×1
greedy ×1
java-ee ×1
polymorphism ×1
servlets ×1
session ×1
weakhashmap ×1