每日java笔试题--2020-10-6

    科技2024-03-26  91

    2.有以下程序片段且Interesting不是内部类,下列哪个选项不能插入到行1。( )

    1. 2.public class Interesting{ 3. // 省略代码 4.}

    正确答案: D 你的答案: D (正确)

    import java.awt.*; package mypackage; class OtherClass{ } public class MyClass{ }

    解析:在同一个java原文件中,可以有多个class类,但是只有有一个公共的 public class

    Math.round(11.5) 等于多少 (). Math.round(-11.5) 等于多少 ( ).

    正确答案: C 你的答案: C (正确)

    11 ,-11 11 ,-12 12 ,-11 12 ,-12

    解析:

    floor : 意为地板,指向下取整,返回不大于它的最大整数 ceil : 意为天花板,指向上取整,返回不小于它的最小整数 round : 意为大约,表示“四舍五入”,而四舍五入是往大数方向入。Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11而不是-12。

    以下程序的运行结果是?

    正确答案: A 你的答案: A (正确)

    foobar barfoo foobar或者barfoo都有可能 Bar Foo 程序无法正常运行

    解析:

    调用start()后,线程会被放到等待队列,等待CPU调度,并不一定要马上开始执行,只是将这个线程置于可动行状态。然后通过JVM,线程Thread会调用run()方法,执行本线程的线程体。 1.start()方法来启动线程,真正实现了多线程运行。这时无需等待run方法体代码执行完毕,可以直接继续执行下面的代码; 2.run()方法当作普通方法的方式调用。程序还是要顺序执行,要等待run方法体执行完毕后,才可继续执行下面的代码, 这样就没有达到写线程的目的。

    我们在程序中经常使用“System.out.println()”来输出信息,语句中的System是包名,out是类名,println是方法名。

    正确答案: B 你的答案: A (错误)

    对 错

    解析:

    System是java.lang中的一个类,out是System内的一个成员变量,这个变量是一个java.io.PrintStream类的对象,println呢就是一个方法了。

    选项中哪一行代码可以替换 //add code here 而不产生编译错误

    public abstract class MyClass { public int constInt = 5; //add code here public void method() { }

    正确答案: A 你的答案: A (正确)

    public abstract void method(int a); consInt=constInt+5; public int method(); public abstract void anotherMethod(){}

    解析:

    A是抽象方法,抽象类可以包含抽象方法,也可以不包含,实现重载。(√)

    B 在类中不能constInt = constInt + 5(×)

    C 返回值不能作为重载的依据(×)

    D 有方法体的不能作为抽象函数(×)

    下面有关servlet和cgi的描述,说法错误的是?

    正确答案: D 你的答案: A (错误)

    servlet处于服务器进程中,它通过多线程方式运行其service方法 CGI对每个请求都产生新的进程,服务完成后就销毁 servlet在易用性上强于cgi,它提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等 cgi在移植性上高于servlet,几乎所有的主流服务器都直接或通过插件支持cgi

    解析:

    选择D,servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。 DBMS 中实现事务持久性的子系统是()

    正确答案: D 你的答案: B (错误)

    安全性管理子系统 完整性管理子系统 并发控制子系统 恢复管理子系统

    解析:

    原子性:事务是一组不可分割的操作单元,这组单元要么同时成功要么同时失败(由DBMS的事务管理子系统来实现); 一致性:事务前后的数据完整性要保持一致(由DBMS的完整性子系统执行测试任务); 隔离性:多个用户的事务之间不要相互影响,要相互隔离(由DBMS的并发控制子系统实现); 持久性:一个事务一旦提交,那么它对数据库产生的影响就是永久的不可逆的,如果后面再回滚或者出异常,都不会影响已提交的事务(由DBMS的恢复管理子系统实现的)

    ArrayLists和LinkedList的区别,下述说法正确的有?

    正确答案: A B C D 你的答案: A B C D (正确)

    ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 对于新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList要移动数据。 ArrayList的空间浪费主要体现在在list列表的结尾预留一定的容量空间,而LinkedList的空间花费则体现在它的每一个元素都需要消耗相当的空间。

    解析:

    我来说几句:

    A. ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 //正确,这里的所谓动态数组并不是那个“ 有多少元素就申请多少空间 ”的意思,通过查看源码,可以发现,这个动态数组是这样实现的,如果没指定数组大小,则申请默认大小为10的数组,当元素个数增加,数组无法存储时,系统会另个申请一个长度为当前长度1.5倍的数组,然后,把之前的数据拷贝到新建的数组。

    - ---------------------------------------------------------------------

    B. 对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。//正确,ArrayList是数组,所以,直接定位到相应位置取元素,LinkedLIst是链表,所以需要从前往后遍历。

    -----------------------------------------------------------------------

    C. 对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。//正确,ArrayList的新增和删除就是数组的新增和删除,LinkedList与链表一致。

    -------------------------------------------------------------------------

    D. ArrayList的空间浪费主要体现在在list列表的结尾预留一定的容量空间,而LinkedList的空间花费则体现在它的每一个元素都需要消耗相当的空间。//正确,因为ArrayList空间的增长率为1.5倍,所以,最后很可能留下一部分空间是没有用到的,因此,会造成浪费的情况。对于LInkedList的话,由于每个节点都需要额外的指针,所以,你懂的。

    10

    byte b1=1,b2=2,b3,b6,b8; final byte b4=4,b5=6,b7; b3=(b1+b2); /语句1/ b6=b4+b5; /语句2/ b8=(b1+b4); /语句3/ b7=(b2+b5); /语句4/ System.out.println(b3+b6);

    下列代码片段中,存在编译错误的语句是()

    正确答案: B C D 你的答案: D (错误)

    语句2 语句1 语句3 语句4

    解析:

    本题答案应为:B、C、D

    ------------知识点------------

    Java表达式转型规则由低到高转换:

    1、所有的byte,short,char型的值将被提升为int型;

    2、如果有一个操作数是long型,计算结果是long型;

    3、如果有一个操作数是float型,计算结果是float型;

    4、如果有一个操作数是double型,计算结果是double型;

    5、被fianl修饰的变量不会自动改变类型,当2个final修饰相操作时,结果会根据左边变量的类型而转化。

    --------------解析--------------

    语句1错误:b3=(b1+b2);自动转为int,所以正确写法为b3=(byte)(b1+b2);或者将b3定义为int;

    语句2正确:b6=b4+b5;b4、b5为final类型,不会自动提升,所以和的类型视左边变量类型而定,即b6可以是任意数值类型;

    语句3错误:b8=(b1+b4);虽然b4不会自动提升,但b1仍会自动提升,所以结果需要强转,b8=(byte)(b1+b4);

    语句4错误:b7=(b2+b5); 同上。同时注意b7是final修饰,即只可赋值一次,便不可再改变。

    Processed: 0.011, SQL: 8