前段时间学习Java,作了几道基础题。题都仍是面向基础的一些题。分享给你们一块儿学习java
#答案在底部程序员
选择题(共50题,每题2分,满分100分)
1) 在Java类中,使用如下( )声明语句来定义公有的int型常量MAX。
A. public int MAX = 100;
B. final int MAX = 100;
C. public static int MAX = 100;
D. public static final int MAX = 100;
2) 在Java中,下列关于方法重载的说法中错误的是( )(多选)。
A. 方法重载要求方法名称必须相同
B. 重载方法的参数列表必须不一致
C. 重载方法的返回类型必须一致
D. 一个方法在所属的类中只能被重载一次
3) 给定Java代码以下所示,在横线处新增下列( )方法,是对cal方法的重载。(多选)
public class Test{
public void cal(int x, int y, int z) {}
________________
}
A. public int cal(int x, int y, float z){ return 0; }
B. public int cal(int x, int y, int z){ return 0; }
C. public void cal(int x, int z){ }
D. public void cal(int z, int y, int x){ }
4) 在Java中,下面对于构造函数的描述正确的是( )。
A. 类必须显式定义构造函数
B. 构造函数的返回类型是void
C. 构造函数和类有相同的名称,而且不能带任何参数
D. 一个类能够定义多个构造函数
5) 下面Java代码的运行结果是( )。
class Penguin {
private String name=null; // 名字
private int health=0; // 健康值
private String sex=null; // 性别
public void Penguin() {
health = 10;
sex = "雄";
System.out.println("执行构造方法。");
}
public void print() {
System.out.println("企鹅的名字是" + name +
",健康值是" + health + ",性别是" + sex+ "。");
}
public static void main(String[] args) {
Penguin pgn = new Penguin();
pgn.print();
}
}
A. 企鹅的名字是null,健康值是10,性别是雄。
B. 执行构造方法。
企鹅的名字是null,健康值是0,性别是null。
C. 企鹅的名字是null,健康值是0,性别是null。
D. 执行构造方法。
企鹅的名字是null,健康值是10,性别是雄。
6) 下列选项中关于Java中封装的说法错误的是( )。
A. 封装就是将属性私有化,提供公有的方法访问私有属性
B. 属性的访问方法包括setter方法和getter方法
C. setter方法用于赋值、getter方法用于取值
D. 类的属性必须进行封装,不然没法经过编译
7) 使用Java实现封装,第一步是修改属性可见性来限制对属性的访问,第二步是建立赋值和取值方法,用于对属性的访问,第三步应该是( )。
A. 使用赋值和取值方法访问属性
B. 编写常规方法访问属性
C. 在赋值和取值方法中,加入对属性的存取限制
D. 编写main方法建立对象,调用赋值和取值方法访问属性
8) 分析以下所示的Java代码,其中this关键字的意思是( )。
public class Test {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name; //this关键字所在的行
}
}
A. name属性
B. Test类的内部指代自身的引用
C. Test类的对象引用Test类的其余对象
D. 指所在的方法
9) 在Java中,如下程序编译运行后的输出结果为( )。
public class Test {
int x, y;
Test(int x, int y) {
this.x = x;
this.y = y;
}
public static void main(String[] args) {
Test pt1, pt2;
pt1 = new Test(3, 3);
pt2 = new Test(4, 4);
System.out.print(pt1.x + pt2.x);
}
}
A. 6
B. 3 4
C. 8
D. 7
10) 在Java语言中,下列关于类的继承的描述,正确的是( )。
A. 一个类能够继承多个父类
B. 一个类能够具备多个子类
C. 子类可使用父类的全部方法
D. 子类必定比父类有更多的成员方法
11) Java中,若是类C是类B的子类,类B是类A的子类,那么下面描述正确的是( )。
A. C不只继承了B中的公有成员,一样也继承了A中的公有成员
B. C只继承了B中的成员
C. C只继承了A中的成员
D. C不能继承A或B中的成员
12) 给定一个Java程序Test.java的代码以下所示,编译时,会出现如下( )状况。
class Parent {
public int count() { // 第1行
return 0;
}
}
public class Test extends Parent {
private int i;
public int count() { // 第2行
return i % 9; // 第3行
}
}
A. 编译经过
B. 在第1行引起编译错误
C. 在第2行引起编译错误
D. 在第3行引起编译错误
13) 给定以下一个Java源文件Child.java,编译并运行Child.java,如下结果正确的是( )。
class Parent1 {
Parent1(String s){
System.out.println(s);
}
}
class Parent2 extends Parent1{
Parent2(){
System.out.println("parent2");
}
}
public class Child extends Parent2 {
public static void main(String[] args) {
Child child = new Child();
}
}
A. 编译错误:没有找到构造器Child()
B. 编译错误:没有找到构造器Parent1()
C. 正确运行,没有输出值
D. 正确运行,输出结果为:parent2
14) 给定Java程序Child.java的代码以下所示,则编译运行该类的结果是( )。
class Parent {
Parent() {
System.out.println("parent");
}
}
public class Child extends Parent {
Child(String s) {
System.out.println(s);
}
public static void main(String[] args) {
Child child = new Child("child");
}
}
A. 输出:child
B. 输出:child
parent
C. 输出:parent
child
D. 编译错误
15) 下列选项中关于Java中super关键字的说法错误的是( )。
A. super关键字是在子类对象内部指代其父类对象的引用
B. super关键字不只能够指代子类的直接父类,还能够指代父类的父类
C. 子类能够经过super关键字调用父类的方法
D. 子类能够经过super关键字调用父类的属性
16) 分析以下所示的Java代码,则选项中的说法正确的是( )(多选)。
class Parent{
public String name;
public Parent(String pName){
this.name = pName;
}
}
public class Test extends Parent { //1
public Test(String Name){ //2
name="hello"; //3
super("kitty"); //4
}
}
A. 第2行错误,Test类的构造函数中参数名称应与其父类构造函数中的参数名相同
B. 第3行错误,应使用super关键字调用父类的name属性,改成super.name="hello";
C. 第4行错误,调用父类构造方法的语句必须放在子类构造方法中的第一行
D. 程序编译经过,无错误
17) 如下关于Object类说法错误的是( )。
A. 一切类都直接或间接继承自Object类
B. 接口亦继承Object类
C. Object类中定义了toString()方法
D. Object类在java.lang包中
18) 在Java中,多态的实现不只能减小编码的工做量,还能大大提升程序的可维护性及可扩展性,那么实现多态的步骤包括如下几个方面除了( )。
A. 子类重写父类的方法
B. 子类重载同一个方法
C. 定义方法时,把父类类型做为参数类型;调用方法时,把父类或子类的对象做为参数传入方法
D. 运行时,根据实际建立的对象类型动态决定使用哪一个方法
19) 给定Java代码以下所示,则编译运行后,输出结果是( )。
class Parent {
public void count() {
System.out.println(10%3);
}
}
public class Child extends Parent{
public void count() {
System.out.println(10/3);
}
public static void main(String args[]) {
Parent p = new Child();
p.count();
}
}
A. 1
B. 1.0
C. 3
D. 3.3333333333333335
20) 分析以下Java代码,若是想在控制台上输出“B类的test()方法”,则在横线处应填入( )(多选)。
class A {
public void test() {
System.out.println("A类的test()方法");
}
}
class B extends A {
public void test() {
System.out.println("B类的test()方法");
}
public static void main(String args[]) {
________________________
}
}
A. A a = new B();
a.test();
B. A a = new A();
a.test();
C. B b = new A();
b.test();
D. B b = new B();
b.test();
21) 编译运行以下Java代码,输出结果是( )。
class Base {
public void method(){
System.out.print ("Base method");
}
}
class Child extends Base{
public void methodB(){
System.out.print ("Child methodB");
}
}
class Sample {
public static void main(String[] args) {
Base base= new Child();
base.methodB();
}
}
A. Base method
B. Child methodB
C. Base method Child MethodB
D. 编译错误
22) 下面关于Java接口的说法错误的是( )。
A. 一个Java接口是一些方法特征的集合,但没有方法的实现
B. Java接口中定义的方法在不一样的地方被实现,能够具备彻底不一样的行为
C. Java接口中能够声明私有成员
D. Java接口不能被实例化
23) 在Java接口中定义常量,下面语法错误的是( )。
A. static int MALE = 1;
B. final int MALE = 1;
C. int MALE = 1;
D. private int MALE = 1;
24) 在Java接口中,下列选项中属于有效的方法声明是( )(多选)。
A. public void aMethod();
B. void aMethod();
C. void aMethod(){}
D. private void aMethod();
25) 给定以下Java程序代码,在横线处加入( )语句,可使这段代码编译经过(多选)。
interface Parent{
public int count(int i);
}
public class Test implements Parent {
public int count(int i){
return i % 9;
}
public static void main(String[] args){
________________
int i = p.count(20);
}
}
A. Test p = new Test();
B. Parent p = new Test();
C. Parent p = new Parent();
D. Test p = new Parent();
26) 下列选项中关于Java中ArrayList、LinkedList、HashMap三个类的描述错误的是( )。
A. ArrayList和LinkedList均实现了List接口
B. ArrayList的访问速度比LinkedList快
C. 添加和删除元素时,ArrayList的表现更佳
D. HashMap实现Map接口,它容许任何类型的键和值对象,容许将null用做键或值
27) 关于Java中的集合实现类,下列说法描述错误的是( )。
A. HashMap是Map接口的实现类
B. ArrayList对象是长度可变的对象引用数组
C. 集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法
D. Set中存储一组不容许重复、有序的对象
28) 对于Java中的集合类java.util.ArrayList,如下说法正确的是( )。
A. 这个集合中的元素是无序的
B. 能够经过键来获取这个集合中的元素
C. 在对这个集合的元素执行遍历操做时,效率比较高
D. 能够经过addFirst()方法,在列表的首部插入元素
29) 给定以下Java代码,其中第( )行代码有错误。
import java.util.*;
public class MapTest {
public static void main(String[] args) {
List pList = new ArrayList();
pList.add("A"); //第五行
pList.add("B"); //第六行
for (int i = 0; i < pList.size(); i++) { //第七行
String str = pList.get(i); //第八行
System.out.print(str);
}
}
}
A. 五
B. 六
C. 七
D. 八
30) 给定以下Java代码,能够填入横线处的代码是( )。
import java.util.*;
public class Test {
public static void main(String[] args) {
________
list.addLast("001");
}
}
A. List list = new ArrayList();
B. List list = new List();
C. ArrayList list = new ArrayList();
D. LinkedList list = new LinkedList();
31) 在Java中,( )类的对象可被用做堆栈或者队列。
A. LinkedList
B. ArrayList
C. Collection
D. HashMap
32) 在Java中,关于HashMap类的描述,如下说法错误的是( )。
A. HashMap使用键/值的形式保存数据
B. HashMap可以保证其中元素的顺序
C. HashMap的存储方式是哈希表,查询指定元素效率高
D. HashMap经过get( key)获取对应的值
33) 阅读下面的Java代码,运行结果描述正确的是( )。
import java.util.*;
public class TestMap{
public static void main(String[] args){
Map map=new HashMap( );
map.put(“first”,”football”);
map.put(“first”,”basketball”);
System.out.print(map.get(“first”));
}
}
A. 编译时发生错误
B. 编译经过,运行时发生错误
C. 正确运行,显示basketball
D. 正确运行,显示football
34) 在Java中,集合框架 API定义了一组用于批量操做数据的接口和类,它们包括在( )包中。
A. java.lang
B. java.sql
C. java.util
D. java.math
35) 如下选项中关于XML文档的说法正确的是( )(多选)。
A. XML文档中使用用户自定义标签,标签名不区分大小写
B. 可使用DTD或者XSD定义XML文档结构
C. XML文档的做用是数据存储、数据交换、数据显示
D. XML文档老是以一个XML声明开始
36) 如下选项中关于DOM和SAX的说法错误的是( )。
A. DOM和SAX都是目前经常使用的XML解析技术
B. DOM把XML文档映射成一个倒挂的树状结构
C. DOM模型内存消耗小,DOM解析器能提供更好的性能优点
D. SAX读取文档时会激活一系列事件,推给事件处理器,由事件处理器来访问文档
37) 如下选项中关于Java中文件输入输出的说法正确的是( )(多选)。
A. 在Java中,文件的输入输出功能是经过流来实现的
B. 若是要把数据写入到一个文件中,须要建立一个输入流对象
C. 字符流在某些方面好比汉字的处理,比字节流更高效
D. 能够经过Reader r=new Reader("c:\\pet.txt")来建立一个输入流对象
38) 给定以下Java代码,实现文件复制功能,其中第( )行代码有错误。
public class TestIO {
public static void main(String[] args) throws Exception {
Reader fr = new FileReader("c:\\source.txt");
Writer fw = new FileWriter("c:\\target.txt");
char[] ch = new char[1024];
int length = fr.read(ch);//第六行
while (length != -1) {
fw.write(ch); //第八行
length = fr.read(ch);
}
if (null != fr)
fr.close(); //第十三行
if (null != fw)
fw.close();
}
}
A. 没有错误
B. 六
C. 八
D. 十三
39)给定下面的类定义
public class Upton{
public static void main(String argv[]){
}
//Here
}
下面哪个在替换//Here后是合法的(多选)?
A. public int amethod(int z){}
B. public int amethod(int i,int j){return 99;}
C. protected void amethod(long l){ }
D. private void anothermethod(){}
40)给定下面的类定义
class Base{
public void amethod(){
System.out.println("Base");
}
}
public class Hay extends Base{
public static void main(String argv[]){
Hay h = new Hay();
h.amethod();
}
下面在类Hay中的哪个方法将会编译并使程序打印出字符串"Hay"?
A. public int amethod(){ System.out.println("Hay");}
B. public void amethod(long l){ System.out.println("Hay");}
C. public void amethod(){ System.out.println("Hay");}
D. public void amethod(void){ System.out.println("Hay");}
41)给定下面的类定义
public class ShrubHill{
public void foregate(String sName){}
//Here
}
下面的哪个方法能够合法的直接替换//Here(多选)?
A. public int foregate(String sName){}
B. public void foregate(StringBuffer sName){}
C. public void foreGate(String sName){}
D. private void foregate(String sType){}
42) 给定下面的类定义
class Base{
Base(int i){}
}
class DefCon extends Base{
DefCon(int i){
//XX
}
}
若是将标记//XX的地方替换为下面的行,哪一行是独立合法的?
A. super();
B. this();
C. this(99);
D. super(99);
43)给定下面的类
public class Crowle{
public static void main(String argv[]){
Crowle c = new Crowle();
}
Crowle(){
System.out.println("Greetings from Crowle");
}
}
构造方法会返回哪种数据类型?
A. null
B. integer
C. String
D. no datatype is returned
44)当你试着编译运行下面的代码的时候,可能会发生什么?
public class Crowle{
public static void main(String argv[]){
Crowle c = new Crowle();
}
void Crowle(){
System.out.println("Greetings from Crowle");
}
}
A. 输出 "Greetings from Crowle"
B. 系统报错
C. 输出 "void"
D. 没有输出
45)当你试着编译运行下面的类的时候,可能会发生什么?
class Base{
Base(int i){
System.out.println("Base");
}
}
class Severn extends Base{
public static void main(String argv[]){
Severn s = new Severn();
}
void Severn(){
System.out.println("Severn");
}
}
A. 编译完成并运行时输出字符串"Severn"
B. 编译错误
C. 编译完成但运行时没有输出
D. 编译完成并运行时输出字符串"Base"
46)怎样经过一个语句改变数组大小同时保持原值不变?
A. 使用Array类的setSize()方法
B. 使用Util.setSize(int iNewSize)
C. 使用 size() 操做
D. 以上没有一个是对的。
47)你想用下面的代码查找数组最后一个元素的值,当你编译并运行它的时候,会发生什么?
public class MyAr{
public static void main(String argv[]){
int[]i = new int[5];
System.out.println(i[5]);
}
}
A. 编译完成并输出 0
B. 编译完成并输出null
C. 编译完成但运行时异常
D. 编译错误
48)做为一个好的Java程序员,你已忘记了曾经在C/C++中知道的关于数组大小信息的知识。若是你想遍历一个数组并中止在最后一个元素处。你会使用下面的哪个?
A. myarray.length();
B. myarray.length;
C. myarray.size
D. myarray.size();
49)你的老板为了你写出了HelloWorld而很高兴地为你升职了,如今她给你分配了一个新任务,去作一个踢踏舞游戏(或者我小时候玩的曲棍球游戏)。你认为你须要一个多维数组,下面哪个能作这个工做?
A. int i =new int[3][3];
B. int[] i =new int[3][3];
C. int[][] i =new int[3][3];
D. int i[3][3]=new int[][];
50)你但愿找到一个更优雅的方式给你的数组赋值而不使用for 循环语句,下面的哪个能作到?
A. myArray{
[1]="One";
[2]="Two";
[3]="Three";
}
B. String s[5]=new String[]{"Zero","One","Two","Three","Four"};
C. String s[]=new String[]{"Zero","One","Two","Three","Four"};
D. String s[]=new String[]={"Zero","One","Two","Three","Four"};
#答案:
1.D 2.CD 3.AC 4.D 5.C 6.D 7.C 8.B 9.D10.B
11.A 12.A 13.B 14.C 15.B 16.AC 17.B 18.B 19.C 20.AD
21.D 22.C 23.D 24.AB 25.AB 26.C 27.D 28.C 29.D 30.D
31.A 32.B 33.C 34.C 35.BCD 36.C 37.AC 38.A 39.BCD40.C
41.BC 42.D 43.D 44.D 45.B 46.D 47.C 48.B 49.C 50.C
算法