Java笔试题答案.docx
- 文档编号:3711210
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:8
- 大小:17.18KB
Java笔试题答案.docx
《Java笔试题答案.docx》由会员分享,可在线阅读,更多相关《Java笔试题答案.docx(8页珍藏版)》请在冰点文库上搜索。
Java笔试题答案
1.下面的代码段中,执行之后i和j的值是什么:
(5分)C
inti=1;
intj;
j=i++;
A、1,1
B、1,2
C、2,1
D、2,2
2.程序运行结果是:
(5分)C
publicclassFoo{
publicstaticvoidmain(Stringargs[]){
Strings;
System.out.println(“s=”+s);
}
}
A、s=s
B、s=null
C、编译错误
D、null
3.检查下面这段代码是否正确?
简单说明一下原因(5分)
publicclassSomething
{
publicstaticvoidmain(String[]args)
{
Othero=newOther();
newSomething().addOne(o);
}
publicvoidaddOne(finalOthero)
{
o.i++;
}
}
classOther
{
publicinti;
}
正确,方法addOne的参数o被final修饰,意味着o不可变,而o.i++只是改变了o的变量,o本身并没变
4.下面程序的输出结果是:
(5分)A
publicclassTest2{
staticbooleanfoo(charc){
System.out.print(c);
returntrue;
}
publicstaticvoidmain(String[]argv){
inti=0;
for(foo('A');foo('B')&&(i<2);foo('C')){
i++;
foo('D');
}
}
}
A.ABDCBDCB
B.ABCDABCD
C.Compilationfails.
D.Anexceptionisthrownatruntime.
5.简单说明下什么是同步和异步:
(10分)
同步指多个线程共用一个资源,一个线程使用,其余线程等待
异步指多个线程可以同时对一个共享资源做操作,无需等待
同步可以避免死锁、脏数据的发生
异步可以提高工作效率
6.Final、finally代码块、finalize()三者有什么区别:
(10分)
final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示始终执行
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,供垃圾收集时的其他资源回收。
7.用java语言写一个简单的动态代理的程序:
(15分)
接口类:
publicinterfaceTargetInterface{
publicinttargetMethod(intnumber);
}
实例类:
publicclassConcreteClassimplementsTargetInterface{
@Override
publicinttargetMethod(intnumber){
returnnumber;
}
}
代理类:
publicclassProxyHandlerimplementsInvocationHandler{
privateObjectconcreteClass;
publicProxyHandler(ObjectconcreteClass){
this.concreteClass=concreteClass;
}
publicObjectinvoke(Objectproxy,Methodmethod,Object[]args)throwsThrowable{System.out.println("Beforeinvokemethod...");
//普通的Java反射代码,通过反射执行某个类的某方法
Objectobject=method.invoke(concreteClass,args);
returnobject;
}
}
publicclassDynamicProxyExample{
publicstaticvoidmain(String[]args){
ConcreteClassc=newConcreteClass();//元对象(被代理对象)
InvocationHandlerih=newProxyHandler(c);//代理实例的调用处理程序。
//创建一个实现业务接口的代理类,用于访问业务类(见代理模式)。
//返回一个指定接口的代理类实例,该接口可以将方法调用指派到指定的调用处理程序,如ProxyHandler。
TargetInterfacetargetInterface=(TargetInterface)Proxy.newProxyInstance(c.getClass().getClassLoader(),c.getClass().getInterfaces(),ih);
//调用代理类方法,Java执行InvocationHandler接口的方法.
inti=targetInterface.targetMethod(5);
System.out.println(i);
}
}
8.数据库基础知识
给出如下四个表定义:
CREATETABLE院系(
院系号VARCHAR(5),
名称VARCHAR(20)NOTNULLUNIQUE,
联系电话VARCHAR(20),
人数INTEGER,
PRIMARYKEY(院系号)
)
CREATETABLE学生(
学号VARCHAR(6)NOTNULL,
姓名VARCHAR(8)NOTNULL,
生日DATENOTNULL,
院系VARCHAR(5)NULL,
性别CHAR
(1)NOTNULL,
PRIMARYKEY(学号),
FOREIGNKEY(院系)REFERENCES院系(院系号),
CONSTRAINTCK_STUDENT_0CHECK(((性别='男')OR(性别='女'))))
CREATETABLE课程(
课程号VARCHAR(4)NOTNULL,
名称VARCHAR(30)NOTNULLUNIQUE,
先修课VARCHAR(4)NULL,
学分NUMERIC(3,1)NOTNULL,
PRIMARYKEY(课程号),
FOREIGNKEY(先修课)REFERENCES课程(课程号),
CONSTRAINTCK_COURSE_0CHECK(学分>0)
)
CREATETABLE选课(
学号VARCHAR(6)NOTNULL,
课程号VARCHAR(6)NOTNULL,
成绩NUMERIC(6,2)NOTNULL,
PRIMARYKEY(学号,课程号),
FOREIGNKEY(学号)REFERENCES学生(学号),
FOREIGNKEY(课程号)REFERENCES课程(课程号),
CONSTRAINTCK_SC_0CHECK(成绩>=0AND成绩<=100)
)
1)找出其中的完整性约束。
(5分)
主键约束,非空约束,唯一约束,检查约束,外键约束
2)下述SQL结果是什么:
(5分)
a)SELECT学号、姓名、院系
FROM学生
WHERE院系IN
(SELECT院系
FROM学生
WHERE姓名=’张三’
)
跟张三一个院系的学生的学号、姓名、院系号
b)SELECT姓名
FROM学生
WHEREEXISTS(
SELECT*
FROM选课
WHERE学号=学生.学号AND课程号=’1’)
选了课程号是1的学生的姓名
3)建立一个触发器,使得删除一个学生之后,院系人数减1;(15分)
CREATETRIGGERTRIGGER
ENABLE
AFTERDELETE
ON学生
FOREACHROW
AS
BEGIN
UPDATE院系SETCOUNT=COUNT-1;
END
9.数据库中事务的概念是什么?
事务的提交和回滚是什么含义?
(10分)
事务指的是作为单个逻辑工作单元执行的一系列操作,要么完全执行,要么完全不执行。
一组业务里的所有操作,如果全部执行成功,那么可以提交保存到数据库中,反之,如果有
任何错误发生,那么全部回滚撤消之前的操作
10.举例说明数据库并发操作带来的三种数据不一致性。
(10分)
a)丢失数据修改
例如,A和B同时操作一行数据,A修改后保存,B修改后保存就会把A修改的数据覆盖,这样A之前的修改就丢失了
b)脏读
例如,A修改数据后保存,B读取同一数据后,A将之前的修改撤消,这样B读到的数据与数据库中的数据就不一致
c)不可重复读
例如,A两次读取数据,而在两次读取直间,B修改了该数据,这样导致A两次读取的数据不一致
三.附加翻译题
C是相对“低层次”的语言,这个特性不是贬义,它只是意味着C同大多数计算机一样处理字符、数字和地址类型对象。
这些对象可以由实际机器通过算术或逻辑操作进行结合或移动。
C没有提供可以直接处理复合对象的操作,比如字符串、集合、链表或数组。
没有操作可以操作整个数组或字符串,但是结构体可以作为一个单元被拷贝。
除静态定义和提供给函数局部变量的堆栈外,C语言没有定义任何存储分配机制;没有堆或垃圾回收机制。
最后,C本身没有提供输入/输出机制,没有READ或WRITE语句,并且没有内嵌的文件访问方法。
所有这些高层次的机制必须通过显式调用函数来提供。
大部分C实现含有一个合理的这些函数的标准集合。
同样地,C仅提供简单的、单个线程的控制流:
测试、循环、分组和子程序,但不能多道、并行操作、同步或协同程序。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 笔试 答案