辞职之前给公司出了一套面试题,,大家觉得难度如何??
Oracle数据库考核:
1. 写一个jdbc连接数据库,增删改查数据的代码(简要的写就可以了)。
答案:
publicstaticvoid main(String[] args) {
//TODO Auto-generated method stub
Connection cn = null;
CallableStatement cstmt =null;
try {
//这里最好不要这么干,因为驱动名写死在程序中了
Class.forName("");
cn = DriverManager.getConnection("");
插入:
cstmt = cn.prepareCall("{call insert_Student(?,?,?)}");
cstmt.registerOutParameter(3,Types.INTEGER);
cstmt.setString(1, "wangwu");
cstmt.setInt(2, 25);
cstmt.execute();
System.out.println(cstmt.getString(3));
…………………………………………………………………..其它代码
} catch (Exception e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
try {
if(cstmt !=null)
cstmt.close();
if(cn !=null)
cn.close();
} catch (SQLException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2. 用一条sql语句递归查询出开福区所属的上级(含开福区)所有区域,结果类似如下图
湖南省
长沙市
开福区
(备注:涉及到的数据表base_region区域表)
答案:
select br.region_name from base_region br where br.parent_id!=-1 start with br.region_code='430105000000'
connect by prior br.parent_id =br.region_code order by region_code
3. 用一条sql语句查询出所有的企业数和存在企业事故的企业数,结果类似如下图
总共企业个数 存在事故企业个数
530 23
(备注:涉及到的数据表base_enterprise_info企业信息表 Base_enterprise_accident企业事故表)
答案
select
sum(decode(A.title,'entNumber',cnt,0))as "总共企业个数",
sum(decode(A.title,'accidentNumber',cnt,0))as "存在事故企业个数"
from (
select 'entNumber'title,to_char(count( be.ent_id))cnt from base_enterprise_info be
union all
select 'accidentNumber'title,to_char(count(be.ent_id))cnt from base_enterprise_info be ,Base_enterprise_accident ba where
be.ent_id = ba.ent_id
)A
4. 在test用户下建立
数据库设计:设计部门信息depart和用户user信息
基本要求:1)部门必须由层次关系(类似树形结构)
2)用户可以在多个同时部门出现
3)只需设计表即可
Java机试题
1. List、Map、Set三个接口,存取元素时,各有什么特点?
2.在java io流里用到了大量的设计模式,如装饰者decorate模式,请仿写一个?
3、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序(从大到小):
文本:
1,张三,28
2,李四,35
3,张三,28
4,王五,35
5,张三,28
6,李四,35
7,赵六,28
8,田七,35
.
Js机试题
1. 请写出用于校验HTML文本框中输入的内容全部为数字的javascript代码?
答案:<input type="text" id="d1" οnblur=" chkNumber (this)"/>
<script type=”text/javascript” />
function chkNumber(eleText)
{
var value = eleText.value;
var len = value.length;
for(var i=0;i<len;i++)
{
if(value.charAt(i)>"9" || value.charAt(i)<"0")
{
alert("含有非数字字符");
eleText.focus();
break;
}
}
}
</script>
2. 判断第二个日期比第一个日期大?
(要求:
如何用脚本判断用户输入的的字符串是下面的时间格式2004-11-21必须要保证用户的输入是此格式,并且是时间,比如说月份不大于12等等,另外我需要用户输入两个,并且后一个要比前一个晚,只允许用JAVASCRIPT,请详细帮助作答
)
答案: <script type="text/javascript">
window.onload = function()
{
document.getElementById("frm1").onsubmit =
function(){
var d1 = this.d1.value;
var d2 = this.d2.value;
if(!verifyDate (d1)) {alert("第一个日期格式不对");return false;}
if(!verifyDate (d2)) {alert("第二个日期格式不对");return false;}
if(!compareDate(d1,d2)) {alert("第二个日期比第一日期小");return false;}
};
}
function compareDate(d1,d2)
{
var arrayD1 = d1.split("-");
var date1 = new Date(arrayD1[0],arrayD1[1],arrayD1[2]);
var arrayD2 = d2.split("-");
var date2 = new Date(arrayD2[0],arrayD2[1],arrayD2[2]);
if(date1 > date2) return false;
return true;
}
function verifyDate(d)
{
var datePattern = /^\d{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]\d|3[0-1])$/;
return datePattern.test(d);
}
</script>
<form id="frm1" action="xxx.html">
<input type="text" name="d1" />
<input type="text" name="d2" />
<input type="submit"/>
</form>