(工程师)
姓名: 电话: 邮箱:
1.下面的代码运行后,将输出什么结果?
String s1 = new String("Test");
String s2 = new String("Test");
if (s1==s2)
if (s1.equals(s2))
System.out.println("Equals");
A.Same
Equals
B.Equals
C.Same
D.编译错误
2.一个班级里的学生有左撇子、右撇子,还有既不是左撇子也不是右撇子的学生。在这道题目里,我们把那些既不是左撇子也不是右撇子的学生看作既是左撇子又是右撇子的学生。班上七分之一的左撇子同时也是右撇子,而九分之一的右撇子同时也是左撇子。问班上是不是有一半以上的人都是右撇子(请写出推理过程)?
答案:设N是既是左撇子又是右撇子的学生数
7N的人是左撇子,9N的人是右撇子
那么N+6N+8N=15N,即全班的学生数
而右撇子在学生总数中所占的比例是9N/15N,即3/5,超过班上一半的人数。
3.说出各种排序的优缺点,适用于什么场景。
4.写出面向对象的四个特征。
抽象、继承、封装、多态
5.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它synchronized方法?
不能,一个对象的synchronized方法只能由一个线程访问。
6.Java中的线程有四种状态分别是:运行、就绪、挂起、结束
7.当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
是值传递。Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。
8.写出两种Singleton(单例模式)的实现代码,并说明其特点。
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
一般Singleton模式通常有几种种形式:
第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
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; }
}
在多线程情况下第一种形式要更加安全些
9.数据表中的primarykey意思?请写出数据库中的索引的利弊?
10.HashMap和Hashtable的区别
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。
Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。
11.是否可以继承String类?
A.是 B.否
12.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
A.对 B.不对
13.一个".java"源文件中是否可以包括多个类(不是内部类)?
A.可以 B.不可以
14.是否可以从一个static方法内部发出对非static方法的调用?
A.可以 B.不可以
15.Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类?
A.可以 B.不可以
16.Anonymous Inner Class (匿名内部类) 是否可以implements(实现)interface(接口)?
A.可以 B.不可以
17.下表是一公司的部门变迁记录表 DEPT_CHG :
| Id | Deptcode (部门编码) | Deptname 部门名称) | Effectivedate (生效日期) | Reason 变动原因) |
| 1 | 101 | 财务部1 | 2000/5/1 | 成立 |
| 2 | 102 | 行政部1 | 2000/6/5 | 成立 |
| 3 | 103 | 销售部1 | 2000/7/5 | 成立 |
| 4 | 101 | 财务部2 | 2001/5/1 | 更名 |
| 5 | 102 | 行政部2 | 2001/6/5 | 更名 |
| 6 | 101 | 财务部3 | 2002/10/10 | 更名 |
2、部门信息应以最后生效的部门为准。
A.请查询出日期为‘2001/9/9’所有部门的下列信息(deptcode, effectivedate),写出相应SQL语句?
select deptcode, max(effectivedate) effdt from dept_chg where effectivedate < '2001-10-1' group by deptcode
B.请查询出变迁次数超过两次的部门
select distinct deptcode effdt from dept_chg where effectivedate < '2001-10-1' group by deptcode having count(deptcode)>2
18.请写出以下程序的输出结果。
public class Test {
Animal a = new Dog();
a.sayHi();
Animal b = new Bulldog();
b.sayHi();
Dog dog = (Dog)b;
dog .sayHi();
check(dog);
Bulldog bulldog = (Bulldog)b;
check(bulldog);
public void check(Dog dog)
public void check(Bulldog bulldog)
}
public interface Animal {
}
public class Dog implements Animal{
return "Bob";
private String bark()
return "wang-wang";
System.out.println("I am " + getName()+". "+bark());
}
public class Bulldog extends Dog {
return "Mike";
private String bark()
return "WOO-WOO";
}
I am Bob. wang-wang
I am Mike. wang-wang
I am Mike. wang-wang
check dogMike.
check bulldogMike.
Customer表定义如下
CREATE TABLE `customer` (
custid` int(10) NOT NULL,
custname` varchar(100) NOT NULL,
date` datetime default NULL,
money` int(10) default NULL,
PRIMARY KEY (`custid`),
KEY `index_customer_custname` (`custname`),
KEY `index_customer_custname_union` (`money`,` date`,`custname`,),
| ) |
CREATE TABLE `secondinfo` (
secid` int(10) NOT NULL,
firstid` int(10) NOT NULL,
custid` int(10) default NULL,
PRIMARY KEY (`secid`),
KEY `Index_secondinfo_custid` (`custid `)
| ) |
SELECT * FROM customer WHERE substring(custname,1,4)='beizhi';
SELECT * FROM customer WHERE custname like 'beizhi%';
SELECT * FROM customer WHERE money/30<1000;
SELECT * FROM customer WHERE money < 30000;
SELECT * FROM customer WHERE custname=3721;
SELECT * FROM customer WHERE custname=’3721’;
SELECT * FROM customer WHERE custname <> ‘mike’;
SELECT * FROM customer WHERE money > ‘mike’ or money < ‘mike’;
SELECT * FROM secondinfo s WHERE s.custid NOT IN (SELECT c.custid FROM customer c);
SELECT * FROM secondinfo s WHERE NOT EXISTS (SELECT c.custid FROM customer c where c.custid = s.custid);
select * from customer where money<1000
union
select * from customer where date >’20080101’;
select * from customer where money<1000 and date <= ’20080101’
union all
select * from customer where date >’20080101’ and money >= 1000;
select * from customer where money > 1000;
select * from customer where money >= 1001;
20.请根据下面的描述,画出实现该功能的核心类图。
对以下3类商品征收销售税,包括:书籍、食品、药品。
基本销售税率为10%,除了食品之外,所有商品都要征收
进口附加税率为5%,所有进口商品都要征收,没有例外
下面是商品列表及价格(含税价),要求计算出商品总价及税费
| 商品名称 | 价格 |
| 面包 | ¥5.50 |
| 进口巧克力 | ¥49.99 |
| 乙肝疫苗 | ¥3.90 |
| 选集 | ¥150.00 |
| 进口原版《指环王》 | ¥99.99 |
提示:需要考虑征收的税种会增加、税率会变化,以及征税商品种类的变化。面试时会提问应对这些变化的策略。
设计的宗旨是应对各种变化情况,核心类基本保持不变,可通过增加附加类形式解决问题。
设计类的个数:商品、商品类别(是否进口作为商品属性还是作为一个商品类别?)、税率、征收规则、税率计算类。
考虑的扩展:
1.商品种类会增加,可能多至数十万种;
2.税种会增加,增加的种类数量不可预期;
3.税率会调整;
4.税率的计算规则会变化,如:先收基本税后收进口税,也可能先收进口税后收基本税;
5.考虑如何出报表,如:按税种,列出每种税征收的金额;按商品类别;下载本文