第二次测验总结
1.Java语言中,变量名可以用汉字表示
答案:T
总结:记住就行了,可以用,但是没必要
2.对于基本数据类型和引用型数据类型来说,运算符==在比较两个变量是否相同时,含义没有什么差别
答案 :F
总结 :==运算符的使用
1.可以使用在基本数据类型变量和引用数据变量中
2.如果比较的是引用数据 :比较两个对象的地址值是否相同,即两个引用是否指向同一个对象实体
补充==符号使用时,必须保证符号左右两边的变量类型一致(否则出现报错)
3.在java中,类只是一种抽象的数据类型,程序中一般使用的是由该类创建的对象
答案:T
总结 :记者就行了
4.对于类与对象的关系,以下说法错误的是()
A.类是对象的类型
B.对象由类来创建
C.类是同类对象的抽象
D.对象是类的模板
答案:D
解析 :对象是我们调用类中的构造器来创建的
类是对象的模板,是同类对象实例的抽象.
5.下列说法正确的是()
A.如果源代码中有package语句,则该语句必须放在代码的第一行
解析:package是包名创建一个类必须有包名且在第一行
6.下列那个叙述是正确的
B.java应用程序由若干类构成,这些类可以在一个源文件中,也可以分布在若干个
源文件中,其中必须有一个源文件含有主类
7.已知代码:
class Person{ private static String country="A城市" ; String name; public static void sFun(String c){ System.out.println("name="+name); fun(c);} public void fun(String c ){ name="name1"; country=c; } }
关于static,下面描述错误的是 () 。
(0.5分)
A.上述代码在编译时出错,因为在static方法sFun中访问了非static变量name
B.上述代码在编译时出错,因为在static方法sFun中访问了非static方法fun()
C.sFun方法正确
D.fun方法正确
答案:C
解析:题目问的是错误的
静态方法中只能调用静态成员,不能调用成员变量和成员方法
普通成员方法可以调用普通成员和静态成员,也可以调用普通成员方法和静态方法
8.分析如下代码:
public class Test { private int t; public static void main(String[] args) { int x; System.out.println(t); } }
一下说法正确的是( )。
(0.5分)
A.变量t没有初始化,所以会引起错误。
B.变量t是私有的,因此不能在main方法中访问。
C.t是非静态的,不能在静态的main方法中引用。
D.变量x没有初始化,所以会引起错误。
答案:C
解析:t是非静态的,不能在静态的main方法中引用 除非在变量的修饰符前添加static
变量x没有初始化,但是也没有调用,在方法中声明的变量都是临时变量,
必须要初始化后才能使用 但是如果只是声明却并未使用,程序就不会报错
如果调用则必须初始化值,否则编译过不去
9.以下哪句是错误的?
(0.5分)
A.编译器会搜索要import的类的编译结果文件而不是源文件
B.import是告诉编译器要import的包的信息
C.import是把要import的类的源代码插入到import语句所在的地方
D.编译器在编译的时候需要能访问得到要import的类的编译结果文件
答案:C
解析 :编译器会搜索要import的类的编译结果文件而不是源文件
import是告诉编译器要import的包的信息
编译器在编译的时候需要能访问的到要import的类的编译结果文件
10.
在Java中,针对类和成员提供了4种访问级别,以下控制级别由小到大的顺序是:( )。
(0.5分)
A.private< 默认 < protected < public
B.默认 < private< protected < public
C.protected < 默认 < private < public
D.protected < private< 默认 < public
解析:
1.private(当前类访问级别): 如果类的成员被private访问控制符来修饰,则这个成员只能被该类的其他成员访问,其他类无法直接访问。类的良好封装就是通过private关键字来实现的。 2.default(包访问级别): 如果一个类或者类的成员不使用任何访问控制符修饰,则称它为默认访问控制级别,这个类或者类的成员只能被本包中的其他类访问。 3.protected(子类访问级别): 如果一个类的成员被protected访问控制符修饰,那么这个成员既能被同一包下的其他类访问,也能被不同包下该类的子类访问。 4.public(公共访问级别): 这是一个最宽松的访问控制级别,如果一个类或者类的成员被public访问控制符修饰,那么这个类或者类的成员能被所有的类访问,不管访问类与被访问类是否在同一个包中。
11.下列关于字符串对象的叙述中,错误的是( )。
(0.5分)
A.字符串常量是对象
B.String 对象存储字符串的效率比 StringBuilder 高
C.字符串对象具有不变性
D.String类提供了许多用来操作字符串的方法:连接、提取、查询等,一旦返回的结果与原字符串不同,就生成一个新对象,而不是在原字符串进行修改
答案:B
解析:我自己也不理解
12。
阅读下面的程序段,以下表达式的值为true的是哪个?( )
String str1=new String("java"); String str2=new String("java"); StringBuffer str3=new StringBuffer("java"); StringBuffer str4=new StringBuffer("java");
(0.5分)
A.str1==str2
B.str1.equals(str2)
C.str3==str4
D.str3.equals(str4)
E.str1==str3
F.str1.equals(str4)
答案:B
解析:D:StringBuffer底层没有重写equals方法,
F:equals要求调用者与参数要么都重写,要么都不重写有一方不重写就会返回false
13.
ArrayList的初始化内容如下:
ArrayList<String> list = new ArrayList<String>(); list.add("java"); list.add("aaa"); list.add("java"); list.add("java"); list.add("bbb");
下面可以删除list中所有的“java”的代码是
(0.5分)
A.
for (int i = list.size() - 1; i >= 0; i--) { if ("java".equals(list.get(i))) { list.remove(i); } }
B.
for (int i = 0; i < list.size(); i++) { if ("java".equals(list.get(i))) { list.remove(i); } }
C.
list.remove("java");
D.
list.removeAll("java");
答案:A
解析:正着删会导致漏删,必须倒着删
list.remove()需要一个索引或者对象,只能删一个
list.removeall()需要传一个集合,会删除所有与传入集合元素相同的元素
14.Java的集合框架中重要的接口java.util.Collection定义了许多方法。选项中哪个方法不是Collection接口所定义的?( )
(0.5分)
A.int size()
B.boolean containsAll(Collection c)
C.compareTo(Object obj)
D.boolean remove(Object obj)
答案:C
解析:记者就行了
14.以下对抽象类的描述正确的是
(0.5分)
A.抽象类没有构造方法
B.抽象类必须提供抽象方法
C.有抽象方法的类一定是抽象类
D.抽象类可以通过new关键字直接实例化
答案:C
解析:一个类如果定义为抽象类,那么里面可以没有抽象方法
一个类中如果有抽象方法,那么这个类必定是一个抽象类
抽象类不能被实例化,可以实例化非抽象子类的对象
抽象类的所有非抽象子类必须重写抽象类中的方法
abstract在class前面
子类有未实现父类的抽象方法时仍是抽象类
当子类实现所有抽象方法时可以不再是抽象类
由普通的类来实现接口,必须将接口所有抽象方法重写
由抽象类来实现接口,则不必重写接口的方法,可以全部不重写,或者只重写一个
接口:接口中没有提供构造方法,接口中的方法默认使用public,abstract修饰,接口中的属性默认使用public static final修饰
注意:public static final 修饰的常量必须初始化,否则编译不通过。
15.关于Java语言的描述,错误的是()。
(0.5分)
A.每一个.java文件编译后对应一个.class文件。
B..java文件编译后,每一个class对应一个.class文件
C.Java源代码编译后产生的.class是字节码文件
D.class文件在JVM上运行
答案:A
解析:记住妥了