java基础选择题--18(转载)

1.设有定义 int a=3 ,b=4,c=5; 则以下的表达式中 , 值为 false 的是 ()

正确答案: D 你的答案:D(正确)
A.a < b && b < c
B.a <= b
C.a < ( b + c )
D.! ( a < b )

解析:
a < b && b < c
true && true
true a <= b
true a <( b + c )
true ! ( a < b )
!true false

2.代码String str=”123456a”;int i=Integer.parseInt(str);会报异常的是()
正确答案: B 你的答案: A (错误)
A.java.lang.NullPoninterException
B.java.lang.NumberFormatException
C.java.lang.RuntimeException
D.java.lang.ArrayindexOutOfBoundsException

解析:非纯数字的字符串转化为Integer对象会报数字格式异常。

3.下面的输出结果是:

public class Test { public static void main(String[] args) {
    Father a = new Father();
    Father b = new Child();
  }
} class Father { public Father() {
    System.out.println("我是父类");
  }
} class Child extends Father { public Child() {
    System.out.println("我是子类");
  }
}

正确答案: A

A.我是父类
我是父类
我是子类

B.我是父类
我是子类
我是子类

C.我是父类
我是父类
我是父类

D.我是父类
我是父类

解析:
这道题,首先没有初始化对象根本没有输出。
其次,即使初始化了对象,也该是输出
我是父类
我是父类
我是子类

4.与未加访问控制符的缺省情况相比,public和protected修饰符扩大了属性和方法的被访问范围,private修饰符则缩小了这种范围。
正确答案: A 你的答案: A (正确)
A.正确
B.错误


5.下面程序的运行结果是

String str1 = "hello";
String str2 = "he" + new String("llo");
System.err.println(str1 == str2);
1
2
3
正确答案: B 你的答案: A (错误)
A.true
B.false
C.exception
D.无输出

解释:String str1 = “hello”;这里的str1指的是方法区的字符串常量池中的“hello”,编译时期就知道的;
String str2 = “he” + new
String(“llo”);这里的str2必须在运行时才知道str2是什么,所以它是指向的是堆里定义的字符串“hello”,所以这两个引用是不一样的。

如果用str1.equal(str2),那么返回的是True;因为两个字符串的内容一样。

6.中的数据域使用private修饰为私有变量,所以任何方法均不能访问它。
正确答案: B 你的答案: B (正确)
A.正确
B.错误

7.假定AB为一个类,则执行 “AB ab = new AB(a,5);”语句时将自动调用该类的( )。
正确答案: A 你的答案: A (正确)
A.带参构造函数
B.无参构造函数
C.拷贝构造函数
D.重载赋值运算

8.以下有关构造方法的说法,正确的是:()
正确答案: A 你的答案: B (错误)
.A.一个类的构造方法可以有多个
B.构造方法在类定义时被调用
C.构造方法只能由对象中的其他方法调用
D.构造方法可以和类同名,也可以和类名不同

解释:
A一个类有多个构造方法便是重载的表现。重载参数列表不同。所以A是正确的。
B构造方法是在对象创建时就被调用,用于初始化。

C构造方法是给与之对应的对象进行初始化,初始化的动作只执行一次。
D构造方法必须与所在类的名称同名。

9.关于finally,下面哪个描述正确? ()

正确答案: B 你的答案: C (错误)
A.在catch块之前但在try块之后执行finally块
fB.inally块会被执行无论是否抛出异常
C.只有在执行catch块之后才执行finally块
D.都不是

10.以下程序的运行结果是()

public class Increment
{
    public static void main(String args[])
    {
        int a;
        a = 6;
        System.out.print(a);
        System.out.print(a++);
        System.out.print(a);
    }
}

正确答案: B 你的答案: B (正确)
A.666
B.667
C.677
D.676

解释:a++可以理解为当访问a之后再对a进行加一操作

11.基本的Java语言函数存储在以下哪个java包中?()

正确答案: A 你的答案: D (错误)
A.java.lang
B.java.io
C.java.net
D.java.util

解释: java.lang包包含 包装类 String 类 Math 类 —— 包含函数 Class 类 Object 类

12.如果一个list初始化为{5,3,1},执行以下代码后,其结果为()?
nums.add(6);
nums.add(0,4);
nums.remove(1);
正确答案: B 你的答案: B (正确)
A.[5, 3, 1, 6]
B.[4, 3, 1, 6]
C.[4, 3, 6]
D.[5, 3, 6]

解释:
list{5,3,1} nums.add(6); //往后边加一个6,{5,3,1,6}
nums.add(0,4);//往下标为0的数加一个4,{4,5,3,1,6}
nums.remove(1); // 移除下标为1的元素,{4,3,1,6}

13.关于下面程序,哪些描述是正确的: ( )

public class While { public void loop() { int x= 10; while ( x ) {
System.out.print("x minus one is " + (x - 1)); x -= 1; } } }

正确答案: B 你的答案: B (正确)
A.行1有语法错误
B.行4有语法错误
C.行5有语法错误
D.行6有语法错误
E.行2有语法错误,loop是关键字
F.程序能够正常编译和运行

解释: while()括号里参数必须是布尔类型,要么true要么false

14.以下不是修饰符final的作用的是( )。

正确答案: C 你的答案: D (错误)
A.修饰常量
B.修饰不可被继承的类
C.修饰不可变类
D.修饰不可覆盖的方法

15.以下代码的输出的正确结果是

以下代码的输出的正确结果是

public class Test {
public static void main(String args[]) {
String s = "祝你考出好成绩!";
System.out.println(s.length());
}
}

正确答案: D 你的答案: D (正确)
A.24
B.16
C.15
D.8

16.以下 _____ 不是 Object 类的方法

正确答案: D 你的答案: A (错误)
A.clone()
B.finalize()
C.toString()
D.hasNext()

17.以下程序的输出结果是

public class Print{
    static boolean out(char c){
        System.out.println(c);
        return true;
    }
    public static void main(String[] argv){
        int i = 0;
        for(out('A');out('B') && (i<2);out('C')){
            i++;
            out('D');
        }
    }
}

正确答案: A 你的答案: D (错误)
A.ABDCBDCB
B.BCDABCD
C.编译错误
D.运行错误

首先执行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

18.下列说法正确的是( )
正确答案: C 你的答案: C (正确)
A.volatile,synchronized 都可以修改变量,方法以及代码块
B.volatile,synchronized 在多线程中都会存在阻塞问题
C.volatile能保证数据的可见性,但不能完全保证数据的原子性,synchronized即保证 了数据的可见性也保证了原子性
D.volatile解决的是变量在多个线程之间的可见性、原子性,而sychroized解决的是多个线程之间访问资源的同步性

19.Java数据库连接库JDBC用到哪种设计模式?
正确答案: B 你的答案: A (错误)
A.生成器
B.桥接模式
C.抽象工厂
D.单例模式

20.在jdk1.5之后,下列 java 程序输出结果为______。

nt i=0;
Integer j = new Integer(0);
System.out.println(i==j);
System.out.println(j.equals(i));

正确答案: B 你的答案: A (错误)
A.true,false
B.true,true
C.false,true
D.false,false
E.对于不同的环境结果不同
F.程序无法执行

解释:
i==j ,这个是基本类型与 Integer 的比较, j 会自动拆箱成 int 类型,然后比较的是值。因此返回真。
j.equals(i) ,调用 equals 方法后,这个 i 会自动装箱成 Integer 类型,然后再比较值,所以也返回真。

21.下列哪个说法是正确的()
正确答案: D 你的答案: A (错误)
A.ConcurrentHashMap使用synchronized关键字保证线程安全
B.HashMap实现了Collction接口
C.Array.asList方法返回java.util.ArrayList对象
D.SimpleDateFormat是线程不安全的

22.SP分页代码中,哪个步骤次序是正确的?
正确答案: A 你的答案: D (错误)
A.先取总记录数,得到总页数,最后显示本页的数据。
B.先取所有的记录,得到总页数,再取总记录数,最后显示本页的数据。
C.先取总页数,得到总记录数,再取所有的记录,最后显示本页的数据。
D.先取本页的数据,得到总页数,再取总记录数,最后显示所有的记录。

23.下面代码的输出是什么?

public class Base
{
    private String baseName = "base";
    public Base()
    {
        callName();
    }
 
    public void callName()
    {
        System. out. println(baseName);
    }
 
    static class Sub extends Base
    {
        private String baseName = "sub";
        public void callName()
        {
            System. out. println (baseName) ;
        }
    }
    public static void main(String[] args)
    {
        Base b = new Sub();
    }
}

正确答案: A 你的答案: B (错误)
A.null
B.sub
C.base

解释:
1.首先,需要明白类的加载顺序。
(1) 父类静态代码块(包括静态初始化块,静态属性,但不包括静态方法)
(2) 子类静态代码块(包括静态初始化块,静态属性,但不包括静态方法 )
(3) 父类非静态代码块( 包括非静态初始化块,非静态属性 )
(4)父类构造函数
(5) 子类非静态代码块 ( 包括非静态初始化块,非静态属性 )
(6) 子类构造函数
其中:类中静态块按照声明顺序执行,并且(1)和(2)不需要调用new类实例的时候就执行了(意思就是在类加载到方法区的时候执行的)
2.其次,需要理解子类覆盖父类方法的问题,也就是方法重写实现多态问题。Base b = new Sub();它为多态的一种表现形式,声明是Base,实现是Sub类, 理解为 b 编译时表现为Base类特性,运行时表现为Sub类特性。
当子类覆盖了父类的方法后,意思是父类的方法已经被重写,
题中父类初始化调用的方法为子类实现的方法,子类实现的方法中调用的baseName为子类中的私有属性。
由1.可知,此时只执行到步骤4.,子类非静态代码块和初始化步骤还没有到,子类中的baseName还没有被初始化。所以此时
baseName为空。 所以为null。

24.如果希望监听TCP端口9000,服务器端应该怎样创建socket?
正确答案: B 你的答案: D (错误)
A.new Socket(“localhost”,9000);
B.new ServerSocket(9000);
C.new Socket(9000);
D.new ServerSocket(“localhost”,9000);

25.下面属于java引用类型的有?
正确答案: A D 你的答案: A (错误)
A.String
B.byte
C.char
D.Array

26.以下哪些方法是Object类中的方法
正确答案: A B C D 你的答案: D (错误)
A.clone()
B.toString()
C.wait()
D.finalize()

27.下列选项中是正确的方法声明的是?()
正确答案: A B C D 你的答案: C (错误)
A.protected abstract void f1();
B.public final void f1() {}
C.static final void fq(){}
D.private void f1() {}

28.下列可作为java语言标识符的是()
正确答案: A B C 你的答案: C (错误)
A.a1
B.$1
C._1
D.11

解释:java中标识符的组成:由52个字母A-Z ,a-z ,数字0-9 ,下划线_ , 美元符$ 组成

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

30.hibernate 开发中,关于 POJO 类对象的状态说法正确的是()。
正确答案: A B C 你的答案: B (错误)
A.自由状态(Transient):实体在内存中自由存在,与数据库中的记录无关
B.持久状态(Persistent):实体处于由Hibernate框架所管理的状态,对应了数据库中的一条记录,同时与某个session实例发生了关联
C.游离状态(Detached):在session 关闭之后,可以使对象从持久状态转换到游离状态。
D.不能将对象从游离状态转换成持久态


 

    
                        
原文链接:https://blog.csdn.net/Ctra_aaa/article/details/112758284

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值