概述
1、
class Foo {
final int i;
int j;
public void doSomething() {
System.out.println(++j + i);
}
}
的输出是?
正确答案: D 你的答案: D (正确)
A.0
B.1
C.2
D.不能执行,因为编译有错
类的final成员需要满足两个条件之一
1、在构造函数中赋值
2、初始化赋值
2、下面的程序输出的结果是( )
public class A implements B{
public static void main(String args[]){
int i;
A a1=new A();
i =a1.k;
System.out.println("i="+i);
}
}
interface B{
int k=10;
}
正确答案: B 你的答案: B (正确)
A.i=0
B.i=10
C.程序有编译错误
D.i=true
在接口里面的变量默认都是public static final 的,它们是公共的,静态的,最终的常量.相当于全局常量,可以直接省略修饰符。实现类可以直接访问接口中的变量
3、
public class CharToString {
public static void main(String[] args)
{
char myChar = 'g';
String myStr = Character.toString(myChar);
System.out.println("String is: "+myStr);
myStr = String.valueOf(myChar);
System.out.println("String is: "+myStr);
}
}
此代码片段输出正确的值是()
正确答案: A 你的答案: C (错误)
A. String is: g
String is: g
B. String is: 103
String is: g
C. String is: g
String is: 103
D. String is: 103
String is: 103
String.valueOf(myChar);是将char类型的myChar转化成String类型
4、What will be printed when you execute the following code?
class C {
C() {
System.out.print("C");
}
}
class A {
C c = new C();
A() {
this("A");
System.out.print("A");
}
A(String s) {
System.out.print(s);
}
}
class Test extends A {
Test() {
super("B");
System.out.print("B");
}
public static void main(String[] args) {
new Test();
}
}
正确答案: B 你的答案: B (正确)
A. BB
B. CBB
C. BAB
D. None of the above
(1)初始化父类的普通成员变量和代码块,执行 C c = new C(); 输出C
(2)super(“B”); 表示调用父类的构造方法,不调用父类的无参构造函数,输出B
(3) System.out.print(“B”);
5、有如下一段代码,请选择其运行结果()
public class StringDemo{
private static final String MESSAGE="taobao";
public static void main(String [] args) {
String a ="tao"+"bao";
String b="tao";
String c="bao";
System.out.println(a==MESSAGE);
System.out.println((b+c)==MESSAGE);
}
}
正确答案: C 你的答案: D (错误)
A. true true
B. false false
C. true false
D. false true
字符串在java中存储在字符串常量区中
= =判断的是对象引用是否是同一个引用,判断字符串相等要用equals方法
a==MESSAGE 同一份字符串常量在内存中只有一份,因此是同一地址,返回true
(b+c)==MESSAGE 这相当于 new String(b+c)==MESSAGE 这里new了一个String对象,所以返回false
6、What results from the following code fragment?
int i = 5;
int j = 10;
System.out.println(i + ~j);
10原码:0000000000000000,0000000000001010;
~10: 1111111111111111,1111111111110101 变为负数,计算机用补码存储
~10反码:10000000000000000,0000000000001010
~10补码:10000000000000000,0000000000001011,等于 -11
故程序结果-6
8、关于java集合下列说法不正确的有哪些()
正确答案: A B D 你的答案: B D (错误)
A. HashSet 它是线程安全的,不允许存储相同的对象
B. ConcurrentHashMap 它是线程安全的,其中存储的键对象可以重复,值对象不能重复
C. Collection接口是List接口和Set接口的父接口,通常情况下不被直接使用
D. ArrayList线程安全的,允许存放重复对象
A: HashSet 它不是线程安全的,属于Set接口下的实现类,Set下的实现类特征就是无序,不允许存储相同的对象
B: ConcurrentHashMap 它是线程安全的HashMap实现,特征也相似,其中存储的值对象可以重复,键对象不能重复
C: Collection接口是List接口和Set接口的父接口,通常情况下不被直接使用
D: ArrayList线程不安全的,底层是数组实现,允许存放重复对象
9、下面代码在main()方法中第八行后可以正常使用的是( )
public class Test
{
private int a=10;
int b=20;
static int c=1;
public static void main(String arg[])
{
Test t = new Test();
}
}
正确答案: A D 你的答案: A (错误)
t.a
this.c
Test.b
t.c
9、下面关于面向对象的一些理解哪些是错误的( )
正确答案: C 你的答案: C D (错误)
面向对象的最重要的特性是支持继承、封装和多态
系统设计应该遵循开闭原则,系统应该稳定不不可修改,但应支持通过继承、组合等方式进行扩展
函数式的语言必然是面向对象的语言
面向对象设计时,每个类的职责应该单一,不要再一个类中引入过多的接口
过程式语言和面向对象的语言各有其优势,过程式语言更加灵活,面向对象语言更加强调抽象和封装
Java和C++都是静态类型的面向对象编程语言
在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。
最后
以上就是贪玩歌曲为你收集整理的java选择题《每日一练》的全部内容,希望文章能够帮你解决java选择题《每日一练》所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复