b******y 发帖数: 126 | 1 这次google电面的问题跟版上面经风格很不一样,基本上都是Java语言的问题,感觉问
题并不难,自己觉得回答得也不错,但还是悲剧了。整个面试过程进行比较慢,但大部
分时间都是我在等他,每个问题他都想extend一下,但每次他都要想一会儿再问。
面经
1, equal and hashcode method in java, what happens if hashcode and equal
method are not consistent. How the equal method behaves in Object class? If
I want to rewrite the Object class, I want to implement equals method to use
reflection and compare all the fields in the class, is this a good idea?
Why?
2, If in my class, my hashcode method return same value for two unequa |
o**********t 发帖数: 406 | 2 版上面经过分强调算法,其实很多公司都还要问一些具体语言相关的问题。
没关系,鼓起勇气再投别的就是了。goog is not the only one ...
If
use
【在 b******y 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这次google电面的问题跟版上面经风格很不一样,基本上都是Java语言的问题,感觉问 : 题并不难,自己觉得回答得也不错,但还是悲剧了。整个面试过程进行比较慢,但大部 : 分时间都是我在等他,每个问题他都想extend一下,但每次他都要想一会儿再问。 : 面经 : 1, equal and hashcode method in java, what happens if hashcode and equal : method are not consistent. How the equal method behaves in Object class? If : I want to rewrite the Object class, I want to implement equals method to use : reflection and compare all the fields in the class, is this a good idea? : Why? : 2, If in my class, my hashcode method return same value for two unequa
|
q*********u 发帖数: 280 | 3 你的题和我的很相似,你是java developer的话,应该是游刃有余。
If
use
【在 b******y 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这次google电面的问题跟版上面经风格很不一样,基本上都是Java语言的问题,感觉问 : 题并不难,自己觉得回答得也不错,但还是悲剧了。整个面试过程进行比较慢,但大部 : 分时间都是我在等他,每个问题他都想extend一下,但每次他都要想一会儿再问。 : 面经 : 1, equal and hashcode method in java, what happens if hashcode and equal : method are not consistent. How the equal method behaves in Object class? If : I want to rewrite the Object class, I want to implement equals method to use : reflection and compare all the fields in the class, is this a good idea? : Why? : 2, If in my class, my hashcode method return same value for two unequa
|
b******y 发帖数: 126 | 4 我写的最后一道题的code,欢迎批评指正
public final class SpecialSingleton{
private Integer i;
private static Map instanceMap= new HashMap<
Integer, SpecialSingleton>();
private SpecialSingleton(Ingeter i){
this.i = i;
}
public static SpecialSingleton getInstance(Integer i){
Synchronized(instanceMap){
SpecialSingleton ss = instanceMap.get(i);
if(ss == null){
ss = new SpecialSingleton(i);
【在 q*********u 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 你的题和我的很相似,你是java developer的话,应该是游刃有余。 : : If : use
|
M******k 发帖数: 51 | 5 不太明白第四道题的意思,能不能更详细一些?
If
use
【在 b******y 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这次google电面的问题跟版上面经风格很不一样,基本上都是Java语言的问题,感觉问 : 题并不难,自己觉得回答得也不错,但还是悲剧了。整个面试过程进行比较慢,但大部 : 分时间都是我在等他,每个问题他都想extend一下,但每次他都要想一会儿再问。 : 面经 : 1, equal and hashcode method in java, what happens if hashcode and equal : method are not consistent. How the equal method behaves in Object class? If : I want to rewrite the Object class, I want to implement equals method to use : reflection and compare all the fields in the class, is this a good idea? : Why? : 2, If in my class, my hashcode method return same value for two unequa
|
M******k 发帖数: 51 | 6 不太明白第四道题的意思,能不能更详细一些?
If
use
【在 b******y 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这次google电面的问题跟版上面经风格很不一样,基本上都是Java语言的问题,感觉问 : 题并不难,自己觉得回答得也不错,但还是悲剧了。整个面试过程进行比较慢,但大部 : 分时间都是我在等他,每个问题他都想extend一下,但每次他都要想一会儿再问。 : 面经 : 1, equal and hashcode method in java, what happens if hashcode and equal : method are not consistent. How the equal method behaves in Object class? If : I want to rewrite the Object class, I want to implement equals method to use : reflection and compare all the fields in the class, is this a good idea? : Why? : 2, If in my class, my hashcode method return same value for two unequa
|
y**i 发帖数: 1112 | 7 能写个C++的版本么?不懂java。。。
【在 b******y 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我写的最后一道题的code,欢迎批评指正 : public final class SpecialSingleton{ : private Integer i; : private static Map instanceMap= new HashMap< : Integer, SpecialSingleton>(); : private SpecialSingleton(Ingeter i){ : this.i = i; : } : public static SpecialSingleton getInstance(Integer i){ :
|
t****r 发帖数: 304 | 8 好象Hashtable是synchronized,所以如果想省事能不能直接用Hashtable?
你这样的话不就是在getInstance前面加个synchronized关键字么?还是不够efficient
这样可以么:
SpecialSingleton ss = instanceMap.get(i);
if(ss!=null){
return ss;
}
ss = instanceMap.get(i);
【在 b******y 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我写的最后一道题的code,欢迎批评指正 : public final class SpecialSingleton{ : private Integer i; : private static Map instanceMap= new HashMap< : Integer, SpecialSingleton>(); : private SpecialSingleton(Ingeter i){ : this.i = i; : } : public static SpecialSingleton getInstance(Integer i){ :
|
t****r 发帖数: 304 | 9 1啥意思啊?看不懂
If
use
【在 b******y 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这次google电面的问题跟版上面经风格很不一样,基本上都是Java语言的问题,感觉问 : 题并不难,自己觉得回答得也不错,但还是悲剧了。整个面试过程进行比较慢,但大部 : 分时间都是我在等他,每个问题他都想extend一下,但每次他都要想一会儿再问。 : 面经 : 1, equal and hashcode method in java, what happens if hashcode and equal : method are not consistent. How the equal method behaves in Object class? If : I want to rewrite the Object class, I want to implement equals method to use : reflection and compare all the fields in the class, is this a good idea? : Why? : 2, If in my class, my hashcode method return same value for two unequa
|
p******a 发帖数: 1355 | 10 不要郁闷。大家都是从受打击中成长过来的。加油加油 |
|
|
m********g 发帖数: 692 | 11 (boyjemmy 白板code写成这样, 基本功很棒的说)
和 trcaer 和 qslhangzhou 的推敲后
再次改了几个地方,
欢迎继续拍砖...
1)
从map 里get() instance 必须放 synchronized block 中
2)
可以用 byte[] 做lock
3)
用 Collections.synchronizedMap initialize instanceMap
4)
lock, instanceMap 可以用 final
code updated:
public final class SpecialSingleton{
private Integer i;
private final static byte[] lock = new byte[0];
private final static Map instanceMap= Collections.synchronizedMap(new HashMap());
【在 b******y 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我写的最后一道题的code,欢迎批评指正 : public final class SpecialSingleton{ : private Integer i; : private static Map instanceMap= new HashMap< : Integer, SpecialSingleton>(); : private SpecialSingleton(Ingeter i){ : this.i = i; : } : public static SpecialSingleton getInstance(Integer i){ :
|
t****r 发帖数: 304 | 12 你这个是有问题的我觉得,如果两个thread同时get呢?那不是创建了2个instance 了么
具体方法见我前面的回复
【在 m********g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : (boyjemmy 白板code写成这样, 基本功很棒的说) : 和 trcaer 和 qslhangzhou 的推敲后 : 再次改了几个地方, : 欢迎继续拍砖... : 1) : 从map 里get() instance 必须放 synchronized block 中 : 2) : 可以用 byte[] 做lock : 3) : 用 Collections.synchronizedMap initialize instanceMap
|
m********g 发帖数: 692 | 13 不在 synchronized block 中, 永远只能 get existing instance
【在 t****r 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 你这个是有问题的我觉得,如果两个thread同时get呢?那不是创建了2个instance 了么 : 具体方法见我前面的回复
|
o***i 发帖数: 4 | 14 What if two threads get to point A at same time?
thread 1 get into synchronized block and create 1 SS instance
after that, thread 2 will get into sync block and create another SS
instance? Did I miss something here?
public static SpecialSingleton getInstance(Integer i){
SpecialSingleton ss = instanceMap.get(i);
== point A
synchronized(instanceMap){
if(ss == null){
ss = new SpecialSingleton(i);
instanceMap.put(i,ss);
}
【在 m********g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : (boyjemmy 白板code写成这样, 基本功很棒的说) : 和 trcaer 和 qslhangzhou 的推敲后 : 再次改了几个地方, : 欢迎继续拍砖... : 1) : 从map 里get() instance 必须放 synchronized block 中 : 2) : 可以用 byte[] 做lock : 3) : 用 Collections.synchronizedMap initialize instanceMap
|
t****r 发帖数: 304 | 15 你想说明的是什么?
【在 m********g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 不在 synchronized block 中, 永远只能 get existing instance
|
m********g 发帖数: 692 | 16 我想你忽略了 ss 只是一个 reference (地址)
【在 o***i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : What if two threads get to point A at same time? : thread 1 get into synchronized block and create 1 SS instance : after that, thread 2 will get into sync block and create another SS : instance? Did I miss something here? : public static SpecialSingleton getInstance(Integer i){ : SpecialSingleton ss = instanceMap.get(i); : == point A : synchronized(instanceMap){ : if(ss == null){ : ss = new SpecialSingleton(i);
|
o***i 发帖数: 4 | 17 如果两个thread同时到pointA,
thread1's ss is null
thread2's ss is also null
so both threads will create SS instance?
【在 m********g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我想你忽略了 ss 只是一个 reference (地址)
|
m********g 发帖数: 692 | 18 判 null 在 synchronized block 中
【在 o***i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 如果两个thread同时到pointA, : thread1's ss is null : thread2's ss is also null : so both threads will create SS instance?
|
t****r 发帖数: 304 | 19 ss 是 null,哪来的地址。。。它根本没有refer 到任何object
很容易验证,
ss = hashmap.get(1);// 现在ss是null
hashmap.put(1, some obj);//现在有了,但是ss还是null
【在 m********g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我想你忽略了 ss 只是一个 reference (地址)
|
q*********u 发帖数: 280 | 20 这个instanceMap个人感觉用factory模式,生成出来,并且是有技巧的,我有过一个巨
大的教训,被morgan拒就是差不多有这么个东西,我写道:
static{
instanceMap = new HashMap();
}
对方是很不满意阿,这个真是血的教训,对方提示:
static{
instanceMap = Collections.synchronizedMap(
new HashMap());
}
然后再在你自己需要的地方加
synchronized(instanceMap){ ... }
我估计如果对方要是抓你这个小辫子,也是有理由的,毕竟,后面这种方式,是被j2se
官方的doc推荐的。
我对这个final 用在这里意义的大小不是很确定,这个只要我们不明确写setter,这个
instanceMap已经是private了。
我觉得你代码写的不错,不过前几天看过一个强贴,关于大公司
【在 m********g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : (boyjemmy 白板code写成这样, 基本功很棒的说) : 和 trcaer 和 qslhangzhou 的推敲后 : 再次改了几个地方, : 欢迎继续拍砖... : 1) : 从map 里get() instance 必须放 synchronized block 中 : 2) : 可以用 byte[] 做lock : 3) : 用 Collections.synchronizedMap initialize instanceMap
|
|
|
q*********u 发帖数: 280 | 21 我估计写Hashtable的话,可以引诱对方问,有没有改进的方法之类的后续跟进,导致
你必须用sychronized关键字。
个人感觉java的多线程面试花样没有c++多,
其实楼主如果敢拼,直接上WeakHashMap,把话题从多线程转出去,
然后就是路漫漫其修远兮,苦海无边,回头是岸。
好象Hashtable是synchronized,所以如果想省事能不能直接用Hashtable?
你这样的话不就是在getInstance前面加个synchronized关键字么?还是不够efficient
这样可以么:
SpecialSingleton ss = instanceMap.get(i);
if(ss!=null){
return ss;
}
ss = instanceMap.get(i);
【在 t****r 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 好象Hashtable是synchronized,所以如果想省事能不能直接用Hashtable? : 你这样的话不就是在getInstance前面加个synchronized关键字么?还是不够efficient : 这样可以么: : : SpecialSingleton ss = instanceMap.get(i); : if(ss!=null){ : return ss; : } : ss = instanceMap.get(i);
|
t****r 发帖数: 304 | 22 为什么要加static block啊?
【在 q*********u 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这个instanceMap个人感觉用factory模式,生成出来,并且是有技巧的,我有过一个巨 : 大的教训,被morgan拒就是差不多有这么个东西,我写道: : static{ : instanceMap = new HashMap(); : } : 对方是很不满意阿,这个真是血的教训,对方提示: : static{ : instanceMap = Collections.synchronizedMap( : new HashMap()); : }
|
q*********u 发帖数: 280 | 23 java中实现的singleton一个标准模板之一阿,
比如Class.forName(com.mysql.jdbc.Driver);
【在 t****r 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 为什么要加static block啊?
|
t****r 发帖数: 304 | 24 饿。。。我从来都是static 变量,没用过static block,有什么区别么?
【在 q*********u 的大作中提到】![](/moin_static193/solenoid/img/up.png) : java中实现的singleton一个标准模板之一阿, : 比如Class.forName(com.mysql.jdbc.Driver);
|
q*********u 发帖数: 280 | 25 这个block比较适合放在工厂生成这种singleton, 当然向楼主那么直接new生产出来,
也是很普遍的,无所谓,看你个人喜好了(这话可能说过了,欢迎讨论)
【在 t****r 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 饿。。。我从来都是static 变量,没用过static block,有什么区别么?
|
m********g 发帖数: 692 | 26 呵呵, 刷个牙回来发现自己犯了个大错误.这要是面试就要被煮了.
看来还是要多上来推敲...
你说对了(楼主原先的block是正确的), 我的做法有可能产生 orphan objects
马上修改
【在 t****r 的大作中提到】![](/moin_static193/solenoid/img/up.png) : ss 是 null,哪来的地址。。。它根本没有refer 到任何object : 很容易验证, : ss = hashmap.get(1);// 现在ss是null : hashmap.put(1, some obj);//现在有了,但是ss还是null
|
m********g 发帖数: 692 | 27 1)
"Collections.synchronizedMap", 这个提的好, 我通常用 new byte[0], 逃过此劫...
另外, 你这里可以给 interviewer 找茬, 说 instanceMap 这里是变化的, 不该用做
object lock
2)
我用 final 为了 inline
3)
static{} 等价于一个 private static initialization method, 和 static 没有区别
的.
基于你的post, 一起改了上面的第一个回复, 多谢
【在 q*********u 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这个instanceMap个人感觉用factory模式,生成出来,并且是有技巧的,我有过一个巨 : 大的教训,被morgan拒就是差不多有这么个东西,我写道: : static{ : instanceMap = new HashMap(); : } : 对方是很不满意阿,这个真是血的教训,对方提示: : static{ : instanceMap = Collections.synchronizedMap( : new HashMap()); : }
|
q*********u 发帖数: 280 | 28 我仔细看了java版关于singleton的讨论,
关于真正singleton thread safe 的三种方法,解决那个同时reach到一个点上的问题
楼主的一种,工厂的一种,public synchronized static getXXXXX(){}
讲的超级好,谈到了static block, 谈到了inner class, 其实楼主的那种方法,final
static XXXXX xxx = new XXXXX()是推荐方法,但那个文章里面说,面试里面要注意
,不能说错,否则后果严重,霍霍。。。。
1)
"Collections.synchronizedMap", 这个提的好, 我通常用 new byte[0], 逃过此劫...
另外, 你这里可以给 interviewer 找茬, 说 instanceMap 这里是变化的, 不该用做
object lock
2)
我用 final 为了 inline
3)
static{} 等价于一个 private static initialization method, 和 static 没有区别
的.
基于你的post, 一起改
【在 m********g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 1) : "Collections.synchronizedMap", 这个提的好, 我通常用 new byte[0], 逃过此劫... : 另外, 你这里可以给 interviewer 找茬, 说 instanceMap 这里是变化的, 不该用做 : object lock : 2) : 我用 final 为了 inline : 3) : static{} 等价于一个 private static initialization method, 和 static 没有区别 : 的. : 基于你的post, 一起改了上面的第一个回复, 多谢
|
w******a 发帖数: 236 | 29 第4题的标准答案可以参见“Head for First Pattern”的第5章“The singleton
pattern”. |
m********g 发帖数: 692 | 30 有链接么, 多谢
btw, 俺不是楼主, 俺是就着楼主的底盘起楼的, 还好没歪, 厚厚...
final
..
做
【在 q*********u 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我仔细看了java版关于singleton的讨论, : 关于真正singleton thread safe 的三种方法,解决那个同时reach到一个点上的问题 : 楼主的一种,工厂的一种,public synchronized static getXXXXX(){} : 讲的超级好,谈到了static block, 谈到了inner class, 其实楼主的那种方法,final : static XXXXX xxx = new XXXXX()是推荐方法,但那个文章里面说,面试里面要注意 : ,不能说错,否则后果严重,霍霍。。。。 : : 1) : "Collections.synchronizedMap", 这个提的好, 我通常用 new byte[0], 逃过此劫... : 另外, 你这里可以给 interviewer 找茬, 说 instanceMap 这里是变化的, 不该用做
|
|
|
m********g 发帖数: 692 | 31 我没记错的话, 它就讲了个 eager, lazy... 跟本题差远了.
另外, 这本书的不少错的, uml 也不少错的. 标准答案怕当不了, 还是来版上跟同志们
起楼吧.
【在 w******a 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 第4题的标准答案可以参见“Head for First Pattern”的第5章“The singleton : pattern”.
|
v***n 发帖数: 562 | |
q*********u 发帖数: 280 | 33 链接贴在下面了,很多牛人已经把问题结论了,原来那个楼主的思路是对的, not lazy,
肯定的thread safe, 这样就解答了是不是reach 到同一个点的问题了
http://mitbbs.com/article/Java/31112459_3.html
我说的那个生产也可以凑合,是lazy,也是教科书里面的模式, 但是还是private
static final XXX xxx = newXXX();被推荐了。
ps一下,个人猜测有几个id是大bank的,迷信一下错不了
我没记错的话, 它就讲了个 eager, lazy... 跟本题差远了.
另外, 这本书的不少错的, uml 也不少错的. 标准答案怕当不了, 还是来版上跟同志们
起楼吧.
【在 m********g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我没记错的话, 它就讲了个 eager, lazy... 跟本题差远了. : 另外, 这本书的不少错的, uml 也不少错的. 标准答案怕当不了, 还是来版上跟同志们 : 起楼吧.
|
k*******n 发帖数: 8891 | |
m********g 发帖数: 692 | 35 多谢, informative, 建议后来的把这贴也都看一遍.
http://mitbbs.com/article/Java/31112459_3.html
PS:
楼主这题不是eager也不是lazy, 或说即是 eager 也是lazy. 从 map instance 看是
eager, 从 class instance 看是 lazy...
感谢楼主贡献好题一道....
【在 q*********u 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这个instanceMap个人感觉用factory模式,生成出来,并且是有技巧的,我有过一个巨 : 大的教训,被morgan拒就是差不多有这么个东西,我写道: : static{ : instanceMap = new HashMap(); : } : 对方是很不满意阿,这个真是血的教训,对方提示: : static{ : instanceMap = Collections.synchronizedMap( : new HashMap()); : }
|
q*********u 发帖数: 280 | 36 这个是原来楼主的代码,大致对的,仔细看看他应该是在写方法2,没有final, 这个
写不写,的确区分层次了,另外他有专门一个synchronized block在getter里面,所以
我觉得他是在写2
但是有可能interviewer会看到这个getter又没有专门的工厂, 会不会然后联想方法三
了,这样需要final, 然后就跟楼主起了争执,
其实就面一个初级的sde, 唉,只能说是水涨船高了。
这个是goodbug的代码,再贴一下
public class Singleton {
private static final Singleton INSTANCE = new Singleton();
private Singleton() {}
public static getInstance() { return INSTANCE; }
}
我写的最后一道题的code,欢迎批评指正
public final class SpecialSingleton{
private Integer i;
private static Map
【在 b******y 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我写的最后一道题的code,欢迎批评指正 : public final class SpecialSingleton{ : private Integer i; : private static Map instanceMap= new HashMap< : Integer, SpecialSingleton>(); : private SpecialSingleton(Ingeter i){ : this.i = i; : } : public static SpecialSingleton getInstance(Integer i){ :
|
t****r 发帖数: 304 | 37 为什么要用byte[]做lock? instanceMap为什么不可以?即使是改变也是在本来的
thread里改,有什么问题呢?
另外下面的帖子有人提到用不用final好象很不一样?能详细说说么?
你这个其实还是不够高效率,还是我之前写过的,看看下面我改的:
因为我们已经保证了get是atomic操作,所以这样写应该不会有问题吧?
Collections.synchronizedMap(new HashMap());
SpecialSingleton ss = instanceMap.get(i);
if(ss!=null){
return ss;
}
HashMap<
【在 m********g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : (boyjemmy 白板code写成这样, 基本功很棒的说) : 和 trcaer 和 qslhangzhou 的推敲后 : 再次改了几个地方, : 欢迎继续拍砖... : 1) : 从map 里get() instance 必须放 synchronized block 中 : 2) : 可以用 byte[] 做lock : 3) : 用 Collections.synchronizedMap initialize instanceMap
|
S********y 发帖数: 26 | 38 1的最后一个问题我觉得如果是equals要compare all fields的时候是good idea,这样
就不用每加一个field就要修改equal method了,请问对么?
If
use
【在 b******y 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这次google电面的问题跟版上面经风格很不一样,基本上都是Java语言的问题,感觉问 : 题并不难,自己觉得回答得也不错,但还是悲剧了。整个面试过程进行比较慢,但大部 : 分时间都是我在等他,每个问题他都想extend一下,但每次他都要想一会儿再问。 : 面经 : 1, equal and hashcode method in java, what happens if hashcode and equal : method are not consistent. How the equal method behaves in Object class? If : I want to rewrite the Object class, I want to implement equals method to use : reflection and compare all the fields in the class, is this a good idea? : Why? : 2, If in my class, my hashcode method return same value for two unequa
|
m********g 发帖数: 692 | 39 见前贴 updated3
【在 t****r 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 为什么要用byte[]做lock? instanceMap为什么不可以?即使是改变也是在本来的 : thread里改,有什么问题呢? : 另外下面的帖子有人提到用不用final好象很不一样?能详细说说么? : 你这个其实还是不够高效率,还是我之前写过的,看看下面我改的: : 因为我们已经保证了get是atomic操作,所以这样写应该不会有问题吧? : : Collections.synchronizedMap(new HashMap()); : SpecialSingleton ss = instanceMap.get(i); : if(ss!=null){ : return ss;
|
t****r 发帖数: 304 | 40 如果按你那么写是不要了,但是你还是没有解决efficiency的问题,如果加上我的修改
,应该还是要synchronizedmap的
【在 m********g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 见前贴 updated3
|
|
|
g*****a 发帖数: 11 | |
j*******g 发帖数: 163 | 42 Don't be sad, move on
If
use
【在 b******y 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这次google电面的问题跟版上面经风格很不一样,基本上都是Java语言的问题,感觉问 : 题并不难,自己觉得回答得也不错,但还是悲剧了。整个面试过程进行比较慢,但大部 : 分时间都是我在等他,每个问题他都想extend一下,但每次他都要想一会儿再问。 : 面经 : 1, equal and hashcode method in java, what happens if hashcode and equal : method are not consistent. How the equal method behaves in Object class? If : I want to rewrite the Object class, I want to implement equals method to use : reflection and compare all the fields in the class, is this a good idea? : Why? : 2, If in my class, my hashcode method return same value for two unequa
|
v****s 发帖数: 1112 | |
m********g 发帖数: 692 | 44 今天忙晕了, 没注意你扔的这个大砖头
见更新4, 增加并发, 改进performance
另外, 不觉得有 bother SynchronizedMap class 的必要.
key 在的时候, 我就是要并发, 不需要 SynchronizedMap 那些 synchronized methods.
key 不在的时候, get , put 都在 synchronized block 中.
【在 t****r 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 如果按你那么写是不要了,但是你还是没有解决efficiency的问题,如果加上我的修改 : ,应该还是要synchronizedmap的
|
l******n 发帖数: 7 | |
P********l 发帖数: 452 | 46 How about this version? |
J*********r 发帖数: 5921 | |