Java笔试题答案.docx

上传人:b****4 文档编号:3711210 上传时间:2023-05-06 格式:DOCX 页数:8 大小:17.18KB
下载 相关 举报
Java笔试题答案.docx_第1页
第1页 / 共8页
Java笔试题答案.docx_第2页
第2页 / 共8页
Java笔试题答案.docx_第3页
第3页 / 共8页
Java笔试题答案.docx_第4页
第4页 / 共8页
Java笔试题答案.docx_第5页
第5页 / 共8页
Java笔试题答案.docx_第6页
第6页 / 共8页
Java笔试题答案.docx_第7页
第7页 / 共8页
Java笔试题答案.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Java笔试题答案.docx

《Java笔试题答案.docx》由会员分享,可在线阅读,更多相关《Java笔试题答案.docx(8页珍藏版)》请在冰点文库上搜索。

Java笔试题答案.docx

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模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2