EasyDemo*Java面试常见题

来源:互联网 发布:英语发音规则 知乎 编辑:程序博客网 时间:2024/06/05 03:01

式题:

1>设一组初始关键字为(20,15,14,18,21,36,40,10),则以20为基准
  记录的一趟快速排序结束后的结果为().

2>写一个Singleton出来。还知道其他的设计模式?
  饿汉式://线程天生安全
//在类初始化时,已经自行实例化
public class Singleton {
private Singleton(){}
private static final Singleton single = new Singleton();
//静态工厂方法
public static Singleton getInstance(){
return single;
}
}

懒汉式://线程天生存在不安全因素
        //synchronized getInstance();双重索 ;静态内部类
//在第一次调用的时候实例化自己
public class Singleton2 {
private Singleton2() {}
private static Singleton 2 single2 = null;
//静态工厂方法
public static Singleton2 getInstance() {
if (single == null) {
single = new Singleton();
}
return single;
}
}

3>写出你所知道的java线程同步的方法。
  a)添加同步方法synchronized
  b)添加同步代码块
eg: synchronized (object) { }

4>请介绍下activity之间传值有几种方法可以实现,请列举。
  Activity跳转与传值,主要是通过Intent类来连接多个Activity,通过Bundle类来传递数据。 
  eg:
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
startActivity(intent);

5>算法题:
求1+2+3+...+n,要求 不能使用乘除法,使用for、while、if、else、switch、case
等关键字以及条件判断语句

6>算法题:
在一个字符串中找到第二个只出现一次的字符。如输入abaccdeff,则输出d。

7>请继承SQLiteOpenHelper实现:
  1)创建一个版本为1的"resOpenHelper.db"的数据库
  2)同时创建一个"resinfo"表(包含一个id主键并自增长,resname字符型100长度,
    address字符型1000长度,hlocation浮点型10位、小数点后4位,creattime时间类型)
  3)在数据库版本变化时请删除resinfo表,并重新创建出resinfo表

8> 在Java中可有两种方式实现多线程?
   a)一种是继承Thread类,一种是实现Runnable接口;
     Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法并
     调用每个线程的start()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限
   b)实现runnable接口,复写run()方法即可