传智播客Java就业班入学测试题答案解析【Java面试复习经典】

传智播客java就业班入学测试题解析(每天更新10道题。。。。)

共50道题,每道题2分,总分100分,80分为合格。

(很不幸,在追逐速度的时候,基础不牢实,分数很低啊76分错了13道,建议大家先去现在做一遍,你们可以独立的做一下检验一下se的基础的基础的基础的基础的水平:

http://www.itcast.cn/news/e181c4f9/8ec4/4bba/9a1f/3f3097e9b29c.shtml下载地址)

注意,所有题目均为多项选择题。(我当时没看到这一条……都当成单选了,边做还边疑惑,怨自己对待考试的思路不开阔啊,不是所有选择都是单选……) 


 

1.      在JAVA中,下列哪些说法是正确的()

A.java源文件的扩展名为.java

B.写好的java源程序可以直接运行

C.编写的源程序必须先编译后才能运行

D.程序员可以读懂扩展名为.class的文件
答案:AC  java程序需要经历如下几个步骤才能够被运行

1建立java源文件,为了让编译器识别是java文件所有扩展名为.java 

2编写java代码,你在里面写文言文我也不反对,但是严格意义上来讲,不单单名称要符合java源文件规范,里面代码也应该是符合java语法的。

3编译器编译源文件:编译器javac通过编译.java文件产生可被java执行的.class文件

4 java执行.class文件

2.      在java中,关于数组描述正确的是(BD

A.数组中的索引下标从1开始 从0开始,计算机地址是从0开始

B.存储在数组当中的数据都属于同一数据类型 考察数组概念

C.通过数组名.length()能获得数组的长度 数组名.length length是它的一个属性

D.数组的最大索引下标是数组的长度减1 数组中有3个元素,角标为 0 1 2 长度为3  最大角标2=3-1;

 

3.      下列标识符哪个是合法的(BD

A.class 关键字

B.$abc 可以

C.1234  标识符命名规范

D._name 

请思考:main是关键字吗?说明理由 

4.      下面程序的输出结果是什么( D)

int[] arr = new int[10];

System.out.println(arr[0]);

A.编译不通过

B.运行时出错

C.输出null 

D.输出0

 数组顾名思义是数据排成组,它就是用来存储数据的,当我们定义好它是,它就已经被明确装的是何种类型的数据,而当我们没有初始化里面元素的时候,java会默认会按照

你指定元素的类型来在角标上初始化相应的默认值。想一想String类型的数组如果没有初始化,那它的结果是什么呢?

5.      下面哪些赋值语句是正确的?( abd)

A. long test = 012; 可以

B. float f = -412; 可以

C. int other = (int) true; 布尔类型不能转换为数值类型

D. double d = 0x12345678;可以,在double范围内

E. byte b = 128;超出byte范围-128~127

 这道题考察数据类型声明及转换

请思考:

byte b = 4;

b = 3+7;

System.out.println(b);结果如何呢?为什么

byte b = 4;

byte b1 =3;

byte b2 =7;

b = b1+b2;

System.out.println(b);结果如何呢?为什么

6.      下面哪个语句正确地声明一个整型的二维数组(CD )

A. int a[][] = new int[][]; 

B. int b[10][10] = new int[][];

C. int c[][] = new int[10][10];

D. int []d[] = new int[10][10];

 数组定义格式问题:int arr[][]=new arr[2][3] or int arr[][]=new arr[2][];左边部分[]扔在arr两侧均可

7.      下面哪些函数是public void aMethod(){...}的重载函数?( BD)

A. void aMethod( ){...}

B. public int aMethod(int a, float b){...}

C. public void aMethod (){...}

D. public float aMethod (int m){…}

重载是同一个类中 相同方法名 不同的参数列表,好比一个人可以用不同种餐具;重载同返回值无关
思考:如果不加访问限制修饰符,默认是什么?

8.      下列代码运行的结果是(C )

public static void main(String[] args) {

   

    int x = 4;

    int y = 5;

    if(x++>4& ++y>5) {

       x++;

    }

    System.out.println("x="+ x + ",y=" + y);

   

}

A. x=4,y=5

B. x=4,y=6

C. x=5,y=6

D. x=6,y=6

 让我们分析运算在内存中的过程,x要先完成自身的加1,但是旁边又有比较运算,它就把自己在内存中预存一份原值,然后执行自己的加1等于4+1=5

然后自己加完了,把预存在预存中的原值4取出来参与比较运算,4>4false,此时x值为5所以直接执行输出,y同理

9.      尝试运行下面的代码会发生什么?(B )

public class Test {

  public static void main(String args[]){

       boolean m = true;

       if (m =false) {

           System.out.println("true");

       } else{

           System.out.println("false");

       }

    }

}

A. 输出字符串”true”

B. 输出字符串”false”

C. 编译时错误

D. 运行时错误

 我们要明白if(){}语句中条件句中到底装的是什么,它里面判断的无非就是真假,true false,这里m作为一个boolean变量,在if中将它重新赋值为false

所以相当于if(false),故执行else中的

10.  在Java中,下列语句不能通过编译的有( )bd

A. String s= “join”+ 3;  +前后有字符串 会将其作为字符串参与连接                 

B. int a= “join”+3;字符串无法转换为int类型

C. int a= ‘a’+5; 可以的,在int范围之内

D. float f=5+5.5;小数java默认为double类型,无法从大变小,对于数据类型,一句话:可以鸡犬升天,不能委曲求全

 

11.  设 a = 3,则表达式 (--a )<

A. 16                      

B. 8

C. 24                      

D. 12

 计算过程:

按照运算符的优先级,小括号优先级最高,先执行--a

--a运算特点是在参与其他运算之前将自己-1,再用新值参与其他运算,a此时为2

也就是2<<2  2的二进制为10,左移两位1000,所以答案为8.

12.  下面关于java中包的说法正确的是( acd)

A. 在java中可以使用import语句导入包 必须对啊import javax.servlet.*;

B. 在java中可以使用package语句导入包 你妹。这是打包,package com.lan.huyou 记住就得了

C. 位于同一个包中的类,不需要导包就可以直接访问 是的 你可以试一试

D. 不同的包中可以出现类名相同的类 必须可以啊 要不然你的机器上怎么可能编写Person,早都被老师用了

 

13.  以下代码段的输出结果是?( a b)

    public static void main(String args[]){

       int i;

       int j;

       outer: for (i = 1; i < 3; i++)

           inner: for(j = 1; j < 3; j++) {

                  if (j == 2)

                  continue outer;

                  System.out.println("Value for i = " +i + " Value for j = " +j);

}

    }

}

A. Value for i = 1 value for j = 1

B. Value for i = 2 value for j = 1

C. Value for i = 2 value for j = 2

D. Value for i = 3 value for j = 1

 先输出1 1 然后是2 1

第一次循环时 i=1 j=1 这个不难理解 第二次 i=2 而j虽然也自加为2 但是没有执行完 所以放在临时内存的2被舍弃 还是保留1

14.  编译并运行以下代码将发生什么? ( E)

public static void main(String args[]){

        char digit = 'a';

        for (int i = 0; i < 10; i++){

          switch (digit)

          {

                  case 'x' :

                  {

                     int j = 0;

                     System.out.println(j);     

                  }

                  default :

                  {

                     int j = 100;

                     System.out.println(j);     

                  }

          }

   }  

    int i = j;

   System.out.println(i);  

}

A. 输出11次100

B. 输出10次100,然后抛出运行期异常

C. 编译错误,因为变量i不能在main() 方法中被声明2次

D. 编译错误,因为变量j不能在main() 方法中被声明2次

E. 以上都不对

 j是局部变量,在switch外是没法访问到的,编译出错提示找不到j变量

15.  下列关于 html 的说法哪些是正确的? (  ab)

A. Html就是超文本标记语言的简写,是最基础的网页语言

B. Html代码不用区分大小写

C. Html 是由 xml 发展而来的 既生瑜何生亮~~两就不是一个玩意~~

D. Html中所有的标签都必须要有开始标签和结束标签 nonono

 

16.  在Java中,用来跳出循环的关键字为( c)

A. return

B. continue

C. break

D. exit

 

17.  下列关于 tcp 协议的描述正确的有( bd)

A. tcp协议是sun公司制定的协议

B. tcp是基于ip协议的一种连接协议

C. tcp协议面向无连接

D. tcp协议面向连接 必须稳定

 

18.  在web页面中,经常需要使用javascript进行表单验证,现假设对用户名的限定为字母数字或下划线,以下的正则表达式哪些可以完成这样的限定?(bc)

A. [a-z0-9_]

B. \w 

C. [a-zA-Z0-9_] 

D. \W 

 

19.  下列关于接口的说法正确的是(ad)

A. 接口中所有的方法都是默认抽象的

B. 接口是一种特殊的java类,所以也可以定义构造函数 nonono

C. 接口中的方法前面必须要加上public 没什么意义

D. 一个类只能extends继承一个父类,但是可以实现多个接口

 

20.  运行以下代码片段,输出结果是?( D )

class X {

    Y b = new Y(); 2运行到这里,执行y的构造函数输出Y

    X(){    

            System.out.print("X");  3这里 输出X

    }

}

 

class Y {

    Y(){

            System.out.print("Y");

    }

}

 

public class Z extends X {//继承父类的所有的成员变量和成员方法也就是说 X中的b对象也被继承到子类中

    

Y y = new Y();  4 输出Y

    Z(){

                System.out.print("Z");5 输出 Z

    }

 

    public static void main(String[] args) {

           new Z(); 1  Z的实例对象

    }

}

A. Z

B. YZ

C. XYZ

D. YXYZ

 对继承的中构造函数的考察,会先实现父类 再实现子类

21.  下面程序的输出结果是什么(  D)

Set set= new HashSet();

set.add("aaa");

set.add("bbb");

set.add("aaa");

System.out.println(set.size());

A. 编译不通过

B. 运行时出错

C. 输出3

D. 输出2

 一看到set想到set的特点是元素不可重复 无序 选D 编译时会有警告提示,使用泛型指定类型即可。

22.  下列选项中关于Java中super关键字的说法正确的是(AD)

A. super关键字是在子类对象内部指代其父类对象的引用。super.getClass()

B. super关键字不仅可以指代子类的直接父类,还可以指代父类的父类。

C. 子类通过super关键字只能调用父类的方法,而不能调用父类的属性。

D. 在子类的构造函数中可以通过super关键字调用父类的构造函数

 

23.  下列关于类的继承的描述,正确的有(BD )

A. 一个类可以同时继承多个父类 java中不支持此种方式实现多继承

B. 一个类可以具有多个子类

C. 子类会自动拥有父类所有的方法 //自动拥有父类所有的非私有方法

D. 一个类继承另一个类需要使用 extends 关键字

 

24.  下列代码运行的结果是(  D)

public static void main(String[] args) {

   

    int num = 4;

    int y = 0;

    switch(num){

       case1:

           y++;

       case2:

           y+=2; 

       case3:

           y+=3;

       case4:

           y+=4;

       case5:

           y+=5;

    }

    System.out.println(y);

}

A. 0

B. 4

C. 5

D. 9

 没有break来跳出,造成case穿透

25.  下列选项中关于java中this关键字的说法错误的有( AD) 

A. this关键字是一个对象的引用 this可以代表当前类

B. this关键字可以用于引用当前类以外其他类型的对象

C. this可用于构造函数中,调用类本身重载的构造函数,但是必须写在首行

D. this可用于静态方法中 this是对象的引用,静态方法没有对象,没有爹啊 所以不能在静态方法中引用this

 

26.  下列关于java中抽象类的说法正确的有(  AD) 

A. 含有抽象方法的类必须声明为抽象类

B. 抽象类中不可以有非抽象方法

C. 抽象类中至少需要包含一个抽象方法

D. 抽象类无法实例化 在抽象类中实例化有屁用

 

27.  下列关于构造函数的说法正确的是( ABD)

A. 方法名必须与类名相同

B. 使用new关键字创建对象时,java虚拟机会自动调用构造函数 //调用默认空参的构造函数,如果类中定义了带参的,那么需要在new的时候提供参数

C. 我们在定义一个类时,必须要声明至少一个构造函数

D. 构造函数中不能使用return语句 构造函数返回值是对象,但是java规定不可以显式返回该对象

 

28.  下面有关Java异常处理的说法错误的是(A)

A. 一个try块只能有一条catch语句

B. 一个try块中可以不使用catch语句 可以

C. catch块不能单独使用,必须始终与try块在一起 try 和 catch是好基友

D. finally块不能单独使用,必须始终与try块在一起 

 

29.  下列关键字能和try语句一起使用的是( CD )

A. final

B. finalize

C. finally

D. catch

 

30.  编译并运行以下代码的输出结果是?(  A)

String s1 = new String("amit");

System.out.println(s1.replace('m','r')); replace方法返回一个字符串,这个字符串当然是新的了,不会影响原来的s1

System.out.println(s1);

String s3 = "arit";s3作为基础类型 被赋值为“arit”

String s4 = "arit";

String s2 = s1.replace('m','r');//s2 :arit 这里的s2是引用变量 指向 replace方法返回回来的String对象

System.out.println(s2 == s3); //一个基础类型的变量和一个引用类型的变量相比 那肯定是不等

System.out.println(s3 == s4); //两个基础类型变量的比较

 

A.  arit

amit

false

true


B.  arit

arit

false 

true

 

C.  amit

amit

false

true

 

D.  arit

amit

true

true

 

31.  当select下拉列表的选项发生改变时会触发下面的那个事件? (  C)

A. onclick事件

B. onsubmit事件

C. onchange事件

D. onload事件

 

 

32.  编译并运行以下代码将发生什么?(  D)

class MyClass {

    int x;

    MyClass(int i) {

       x = i;

    }

    public static void main(String args[]) {

       MyClass m1 = new MyClass(100);

       MyClass m2 = new MyClass(100);

       if(m1.equals(m2)) {

           System.out.println("Bothare equal");

       }else {

           System.out.println("Bothare not equal");

       }

    }

}

A. 代码编译时报出错误提示信息“equals() 方法未定义”

B. 编译通过,抛出运行期异常.

C. 输出Both are equal.

D. 输出Both are not equal

 查看object的equals方法,就一目了然了

33.  阅读下面的html页面,选出能获取table元素的语句(BD )

   

      

          

……

      

   

A. document.getElementById("mytab") 

B. document.getElementsByName("mytab")[0]

C. document.getElementsByTagName("mytab")[0]

D. document.getElementsByTagName("table")[0]

 

34.  运行以下的main()方法,结果是?(AC )

1   public static void main(String[] args)

2   {

3       String myString;

4       int x = 100;

5     

6       if(x < 100) myString = "x is less than 100";

7       if(x > 100) myString = "x is greater than 100";

8       System.out.println(myString.length());

9   }

A.编译时报出错误提示信息“变量myString没有被初始化” 局部变量必须在使用前初始化

B.编译通过

C.编译未能通过。但如果变量myString在第8行前的代码中被初始化,代码可以编译通过,运行时可以输出字符串myString的长度

D.以上都不对

 

35.  下列哪些代码可以顺利通过编译和运行? ( ABD )

A.Integer i = new Integer("A");

B.Integeri = new Integer("7");

C.Characterc = new Character("A");

D.Booleanb = new Boolean(null);

E.Integeri = new Integer("0x10");

 

36.  下列关于ArrayList、Vector和LinkedList集合的说法正确是有(  ACD)

A. ArrayList集合底层是数组实现,该集合线程不安全

B. Vector 集合元素的存放是无序的

C. LinkedList集合底层是链表结构,适合做元素的增删操作

D. 这三个集合都是List接口的实现类

 

37.  下列哪些方法是ArrayList和LinkedList集合中都定义的(ACD )

A. add(Object o)

B. removeFirst()

C. remove(Object o)

D. add(int index,Object o)

 

38.  下列关于Java中文件输入输出的说法正确的是( AC)

A. 在Java中,文件的输入输出功能是通过流来实现的

B. 如果要把数据写入到一个文件中,需要创建一个输入流对象 输出流

C. 字符流在某些方面比如汉字的处理,比字节流更高效

D. 可以通过Reader r = new Reader("c:\\pet.txt")创建一个输入流对象 可以看一下Reader的构造方法

 

39.  下列哪个关键字可以用于实现同步?( C )

A. native

B. static

C. synchronized

D. abstract

 

40.  下列哪些方法可以让线程中断? ( AD )

A. sleep

B. start

C. notify

D. wait

 

41.  编译并运行以下代码的结果是?(A)

publicclass MyThread extends Thread{

    public static void main(String args[]){

       MyThread mt = new MyThread();

       mt.start();// new Thread(mt).start();

    }

 

    public void run(){

       try {

               sleep(200);

               System.out.println("Printing from thread run() method");

       } catch ( IOException e) {

          

       }

    }

}

A. 编译错误.

B. 输出: Printing from thread run() method.

C. 线程先停止运行,在 200毫秒后恢复,并输出 :

Printing from thread run() method.

D. 线程先停止运行,在恰好200毫秒后恢复。

 

42.  在 awt 中,下列哪个组件可以实现带标题的窗口(  C)

A. panel

B. button

C. frame

D. graphics

 

43.  Socket类哪个方法返回Socket对象绑定的本地端口( B )

A. getPort() //返回的是连接到的远程端口

B. getLocalPort() //返回此套接字绑定的本地端口

C. getRemotePort()

D. 不存在这个样的方法,因为SocketChannel对象绑定的本地端口对程序是透明的

 

44.  在 html 中,下面那些标签属于表单标签( BC )

A. table

B. radio

C. input

D. marquee

 

45.  下列哪些集合属于Collection的子类(BD )

A. TreeMap

B. ArrayList

C. HashTable

D. HashSet

 

46.  有关Java中的类和对象,以下说法正确的有(  ACD)

A. 同一个类的所有对象都拥有相同的特征和行为

B. 类和对象一样,只是说法不同

C. 对象是具有属性和行为的实体

D. 类规定了对象拥有的特征和行为

 

47.  下列关于javascript的说法错误的有( BC)

A. JavaScript是基于对象和事件的脚本语言

B. JavaScript 脚本是java语言的一个分支

C. JavaScript 脚本必须要内嵌在 html 语言中使用//也可以外链嘛

D. JavaScript脚本需要编译后ie浏览器才能解释执行

 

48.  下面的javascript语句,哪些是有错的(  D)

A. var num = 1 + "abc";

B. if(x=4) alert(1);

C. var arr = new Array(); 有多种定义放式 通过array对象,或者直接定义

D. var arr = {1,2,3,4}; 语法问题,[ ]

 

49.  下列代码运行的结果是( A )

public static void main(String[] args) {

    int num = getNum();//鬼调用这个方法啊?在静态函数中不能引用非静态的方法,得给这个方法一个承载体

//可以new 类().getNum();输出结果为1 

 

    System.out.println(num);

}

 

public int getNum() {

       int num = 1;

 

return num++;
}  

A. 编译时报错

B. 运行时报错

C. 1

D. 2

 

50.  在Java中,如果要在字符串类型对象s="java"中,得到字符 'v' 出现的位置,可使用下面的那个方法?( B)

A. s.matches('v');

B. s.charAt('v');

C. s.indexOf('v');方法名称就是 “x”这个字符在s的哪个位置

D. s.substring('v');

你可能感兴趣的:(传智播客Java就业班入学测试题答案解析【Java面试复习经典】)