牛客网第22天

  1. 以下哪个方法用于定义线程的执行体? ()
    A.start()
    B.join()
    C.run()
    D.synchronized()
    正确答案: C 你的答案: C (正确)
    解析:run()方法是用来定义这个线程在启动的时候需要做什么,但是,直接执行run()方法那就不是线程,必须使用start()启动,那样才是线程
    2.下列关于java抽象类的说法哪个正确?
    A.某个抽象类的父类是抽象类,则这个子类必须重载父类的所有抽象方法
    B.接口和抽象类是同一回事
    C.可以用抽象类直接去实例化创建对象
    D.一个类只能继承一个抽象类
    正确答案: D 你的答案: A (错误)
    解析:
    A.非抽象类继承抽象类,必须将抽象类中的方法重写,否则需将方法再次申明为抽象。所以这个方法还可再次声明为抽象,而不用重写。而用重载也错了,重载是在同一个类中,重写、覆盖才是在父子类中。
    B.抽象类可以没有抽象方法,接口是完全的抽象,只能出现抽象方法。
    C.抽象类无法实例化,无法创建对象。现实生活中也有抽象类的类子,比如说人类是一个抽象类,无法创建一个叫人类的对象,人继承人类来创建对象。况且抽象类中的抽象方法只有声明,没有主体,如果实例化了,又如何去实现调用呢?
    D因为类是单继承的,类继承了一个抽象类以后,就不能再继承其他类了。
    3.Java语言与其它语言相比,独有的特点是( )
    A.面向对象
    B.多线程
    C.平台无关
    D.网络编程
    正确答案: C 你的答案: A (错误)
    解析:java的“一次编写,到处运行”的跨平台性是独有的特点
    4.以下程序的输出结果是
    public class Print{
    static boolean out(char c){
    System.out.println©;
    return true;
    }
    public static void main(String[] argv){
    int i = 0;
    for(out(‘A’);out(‘B’) && (i<2);out(‘C’)){
    i++;
    out(‘D’);
    }
    }
    }
    A.ABDCBDCB
    B.BCDABCD
    C.编译错误
    D.运行错误
    正确答案: A 你的答案: A (正确)
    解析: 答案选A
    for循环执行开始
    首先执行out(‘A’) 输出A;
    然后执行out(‘B’)&&(i<2)此时输出B,i=0,判断条件为真,执行for循环的循环体;
    执行i++,out(‘D’),输出D i=1;
    执行out(‘C’),输出C
    然后执行out(‘B’)&&(i<2) 此时输出B,i=1 判断条件为真 ,执行for循环的循环体;
    执行i++,out(‘D’),输出D i=2;
    执行out(‘C’),输出C
    然后执行out(‘B’)&&(i<2) 此时输出B,i=2,不满足i<2 判断条件为假 ,跳出循环;
    所以结果为ABDCBDCB
    5.关于java编译和运行命令叙述不正确的是?
    A.运行“java Scut.class”
    B.运行“java Scut”
    C.运行“javac Scut.java”的输出文件是Scut.class
    D.java这个命令的运行对象是Scut.class
    正确答案: A 你的答案: D (错误)
    解析: A 错误 运行命令是 java + 你的 Java 程序的名字但是不加后缀 所以这道题错在多了 .class这个后缀
    B 正确
    C javac 是编译命令,后跟 你的 Java 程序名字加后缀,也就是 YourClassName.java 所以答案正确
    D JVM (Java 虚拟机)运行的是编译后的字节码文件(以.class为后缀的文件),也就是 YourClassName.class 所以答案正确
    6.变量a是一个64位有符号的整数,初始值用16进制表示为:0x7FFFFFFFFFFFFFFF;变量b是一个64位有符号的整数,初始值用16进制表示为:0x8000000000000000。则a+b的结果用10进制表示为多少?
    A.1
    B.-1
    C.263+262+…+22+21+2^0
    D.–(263+262+…+22+21+2^0)
    正确答案: B 你的答案: C (错误)
    解析:
    (1)a+b的16进制表示为:OxFFFFFFFFFFFFFFF(16位F),转为2进制为111……111(64位1,每个F->4位2)。
    (2)有符号数:是针对二进制来讲的。用最高位作为符号位,“0”代表“+”,“1”代表“-”。所以a+b的结果是一个负数。
    (3)计算机中负数是以补码的形式保存的,将补码转换成原码的计算方式如下:
    ①. 对于正数,原码与补码相同。
    ②.对于负数,将补码除符号位之外,按位取反,末位加1,即得到原码。
    (4)a + b = 111……111(64位1)
    取反:100……000(1位1,后面63位0)
    加一:100……00(中间62位0)
    10进制:-1。
    7.在创建派生类对象,构造函数的执行顺序()
    A.基类构造函数,派生类对象成员构造函数,派生类本身的构造函数
    B.派生类本身的构造函数,基类构造函数,对象成员构造函数
    C.基类构造函数,派生类本身的构造函数,派生类对象成员构造函数
    D.对象成员构造函数,基类构造函数,派生类本身的构造函数
    正确答案: A 你的答案: C (错误)
    解析:父类静态域——》子类静态域——》父类成员初始化——》父类构造块——》1父类构造方法——》2子类成员初始化——》子类构造块——》3子类构造方法;
    8. Java 多线程有几种实现方法?( )
    A.继承Thread类
    B.实现Runnable接口
    C.实现Thread接口
    D.以上都不正确
    正确答案: A B 你的答案: A B (正确)
    解析:
    实现多线程的方法:
    1.继承Thread类
    2.实现Runnable接口
    3.实现Callable接口,然后使用 FutureTask包装,因为Callable接口没有实现Runnable接口不能做为Thread的target,而FutureTask是在Java程序中可以取消的异步运算,有可以开始,取消运算,查询运算是否结束,获得查询结果的功能,特别注意的是,如果查询结果时,运算还没完成则会阻塞线程。
    4.使用,java.util.current.ThreadPoolExecutor来获取线程,执行多线程
    9.下面属于java包装类的是?
    A.String
    B.Long
    C.Character
    D.Short
    正确答案: B C D 你的答案: A B D (错误)
    解析:
    在JDK中针对各种基本类型分别定义相应的引用类型–称为封装类
    Boolean Byte Short Integer Long Float Double Character
    10true、false、null、sizeof、goto、synchronized 哪些是Java关键字?
    A.true
    B.false
    C.null
    D.sizeof
    E.goto
    F.synchronized
    正确答案: E F 你的答案: A B C E F (错误)
    解析:
    在这里插入图片描述
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值