牛客网_java选择题

  1. 如何跳出Array的forEach循环?( )
    正确答案: A 你的答案: A (正确)
    break
    return true
    return false
    以上都不是

JAVA题目,选A。BC项可以跳出一个返回值为boolean类型的函数里面的forEach。有牛友回答的是JS,JS不可以使用break,原因是js中的forEach()无法在所有元素都传递给调用的函数之前终止遍历。也就是说,没有像for循环中使用的相应的break语句。如果要提前终止,必须把forEach()方法放在一个try块中,并能抛出一个异常。如果forEach()调用的函数抛出foreach.break异常,循环会提前终止。

  1. 接口不能扩展(继承)多个接口。( )
    正确答案: B 你的答案: A (错误)
    正确
    错误

java类是单继承的。classB Extends classA
java接口可以多继承。Interface3 Extends Interface0, Interface1, interface……
不允许类多重继承的主要原因是,如果A同时继承B和C,而b和c同时有一个D方法,A如何决定该继承那一个呢?
但接口不存在这样的问题,接口全都是抽象方法继承谁都无所谓,所以接口可以继承多个接口。

  1. 静态内部类不可以直接访问外围类的非静态数据,而非静态内部类可以直接访问外围类的数据,包括私有数据。( )
    正确答案: A 你的答案: B (错误)
    正确
    错误

在这里插入图片描述

  1. public static void main(String args[]) {
    List Listlist1 = new ArrayList();
    Listlist1.add(0);
    List Listlist2 = Listlist1;
    System.out.println(Listlist1.get(0) instanceof Integer);
    System.out.println(Listlist2.get(0) instanceof Integer);
    }
    正确答案: B 你的答案: C (错误)
    编译错误
    true true
    true false
    false false

collection类型的集合(ArrayList,LinkedList)只能装入对象类型的数据,该题中装入了0,是一个基本类型,但是JDK5以后提供了自动装箱与自动拆箱,所以int类型自动装箱变为了Integer类型。编译能够正常通过。
将list1的引用赋值给了list2,那么list1和list2都将指向同一个堆内存空间。instanceof是Java中关键字,用于判断一个对象是否属于某个特定类的实例,并且返回boolean类型的返回值。显然,list1.get(0)和list2.get(0)都属于Integer的实例

  1. 计算机所能处理的最小的数据项称为()
    正确答案: A 你的答案: B (错误)

    字节

    双字

位<字节<字<双字

  1. 假如某个JAVA进程的JVM参数配置如下:
    -Xms1G -Xmx2G -Xmn500M -XX:MaxPermSize=64M -XX:+UseConcMarkSweepGC -XX:SurvivorRatio=3,
    请问eden区最终分配的大小是多少?
    正确答案: C 你的答案: B (错误)
    64M
    500M
    300M
    100M

java -Xmx2G -Xms1G -Xmn500M -Xss128k
-Xmx2G:设置JVM最大可用内存为2G。
-Xms1G:设置JVM促使内存为1G。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
-Xmn500M:设置年轻代大小为2G。整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。
-XX:SurvivorRatio=3:新生代中又会划分为 Eden 区,from Survivor、to Survivor 区。
其中 Eden 和 Survivor 区的比例默认是 8:1:1,当然也支持参数调整 -XX:SurvivorRatio=3的话就是3:1:1。

  1. 在Struts框架中如果要使用Validation作验证的话,需要使用以下哪个Form?
    正确答案: D 你的答案: B (错误)
    ActionForm
    ValidatorActionForm
    ValidatorForm
    DynaValidatorActionForm

DynaValidatorActionForm 动态验证表单
Validation 确认的意思

  1. 有关线程的哪些叙述是对的()
    正确答案: B C D 你的答案: B (错误)
    A.一旦一个线程被创建,它就立即开始运行。
    B.使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。
    C.当一个线程因为抢先机制而停止运行,它可能被放在可运行队列的前面。
    D.一个线程可能因为不同的原因停止并进入就绪状态。

在抢先式系统下,由高优先级的线程参与调度。分为2种情况:
1.若多个线程都处于就绪状态,则具有高优先级的线程会在低优先级之前得到执行;
2.在当前线程的运行过程中,如果有较高级别的线程准备就绪,则正在运行的较低级别的线程将被挂起,转到较高级别的线程运行,直到结束后又会转到原来被挂起的线程。
第二种情况就描述了C所代表的情况,可以看到当较高级别的线程抢去运行权并运行完成之后,是先将权利转给原来的线程的,所以C是正确的。

  1. 在抢先式系统下,由高优先级的线程参与调度。分为2种情况:
    1.若多个线程都处于就绪状态,则具有高优先级的线程会在低优先级之前得到执行;
    2.在当前线程的运行过程中,如果有较高级别的线程准备就绪,则正在运行的较低级别的线程将被挂起,转到较高级别的线程运行,直到结束后又会转到原来被挂起的线程。
    第二种情况就描述了C所代表的情况,可以看到当较高级别的线程抢去运行权并运行完成之后,是先将权利转给原来的线程的,所以C是正确的。

线程同步:喂,蛇(SHE)
喂(Vector)
S(Stack)
H(hashtable)
E(enumeration)

  1. 以下哪种JAVA得变量声明方式可以避免程序在多线程竞争情况下读到不正确的值( )
    正确答案: A B 你的答案: C D (错误)
    volatile
    static volatile
    synchronized
    static

synchronized不是修饰变量的 它修饰方法或代码块或对象

  1. 如果类的方法没有返回值,该方法的返回类型应是:( )
    正确答案: A 你的答案: A (正确)
    void
    null
    abstract
    default
  2. Which of the following class is not implement java.util.Map interface?
    正确答案: C 你的答案: A (错误)
    Hashtable
    HashMap
    Vector
    IdentityHashMap

A,B,D都实现了Map接口,其中A与B的区别是一个是线程安全的,一个是线程不安全的
C中Vector是实现了List接口,是一个线程安全的List
____技术是一种可以使音频,视频和其他多媒体信息在 Internet 及 Intranet 上以实时的,无需下载等待的方式进行播放的技术。

  1. 正确答案: A 你的答案: A (正确)
    流媒体
    多媒体
    复合媒体
    音视媒体

流媒体技术是一种可以使音频,视频和其他多媒体信息在 Internet 及 Intranet 上以实时的,无需下载等待的方式进行播放的技术。
流媒体又叫流式媒体,它是指商家用一个视频传送服务器把节目当成数据包发出,传送到网络上。

  1. 以下代码的循环次数是
    public class Test {
    public static void main(String args[]) {
    int i = 7;
    do {
    System.out.println(–i);
    –i;
    } while (i != 0);
    System.out.println(i);
    }
    }
    正确答案: D 你的答案: D (正确)
    0
    1
    7
    无限次

单独的–i和i–没有区别,但是在表达式中,–i会先进行自减再执行语句,而i–是先执行语句再进行自减,这一题每次循环执行输出语句时i自减1,执行–i时再次自减1,每次循环减2,总值为7,第四次执行循环时,i=-1,不等于0,所以会无限循环

  1. 关于抽象类和接口叙述正确的是? ( )
    正确答案: D 你的答案: D (正确)
    抽象类和接口都能实例化的
    抽象类不能实现接口
    抽象类方法的访问权限默认都是public
    接口方法的访问权限默认都是public

抽象类
特点:
1.抽象类中可以构造方法
2.抽象类中可以存在普通属性,方法,静态属性和方法。
3.抽象类中可以存在抽象方法。
4.如果一个类中有一个抽象方法,那么当前类一定是抽象类;抽象类中不一定有抽象方法。
5.抽象类中的抽象方法,需要有子类实现,如果子类不实现,则子类也需要定义为抽象的。
6,抽象类不能被实例化,抽象类和抽象方法必须被abstract修饰
关键字使用注意:
抽象类中的抽象方法(其前有abstract修饰)不能用private、static、synchronized、native访问修饰符修饰。
接口
1.在接口中只有方法的声明,没有方法体。
2.在接口中只有常量,因为定义的变量,在编译的时候都会默认加上public static final
3.在接口中的方法,永远都被public来修饰。
4.接口中没有构造方法,也不能实例化接口的对象。(所以接口不能继承类)
5.接口可以实现多继承
6.接口中定义的方法都需要有实现类来实现,如果实现类不能实现接口中的所有方法则实现类定义为抽象类。
7,接口可以继承接口,用extends

  1. 下面哪个Set类是排序的?
    正确答案: B 你的答案: D (错误)
    LinkedHashSet
    TreeSet
    HashSet
    AbstractSet

LinkedHashSet
继承于HashSet、又基于 LinkedHashMap 来实现
TreeSet
使用二叉树的原理对新 add()的对象按照指定的顺序排序(升序、降序),每增加一个对象都会进行排序,将对象插入的二叉树指定的位置。
HashSet
存储元素的顺序并不是按照存入时的顺序(和 List 显然不同) 而是按照哈希值来存的所以取数据也是按照哈希值取得

  1. 下面代码运行结果是()
    public class Test{
    public int add(int a,int b){
    try {
    return a+b;
    }
    catch (Exception e) {
    System.out.println(“catch语句块”);
    }
    finally{
    System.out.println(“finally语句块”);
    }
    return 0;
    }
    public static void main(String argv[]){
    Test test =new Test();
    System.out.println(“和是:”+test.add(9, 34));
    }
    }
    正确答案: C 你的答案: C (正确)
    A.catch语句块
    和是:43
    B.编译异常
    C.finally语句块
    和是:43
    D.和是:43
    finally语句块
先来看一段代码:

public abstract class Test {
   
    public static void main(String[] args) {
   
        System.out.println(beforeFinally());
    }
     
    public static int beforeFinally(){
   
        int a = 0;
        try{
   
            a = 1;
            return a;
        }finally{
   
            a = 2;
        }
    }
}

/**output:
1
*/
从结果上看,貌似`finally` 里的语句是在`return` 之后执行的,其实不然,实际上`finally` 里的语句是在在`return` 之前执行的。那么问题来了,既然是在之前执行,那为什么`a` 的值没有被覆盖了?
实际过程是这样的:当程序执行到try{
   }语句中的return方法时,它会干这么一件事,将要返回的结果存储到一个临时栈中,然后程序不会立即返回,而是去执行finally{
   }中的程序, 在执行`a = 2`时,程序仅仅是覆盖了a的值,但不会去更新临时栈中的那个要返回的值 。执行完之后,就会通知主程序“finally的程序执行完毕,可以请求返回了”,这时,就会将临时栈中的值取出来返回。这下应该清楚了,要返回的值是保存至临时栈中的。
再来看一个例子,稍微改下上面的程序:

public abstract class Test {
   
    public static void main(String[] args) {
   
        System.out.println(beforeFinally());
    }
     
    public 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值