秋招—亚信笔试题【带答案】

亚信笔试题

一.问答题(每题4分,共20分)

1.HashMap和HashTable的区别?
2.String和StringBuffer的区别?
3.数据库内连接和外连接的区别?
4.Select语句中,哪些情况下,虽然在列上建立了索引,但索引不起作用?
5.在Unix系统当前的test目录中查找所有以test开头的文件?

二.Java编程题(每题12分,共24分)

1.请编写程序,实现对”5,8,2,4,3,6,1”数字按升序,降序进行输出?
2.写一段Jdbc连接Oracle的程序,并实现数据查询?

三.数据库基础知识(每题8分,共16分)

1.请问下面这条SQL执行后,哪些EmpID将作为结果中的一部分返回?

SELECT empid,dept,salary FROM employee outer
WHERE salary>(SELECT min(salary) FROM employee inner
WHERE inner.dept=outer.dept)

表结构如下:

EmpidDeptSalaryHireDateSupervisorID
1001Finance100001-Nov-981020
1002Finance1500012-Dec-961020
1020Finance300009-Feb-931020
1015HumanResources2000015-Mar-011035
1008Operations900022-Aug-971045
1010Operations120009-Jul-011013
1035Operations4000014-Sep-951000
1007Maintenance50007-Oct-011017
1050HumanResources100005-Apr-981045
1000Executive6000025-Nov-93
1016HumanResources1100013-Oct-011045

2.表acct_item(acct_item_id,acct_id,acct_item_tpye_id,charge(费用,单位分))
问题:查询acct_id 总费用大于100元的合同号,按总费用降序排序,总费用相同时,按acct_id升序排序


答案

一、问答题

1、
1)HashMap不是线程同步的,HashTable是线程同步的,所以在多线程的情况下HashMap速度会高于HashTable
2)HashMap允许空键值,HashTable不允许空键值
3)HashMap实现了Map接口,而HashTable是继承了Dictionary类

2、
String是final修饰的类,所以值一旦确定就不能更改,如果值发生变化会新建一个String对象
StirngBuffer的内容是可变的

3、
内连接:inner outer join 参与查询的两张表都必须满足连接条件
外连接:left|right outer join连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。
包括左外连接、右外连接和全外连接full join[左外+右外]

4、
1)where子句中使用+,-这类的运算符
2)模糊查询时使用 % 开头
3)建立的索引的列根本没有查询时
4)where子句中有or作为条件连接
5)如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引
6) 查询条件使用函数在索引列上
7)where子句中使用了not in ,not exist等等

5、find /path路径 -name “test*"

二、编程题

1、

for (int i = 0; i < arr.length -1; i++){  
     for(int j = 0 ;j < arr.length - i - 1; j++){  
              if(arr[j] < arr[j + 1]){   
                 int temp = arr[j];
                 arr[j] = arr[j + 1];
                 arr[j + 1] = temp;
              }
 }

2、

Class.for(“oracle.jdbc.driver.OracleDriver”);
String url=”jdbc:oracle:thin:@localhost:1521:orcl”;
Connection conn=DriverManager.getConnection();
Statement stat=conn.createStatement();
ResultSet rs=stat.executeQuery(“select * from table”);
While(rs.next()){
	 Int id=rs.getInt(“id”);
}	
Rs.close();
Stat.close();
Conn.close();

Class.forName()  //加载驱动
Connection conn = DriverManager.getConnection() //建立连接
PreparedStatement pstmt = conn.prepareStatement(sql); //预编译sql语句
//如果需要设置值
ResultSet result = pstmt.执行sql语句 ,获取结果集

三、数据库
1、排除各部最低工资的所有员工ID
1002 Finance 15000
1010 Operations 12000
1015 HumanResources 20000
1016 HumanResources 11000
1020 Finance 30000
1035 Operations 40000

2、

select acct_id,sum(charge) ch
from acct_item
group by acct_id
having sum(charge)>100
order by sum(charge) desc,charge asc

Select acc_id,sum(charge) sum_charge 
from acct_item 
Group by acc_id
Having sum(charge)>100
Order by sum_charge desc,acct_id asc
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孙和龚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值