Java面试试题ZYP.docx
《Java面试试题ZYP.docx》由会员分享,可在线阅读,更多相关《Java面试试题ZYP.docx(16页珍藏版)》请在冰豆网上搜索。
![Java面试试题ZYP.docx](https://file1.bdocx.com/fileroot1/2023-1/4/34c6c242-2f78-42fb-ab78-0c627801a4b5/34c6c242-2f78-42fb-ab78-0c627801a4b51.gif)
Java面试试题ZYP
答卷请另外用纸,并注明:
姓名、年月日、开始时间、结束时间。
请不要在问卷上直接填写任何内容。
1.通用编程知识问卷(所有编程人员必做)
1.1编程风格问卷
【问题】
有一些变量,请你命名:
数据类型
中文含义
作用域
你的命名
Int
序列号
全局变量
globalID
(类)
用户帐单
(类)
UserReckoning
String/CString
用户名称
类成员
userName
Float
当月收入
类成员
currentMonHarvest
Char*
营业员
类成员
business
Double1
罚款
局部变量
1smartMoney
请说明你的命名原则。
一、Class:
第一个字母大写;如果是复合的单词,每个单词的第一个字母大写!
二、StaticFinal:
变量的名字全部都大写,并且指出完整含义
三、Class变量:
如果是一个单词,全部小写;如果是复合单词,从第二个单词开始,每个单词的第一个字母大写!
1.2翻译
将下面的文字翻译为中文:
ExceptionsaregeneratedbytheJavaruntimesysteminresponsetoerrorsthataredetected
whenclassesareloadedandtheirmethodsareexecuted.Theruntimesystemissaidtothrowtheseruntimeexceptions.Runtimeexceptionsareobjectsoftheclassjava.lang.RuntimeExceptionorofitssubclasses.
异常的产生是发生在JAVA运行时,当类被载入并且它们的方法被调用,系统响应错误。
运行时异常提示抛出这些错误,运行时异常是java.lang.RuntimeException类的对象或其子类对象。
2.数据库
2.1【问题】
有下列两张表:
USERLIST表:
TELEPHONE(Varchar(10),主键)
ACCOUNT(varchar(10))
RENT
(numeric(10,2))
4210001
AAAA
19.50
4210002
AAAA
20.50
4210003
BBBB
100.00
4210004
CCCC
250.00
CHARGE表:
TELEPHONE(Varchar(10),主键)
FEE01
(numeric(10,2))
FEE02
(numeric(10,2))
FEE03
(numeric(10,2))
FEE04
(numeric(10,2))
4210001
11.00
12.00
13.00
14.00
4210002
21.00
22.00
23.00
24.00
4210003
31.00
32.00
33.00
34.00
请用最少的SQL语句,产生下述查询结果:
ACCOUNT(Varchar(10),主键)
USERS(int)
RENT
(numeric(10,2))
FEE01
(numeric(10,2))
FEE02
(numeric(10,2))
FEE03
(numeric(10,2))
FEE04
(numeric(10,2))
AAAA
2
40.00
32.00
34.00
36.00
38.00
BBBB
1
100.00
31.00
32.00
33.00
34.00
CCCC
1
250.00
0.00
0.00
0.00
0.00
其中:
CHARGE表中并没有记录。
数据是经过USERLIST、CHARGE表进行合适的连接后以ACCOUNT为关键字分组求和得到。
【特别注意】:
电话号码4210004在USERLIST表中有一条记录,但是在但结果中合同号CCCC具有一条记录。
请写出SQL语句。
Selectaccount,count(account)asusers,sum(rent)asrent,sum(nvl(fee01,0))asfee01,sum(nvl(fee02,0))asfeel02,sum(nvl(fee03,0))asfee03,sum(nvl(fee04,0))asfeel04fromuserlista,chargebwhere
a.telephone=b.telephone(+)groupbyaccount;
字段代码
字段类型
USERNO
NUMBER
NAME
VARCHAR2(128)
字段代码
字段类型
USERNO
NUMBER
NAME
VARCHAR2(128)
B表数据量都在400万左右,现在想用B表的数据更新A表的用户姓名,并把B表中A表没的记录加入到A表,请写出最优化的SQL
2.3【问题】在实际应用中,我们经常遇到需要转换数据的显示方式,比如将横表转为纵表,或将纵表转为横表的情况请运用SQL实现一下数据转换:
(转换前)select*fromtestgrade_idsubject_namemax_score
98
95
87
97
100
92
1语文
2数学
2政治
5语文
5数学
5政治
(转换后)年级语文数学政治一年级9800二年级09587五年级9710092Selectgrade_id,sum(decode(subject_name,sum(decode(subject_name,'Sum(decode(subject_name,'
2.4【问题】
在进行数据逻辑集合比较的时候,
包括UNION,INTERSECT,MINUS分别指出这几个操作的含义。
Union:
求两个查询的合集!
Intersect:
求两个查询的交集,即两个查询结果的公共部分!
Minus:
求两个查询的差集,即,从第一个查询中去掉第二个查询的结果,为最后的返回结果!
如果TEST1,TEST»个表都只有一个字段ANUMBE且其中有重复数据
SELECTAFROMTEST1
UNION
SELECTAFROMTEST2
和
SELECTAFROMTEST1
UNIONALL
SELECTAFROMTEST2
结果一样么?
?
请对你的结论说明原因。
第一种用法会删除重复的资料。
第二种用法不会删除重复的资料。
2.5
DBMS_JO来实现的
?
?
?
【问题】数据库为我们提高了定时调用存储过程和脚本的机制,该功能通过请写出调用该过程的语句。
我们可以通过查看数据库中的那个试图来监控队列任务的基本情况DBA_JOBS,USER_JOBS
2.6【问题】请阅读一下代码,proceduretestasbegin
createtabletest_pp(anumber);insertintotest_ppvalues
(1);
commit;
end;如有错误之处请修改,并说明修改原因。
如果没有不必作答。
没有
2.7【问题】请简单说明一下建立分区表的意义。
为了改善大型表的可伸缩性和可管理性
(分区表的好处)
createtableguestbook(
idnumber(16)primarykey,usernamevarchar2(64),sexemail
varchar2
(2),
varchar2(256),
varchar2(128),varchar2(4000),date,
expressioncontenttimeippartitionbyrange(time)
varchar2(64))
(partitiong_2000q4valueslessthan(partitiong_2001q1valueslseethan(partitiong_2001q2valueslessthan()以time分区名:
分区名:
分区名:
‘2001-01-01')<0tablespaceusers,
'2001-04-01'
'2001-07-01'
)<0tablespaceusers,
)<0tablespaceusers,
字段分区,标准
g_2000q4范围:
g_2001q1范围:
g_2001q2范围:
<'2001-01-01'(日期)
>'2001-01-01'<'2001-04-01'
>'2001-04-01'<'2001-07-01'
请修改上述代码,将guestbook建成一个分区表。
2.8【问题】
A,B表的115£只_"字段和ACCT_MONTH
现在我们需要对A表和B表进行连接操作,需要关联
段
SELECTA.USER_NO,A.ACCTMOTNH,COUNT(*)FROMTEST1A,TEST2BWHEREA.USER_NO=B.USER_NOANDA.ACCT_MONTH=B.ACCT_MONTH为了提高该SQL的效率需要在B表上建立索弓I,请问应该怎么建立。
写出相应的SQL如果B表上在USER_N@已经建立了索引,下面的查询会用到该索引么?
?
SELECT*FROMTEST2B
WHERETO_NUMBER(USER_NO)='222313';CreateindexB_indexonB(user_no,acct_month);用不到因为有函数TO_NUMBER
【问题】
Vector类的理解,并写出常用到的对向量的增、删、插、定位及获取长度的方法。
增:
publicBooleanadd(Objecto);
Publicvoidadd(intindex,Objectelement)删:
publicObjectremove(intindex)PublicBooleanremove(Objecto)插:
publicObjectset(intindex,Objectelement)定位:
publicintindexOf(Objectelem)PublicObjectget(intindex)长度:
publicintsize()
3.2【问题】
请给出下面一段程序的执行结果:
publicclassBase{voidIam(Baseb){
System.out.pirntln(“Base;Overload”);
}voidIam(Childc){System.out.println(“Child;Overload”);
}publicstaticvoidmain(String[]args){Base[]test=newBase[]{newBase(),newChild();}For(inti=0;i}
}classChildextendsBase{voidIam(Baseb){System.out.println(“Base;Override”);
}
voidIam(Childc){
System.out.println(“Child;Override”);
}
}
System.out.println(“Child;Overload”);System.out.println(“Child;Override”);
3.3【问题】
Jsp的两种跳转方式分别是什么?
有什么区别?
1.forword:
在当前连接中引入要转向的页面!
2.Response.sendRedirec断开当前页面连接,重新打开新的页面!
3.4【问题】
请找出下面一段程序出现的问题,并给出合理的解决方案或者修改程序(前面的数字表示行号)1OutputStreamWriterout=...
2java.sql.Connectionconn=...
3try{
4Statementstat=conn.createStatement();
5ResultSetrs=stat.executeQuery(
6"selectuid,namefromuser");
7while(rs.next())
8{
9out.println("ID:
"+rs.getString("uid")
10",姓名:
"+rs.getString("name"));
11}
12conn.close();
13out.close();
14}
15catch(Exceptionex)
16{
17ex.printStackTrace();
18}
对象rs和stat应在后面关闭!
while语句一般不写在TRY中!
这样会降低执行的效率!
改为:
1OutputStreamWriterout=...
2java.sql.Connectionconn=...
3try{
4Statementstat=conn.createStatement();5ResultSetrs=stat.executeQuery(6"selectuid,namefromuser");
7catch(Exceptionex)
8{
9ex.printStackTrace();
10}
11while(rs.next())
12{
13out.println("ID:
"+rs.getString("uid")
14",姓名:
"+rs.getString("name"));
15}
16try{
17rs.close()
18stat.close()
19conn.close();
20out.close();
21}
22catch(Exceptionex)
23{
24ex.printStackTrace();
25}
3.5【问题】
请完成一个java类,要求:
将Resultset转换为Vector,并实现类似ResultSet的GetString(intFieldlndex)、Next()方法。
3.6【问题】
如何防止Form的重复提交?
(可以用文字描述)获取提交的信息,以获取的信息为条件查找数据库,返回结果集,如果结果集不为空,表明已经提交过了
3.7基础题
多项选择题(在每小题的五个备选答案中选出正确答案,并将正确答案的序号填入题干后面的括号内,错选多选,
漏选均不得分。
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
c
abd
c
Cd
abcd
A,e
ade
abc
c
ad
bc
d
ac
b
b
c
b
ad
abc
c
2、下面哪几个函数是publicvoidexample(){...}的重载函数?
A、publicvoidexample(intm){...}
B、publicintexample(){...}
C、publicvoidexampIe2(){...}
D、publicintexample(intm,floatf){...}
重载是型的方法了怎样都行就是名相同即可
3、给出下面的代码段:
PublicclassBase{
intw,x,y,z;
publicBase(inta,intb)
{
x=a;y=b;
}
publicBase(inta,intb,intc,intd)
{
//assignmentx=a,y=b
w=d;
z=c;
}
}
在代码说明//assignmentx=a,y=b处写入如下哪几个代码是正确的?
A、Base(a,b);
B、x=a,y=b;
C、x=a;y=b;
D、this(a,b);构造方法中怎么能调构造方法呢
4、已知如下定义:
Strings="story";
下面哪个表达式是合法的?
A、s+="books";
B、charc=s[1];
C、intlen=s.length;
D、Stringt=s.toLowerCase();story”是String的对象不可用下表取值它有cd两种方法
5、Java中main()函数的值是什么?
A、String
B、int
C、char
D、voidmain函数是可以重载的
6、如下哪些字串是Java中的标识符?
A、fieldname
B、super
C、3number
D、#number
E、$number以字母或下划线或美元符号开头
7、如下哪些是Java中有效的关键字?
constNULLfalsethis
A、
B、
C、
D、
9、inti=1;
intj;
j=i++;
A、1,1
B、1,2
C、2,1
D、2,2
10、下面句话是正确的?
A、>>是算术右移操作符.
B、>>是逻辑右移操作符.
C、>>>是算术右移操作符
D、>>>是逻辑右移操作符
11、下面哪个赋值语句是合法的?
A、floata=2.0
B、doubleb=2.0
C、intc=2
D、longd=2
12、下面哪个是main()函数的合法参数?
A、charargs[]
B、charargs[][]
C、Stringarg[]D、Stringargs[]
13、下面哪个语句是创建数组的正确语句?
A、floatf[][]=newfloat[6][6];
B、float[]f[]=newfloat[6][6];
C、floatf[][]=newfloat[][6];
D、float[][]f=newfloat[6][6];
E、float[][]f=newfloat[6][];
14、已知表达式intm[]={0,1,2,3,4,5,6};下面哪个表达式的值与数组下标量总数相等?
A、m.length()
B、m.length
C、m.length()+1
D、m.length+1
15、已知如下的命令执行javaMyTestabc请问哪个语句是正确的?
A、args[0]="MyTestabc"B、args[0]="MyTest"C、args[0]="a"
D、args[1]='b'
16、已知如下代码:
publicclassTest{longa[]=newlong[10];publicstaticvoidmain(Stringarg[]){System.out.println(a[6]);
}
}请问哪个语句是正确的?
A、Outputisnull.B、Outputis0.C、Whencompile,someerrorwilloccur.D、Whenrunning,someerrorwilloccur.
17、已知如下代码:
booleanm=true;
if(m==false)System.out.println("False");else
System.out.println("True");执行结果是什么?
A、False
B、True
C、None
D、Anerrorwilloccurwhenrunning.
18、已知如下代码:
publicclassTest
{publicstaticvoidmain(Stringarg[]){inti=5;
do{
System.out.println(i);
}while(--i>5)
System.out.println("finished");
}
A、
B、
C、
D、
E、
19、
outer:
for(inti=0;i<3;i++)
inner:
for(intj=0;j<2;j++)
{
if(j==1)continueouter;
System.out.println(j+"and"+i);}
A、
B、
C、
}执行后的输出是什么?
5
4
6
Finished
None下面代码执行后的输出是什么?
0and0
0and1
0and2
D、
E、
F、
G、
H、
I、2and2
20、已知如下代码:
switch(m)
{
case0:
System.out.println("Condition0");
case1:
System.out.println("Condition1");
case2:
System.out.println("Condition2");case3:
System.out.println("Condition3");break;default:
System.out.println("OtherCondition");
}
当m的值为什么时输出"Condition2"?
0
1
2
3
4
None
1and0
1and1
1and2
2and0
2and1
A、B、C、
D、E、F、
4.
其他
请简述一下你的经历、你擅长的技术和你希望到公司之后的发展方向!
是否可以出差?