高薪水笔试题????

xz342181933 2007-02-04 01:42:18
1.请写一个Singleton的例子,有效代码不得超出10行.
2.以代码方式列出你所知道的连接字符串的各种方法.
...全文
1463 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
AOKIO 2007-02-05
  • 打赏
  • 举报
回复
我当初面试的时候就考的这个.嘿嘿.也没啥高薪.哎...
szm880828 2007-02-05
  • 打赏
  • 举报
回复
glacierking(一城) 说的很对。连方法的性能都说的很好。。。。肯定是老技术员了。。。
88324877 2007-02-05
  • 打赏
  • 举报
回复
glacierking(一城) ( )
厉害
luyang1016 2007-02-05
  • 打赏
  • 举报
回复
“茴香豆”的“茴”字有几种写法?
为什么我的第一反应是孔乙己的这个问题呢~~
=============================
讨论技术而已。
和孔乙己无关
Moon 2007-02-05
  • 打赏
  • 举报
回复
“茴香豆”的“茴”字有几种写法?
为什么我的第一反应是孔乙己的这个问题呢~~


lxjaccp 2007-02-04
  • 打赏
  • 举报
回复
String 用处多吧!~
glacierking 2007-02-04
  • 打赏
  • 举报
回复
连接字符串,可以通过多种方法,java只对String类对"+"进行了重载,而且java不比c++,java不支持运算符重载.
我们可以采用+号对连接字符串,可以通过stringbuffer速度比stringbuilder稍慢,但它支持多线程;stringbuilder速度快,但不支持多线程.
glacierking 2007-02-04
  • 打赏
  • 举报
回复
第一种形式:
public class Singleton {
  private Singleton(){}
  private static Singleton instance = new Singleton(); 
  public static Singleton getInstance() {
    return instance;   
   }
}
其中:
private static Singleton instance = new Singleton();
每个对像都有个对像监视器,而静态成员变量之所以能达到同步,是因为它的监视器是它本身的class类所提供的.
public class Singleton {
  private Singleton(){}
私有构造函数是必要的,这是为了不能在单件模式中设计构造方法构造singleton

第二种形式:

public class Singleton {
  private static Singleton instance = null;
  public static synchronized Singleton getInstance() {

  //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次 ?
这句话是错误的,因为这方法比上面没任何改进,而且还有所降低,虽然上面的是懒汉型的,但是它的对像监视器是class,而不是this对像,所以要比这个用  synchronized 达到同步的要好,而我们为什么要采用synchronized ,或是lock(this),lock(obj)是因为我们还要在if()语句块中写其它代码,比如multiton,比如初始化点东西等等.  
  //使用时生成实例,提高了效率!
  if (instance==null)
    instance=new Singleton();
  return instance;   }

}


第三种形式:
class Singleton{
private static Singleton s;
private Singleton(){}
public static Singleton getInstance(){
 lock(this){//这里可以lock(obj),lock(this)采用this对像的监视器,跟synchronized所用的是同一个监视器this,所以他们都可以构建临界区.
if(s == null){
s = new Sigleton();
}
}
return s;
}

如果大家对23 种基本模式及23以外的比如模式扩展等有问题或想交流的,可以加我QQ:85177960
rcom10002 2007-02-04
  • 打赏
  • 举报
回复
M1:
Singleton class {
private static Singleton instance = new Singleton();
public static Singleton getInstance() {
return instance;
}
}
M2:
Singleton class {
private static Singleton instance;
public static Singleton getInstance() {
return (instance == null) ? instance = new Singleton() : instance;
}
}

a += b
a = a.concat(b);
mutouhehe 2007-02-04
  • 打赏
  • 举报
回复

第一种形式:
public class Singleton {

  private Singleton(){}

  //在自己内部定义自己一个实例,是不是很奇怪?
  //注意这是private 只供内部调用

  private static Singleton instance = new Singleton();

  //这里提供了一个供外部访问本class的静态方法,可以直接访问  
  public static Singleton getInstance() {
    return instance;   
   }
}




第二种形式:

public class Singleton {
  private static Singleton instance = null;

  public static synchronized Singleton getInstance() {

  //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次     
  //使用时生成实例,提高了效率!
  if (instance==null)
    instance=new Singleton();
  return instance;   }

}

我是新人

zhxjcooler 2007-02-04
  • 打赏
  • 举报
回复
class Singleton{
private Singleton s = new Singleton();
private Singleton(){}
public static Singleton getInstance(){return s;}
}
对不起,这样才对
构造方法必须私有
jahcy 2007-02-04
  • 打赏
  • 举报
回复
class Singleton{
private Singleton s = new Singleton();
private Singleton(){}
public Singleton getInstance(){return s;}
}
也不对,private Singleton(){}都私有了,如何调用getInstance(),你都不能创建对象了.正确的应该都加上statice.
private static final Singleton s = new Singleton();
public static Singleton getInstance(){return s;}
zhxjcooler 2007-02-04
  • 打赏
  • 举报
回复
class Singleton{
private static final private Singleton s = new Singleton();
private Singleton(){}
public Singleton getInstance(){return s;}
}
我觉得这才是单态;
private static final private Singleton s = new Singleton();
这行必须加上static final ,不然如果一个对象继承了Singleton类,对s变量做了修改,再把s上溯为Singleton类的话,就会产生两个Singleton类的实例

iambic 2007-02-04
  • 打赏
  • 举报
回复
>>2.以代码方式列出你所知道的连接字符串的各种方法.
“知道”一词太过无理。
诗海 2007-02-04
  • 打赏
  • 举报
回复
class Singleton{
private static s;
private Singleton(){}
public static Singleton getInstance(){
if(s == null){
s = new Sigleton();
}
return s;
}

public final static void main(String[] args){
Sigleton st = Sigleton.getInstance();
//todo use the st
}
}
szm880828 2007-02-04
  • 打赏
  • 举报
回复
是啊。。都已经final了还能在改么?还有只能返回一个。。所以楼上的说的对啊。
believefym 2007-02-04
  • 打赏
  • 举报
回复
final static boolean created = true; //final?
public Singleton() {
created = false; //final?
}
believefym 2007-02-04
  • 打赏
  • 举报
回复
楼上的是singleton吗?
的确是singleton,只不过这个singleton是指只能第一个人获得,其他人都只能获得null
class Singleton{
private Singleton s = new Singleton();
private Singleton(){}
public Singleton getInstance(){return s;}
}
blh 2007-02-04
  • 打赏
  • 举报
回复
1.
class Singleton {
final static boolean created = true;

public Singleton() {
created = false;
}

public static Singleton create() {
if (created) {
return new Singleton();
}
return null;
}
}


2. String a, b;
a += b;
a = a + b;
a = new String(a + b);
a = new StringBuffer(a).append(b);
...
flybird 2007-02-04
  • 打赏
  • 举报
回复
第二个问题 请高手给出正解,我只知道3种.
加载更多回复(1)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧