http://blog.sina.com.cn/s/blog_701b128e0101dywn.html
IGT公司java第一轮面试总结
(2013-09-25 22:41:51) 标签: javaitigt | 分类: JAVA学习中的总结 |
以上问题最直观的解决办法就是给getInstance方法加上一个synchronize前缀,这样每次只允许一个现成调用getInstance方法:
- public
static synchronized Singleton getInstance(){ -
if (instance == null) -
instance = new Singleton(); -
return instance; - }
曾经有人为了解决以上问题,提出了double-checked locking的解决方案
- public
static Singleton getInstance(){ -
if (instance == null) -
synchronized(instance){ -
if(instance == null) -
instance = new Singleton(); -
} -
return instance; - }
1.
2.
3.
4.
5.
4
为了实现慢加载,并且不希望每次调用getInstance时都必须互斥执行,最好并且最方便的解决办法如下:
- public
class Singleton{ -
private Singleton(){ -
… -
} -
private static class SingletonContainer{ -
private static Singleton instance = new Singleton(); -
} -
public static Singleton getInstance(){ -
return SingletonContainer.instance; -
} - }
5.可以画出数据库表的联合查询结果?(内连接、左外连接、右外连接)
create table A(aid int(1),adata varchar(1));
create table B(bid int(1),bdata varchar(1));
insert into A values(1,'1');
insert into A values(2,'2');
insert into A values(3,'3');
insert into B values(1,'1');
insert into B values(2,'2');
insert into B values(4,'4');
select *from A a inner join B b on(a.aid=b.bid);
select *from A a left outer join B b on(a.aid=b.bid);
select *from A a right outer join B b on(a.aid=b.bid);
6.session是用来干什么的?
7.spring是用来做什么的?
8.一个无序集合放着可能重复的数字(1-100),请用你认为很快的方法找到里面重复的数字有哪些?