科多大数据培训
全国24小时免费热线
15328019568
联系QQ
3048661160
开班时间
当前位置:首页 > 学习资讯 >

大数据培训资讯:Java高级应用面试真题

大数据的发展势头是蒸蒸日上,不少小伙伴想要转行大数据却不知道自己到底够不够格。JAVA作为大数据的基础技能,是转行大数据的必要条件。有JAVA开发经验的人可以更快地跳转大数据

大数据的发展势头是蒸蒸日上,不少小伙伴想要转行大数据却不知道自己到底够不够格。JAVA作为大数据的基础技能,是转行大数据的必要条件。有JAVA开发经验的人可以更快地跳转大数据发展方向。今天科多大数据为大家整理了面试真题的第四弹——JAVA高级应用。快来检测一下你的JAVA学的够不够扎实,是不是需要大数据培训一下啦。
 

大数据培训资讯:Java高级应用面试真题

(共30分,每空1分)

1. Collection 接口的特点是元素是_________; List 接口的特点是元素_____(有 |无)顺序,______(可以|不可以)重复; Set 接口的特点是元素_____(有| 无)顺序,______(可以|不可以)重复; Map接口的特点是元素是__________,其中_____可以重复,________不可以重复。

2.关于下列Map 接口中常见的方法 

put 方法表示放入一个键值对,如果键已存在则________________,如果键不存在则______________。 remove 方法接受___个参数,表示________。 get 方法表示_______________________,get 方法的参数表示______,返回值表示_____。 要想获得Map 中所有的键,应该使用方法___________,该方法返回值类型为_______。 要想获得Map 中所有的值,应该使用方法_________,该方法返回值类型为_______。 要想获得 Map 中所有的键值对的集合,应该使用方法___________,该方法返回一个_______类型所组成的Set。

3.有如下代码: 

     import java.util.*;  classMyKey{  int keyValue;  public MyKey(){} 

     public MyKey(int value){this.keyValue = value;}  } 

     class MyValue{  String value;  public MyValue(){} 

     public MyValue(String value){this.value = value;}  public String toString(){return value;} 

     } 

     public class TestMap{  publicstatic void main(String args[]){ 

     Map map = new HashMap();  MyKeykey1 = new MyKey(10);  map.put(key1, newMyValue(“abc”)); map.put(new MyKey(10), new MyValue(“cde”)); 

     System.out.println(map.get(key1)); 

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

     } 

     } 

写出该代码的输出结果

4.对于 FileInputStream 来说,从方向上来分,它是_________ 流,从数据单位上分,它是__________流,从功能上分,它是____________流。

5.写出下面程序的运行结果 

    import java.util.*;  public classTestList{  public static void main(Stringargs[]){ List list = new ArrayList(); list.add(“Hello”); list.add(“World”); list.add(“Hello”); list.add(“Learn”); list.remove(“Hello”);  list.remove(0); 

    for(int i = 0; i<list.size(); i++){ 

    System.out.println(list.get(i)); 

    } 

    } 

    }  

6.创建 FileOutputStream 对象时,如果对应的文件在硬盘上不存在,则会 ___________;如果对应的文件在硬盘上已经存在,则_______________;  如果使用 FileOutputStream(String path, boolean append) 这个构造方法创建 FileOutputStream 对象,并给定第二个参数为 true,则效果为 ______________。 创建 FileOutputStream 时_______(会|不会)产生异常。

 

答案解析:

  1. 对象;有;可以;无;不可以;键值对;值;键

  2. 新值替换旧;增加一个键值对;一个;删除一个键值对;通过键查找值;键名;该键对应的值;keySet;set;values;Collections;entrySet;Map.EntrySet

  3. abc

  4. 输入流;字节流;文件流

  5. Hello,Learn

  6.  创建文件;创建新的文件并覆盖;在后面追加数据;会

     

 

 

 

 

大数据培训资讯:Java高级应用面试真题

(共10分,每题2分)

1.有下面代码

     import java.util.*;  class Student{  int age;  String name; public Student(){}

     public Student(String name, int age){ this.name = name;

      this.age = age;  

     }

     public int hashCode(){  returnname.hashCode() + age;

     }

     public boolean equals(Object o){ if (o == null) return false;  if(o == this) return true;

     if (o.getClass() != this.getClass()) return false;  Student stu = (Student) o;

     if (stu.name.equals(name) && stu.age == age) returntrue;  else return false;

     }  }

     public class TestHashSet{  publicstatic void main(String args[]){

     Set set = new HashSet();

     Student stu1 = new Student();

     Student stu2 = new Student(“Tom”, 18);  Student stu3 = newStudent(“Tom”, 18); set.add(stu1); set.add(stu2);  set.add(stu3);

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

     }

     }

     下列说法正确的是:

A. 编译错误 

B. 编译正确,运行时异常  

C. 编译运行都正确,输出结果为3  

D. 编译运行都正确,输出结果为2  

2.下面关于FileInputStream 类型说法正确的是: 

A.  创建FileInputStream 对象是为了读取硬盘上的文件

B. 创建FileInputStream对象时,如果硬盘上对应的文件不存在,则抛出一个异常  

C.  利用FileInputStream 对象可以创建文件

D. FileInputStream 对象读取文件时,只能读取文本文件

3.有以下代码: 

     import java.io.*;  classAddress{  private StringaddressName; 

                 private String zipCode; 

                //构造方法„ 

              //get/set 方法„ 

               }  class Worker implements Serializable{  private String name;  private int age;  private Address address; 

               //构造方法„ 

              //get/set 方法„ 

     } 

     public class TestSerializable { public static void main(String args[]) throws Exception{ 

                Address addr = newAddress("Beijing", "100000"); 

      

                Worker w = newWorker("Tom", 18, addr); ObjectOutputStream oout = new ObjectOutputStream(  newFileOutputStream("fout.dat") );  oout.writeObject(w);  oout.close(); 

           } 

     } 

     选择正确 答案: 

A. 该程序编译出错  

B. 编译正常,运行时异常  

C. 编译正常,运行时也正常

4.

 import java.util.*;  public classTestListSet{  public static voidmain(String args[]){  List list = newArrayList();  list.add(“Hello”);  list.add(“Learn”);  list.add(“Hello”);  list.add(“Welcome”);  Set set = new HashSet();  set.addAll(list); 

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

    } 

    } 

     选择正确答案 

A. 编译不通过

B. 编译通过,运行时异常 

C. 编译运行都正常,输出3

D. 编译运行都正常,输出4 

5.在添加完equals 方法的基础上,添加一个hashCode方法。 

    public int hashCode(){  //1 

    } 

     有几种写法: 

    1) return 0; 

    2) 

     intresult = 0;  if (name != null) result =name.hashCode(); return result + age; 

    3) return super.hashCode(); 

     现在要把Worker 类放入HashSet 中,并希望在HashSet 中没有重复元素,

     则下面说法正确的是:

A. 三种写法都正确  

B. 1), 2)写法正确,2)效率更高

C. 2)写法正确,1),3)写法都不正确

D.三种写法都不正确


 

答案解析:

  1. B,空指针异常

  2. A

  3. B

  4. C

  5. B

     

 

大数据培训资讯:Java高级应用面试真题

(共60分,每题15分)

1.为Worker 类增加id 属性,用来唯一标识一个员工。即:如果员工的id 不同,则不管其姓名、年龄、工资是否相同,都认为是不同的员工。部分代码如下: 

     class Worker{  private final Longid;  private String name;  private double salary; 

     private int age; 

     //构造方法„ 

     //get/set 方法„ 

     public boolean equals(Object obj){ 

     //1 此处仅判断id 是否相同 

     } 

     public int hashCode(){ 

     //2 此处返回hashCode 

     } 

     } 

     要求: 

     1)完善构造方法和get/set方法。要求自动分配Worker 的id        

     2) 完善equals 方法。要求仅判断id 是否相同    

     3)//2 处,如果写成    return (int)(name.hashCode() + id.hashCode() + age + salary); 是否正确?为什么? 

2.有如下两个类(只写了类的属性,请自行添加相应的构造方法和get/set 方法)

     要求,完善Worker 和Address 类,使得Worker 对象能够正确放入HashSet 中:即将Worker 放入HashSet 中时不会出现重复元素。并编写相应测试代码。

3.已知某学校的教学课程内容安排如下: 

     老师  课程 

     Tom  CoreJava 

     John  Oracle  Susan  Oracle 

     Jerry   JDBC  Jim  Unix 

     Kevin  JSP 

     Lucy  JSP 

     完成下列要求: 

1)使用一个Map,以老师的名字作为键,以老师教授的课程名作为值,表示上述课程安排。     

2)增加了一位新老师Allen 教JDBC      

3)Lucy 改为教CoreJava       

4)遍历Map,输出所有的老师及老师教授的课程   

5)利用Map,输出所有教JSP 的老师

4.完成下面操作。 

     在当前目录下创建一个worldcup.txt 的文本文件,其格式如下: 

     2006/意大利 

     2002/巴西 

     „ 

     该文件采用“年份/世界杯冠军”的方式保存每一年世界杯冠军的信息。  要求:读入该文件的基础上,让用户输入一个年份,输出该年的世界杯冠军。如果该年没有举办世界杯,则输出“没有举办世界杯”


 

答案解析:

  1. 1)getter/setter;自动分配员工id--可以采用自动生成的uuid

       2)

                  if(null==obj){

                     return false;

                  }

               

                if(this.id==((Worker)obj).id){

                     return true;

                  }

               

                  return false;

        3)不正确--id为基本数据类型,不能调用方法hashCode

   2.

public int hashCode() {

                  returnname.hashCode() + age;

              }

               

              public boolean equals(Object o) {

                  if (o == null)

                     return false;

                  if (o == this)

                     return true;

                  if(o.getClass() != this.getClass())

                     return false;

                  Student stu =(Student) o;

                  if(stu.name.equals(name) && stu.age == age)

                     return true;

                  else

                     return false;

              }

   3.  1)

             Map<String,String>map=new HashMap<String,String>();

             map.put("Tom","CoreJava");

             map.put("John","Oracle");

             map.put("Susan","Oracle");

             map.put("Jerry","JDBC");

             map.put("Jim","Unix");

             map.put("Kevin","JSP");

             map.put("Lucy","JSP");      

        2)

              map.put("Allen","JDBC");

        3)

              map.remove("Lucy");

             map.put("CoreJava","Jsp");

        4)

              Set<String> set =map.keySet();

              for (String s : set) {

                 System.out.println(map.get(s));

              }  

        5)

              Set<String> set =map.keySet();

              for (String s : set) {

                 if(map.get(s).equals("JSP")){

                     System.out.println(s);

                  }

              }

  4.  

package com.peng.demo;

 

              import java.io.BufferedReader;

              import java.io.FileInputStream;

              import java.io.InputStreamReader;

              import java.util.HashMap;

              import java.util.Scanner;

               

              public class test5 {

                  public staticvoid main(String[] args) {

                     try {

                        HashMap<String, String> hs = new HashMap<String,String>();

                         String str;

                        String con[] = new String[2];

                        BufferedReader in = new BufferedReader(new InputStreamReader(

                                new FileInputStream("worldcup.txt")));

                         while ((str = in.readLine()) != null) {

                            con = str.split("/");

                            hs.put(con[0], con[1]);

                         }

                        String ss;

                         intcount = 0;

                        Scanner s = new Scanner(System.in);

                        System.out.println("请输入年份:");

                         ss =s.next();

                         for(String mm : hs.keySet()) {

                             if (mm.equals(ss)) {

                                count++;

                                System.out.println(mm + "年的世界杯冠军是:" +hs.get(mm));

                            }

                         }

                         if (count== 0)

                            System.out.println("该年没有举办世界杯!");

               

                     } catch (Exception e) {

                         //TODO: handle exception

                     }

                  }

              } 

Java的高级应用部分需要对JAVA有着相当高的熟练度才可以解答,大家学习一定要一步一个脚印地认真完成哦。大数据培训学习资讯关注科多大数据即可获取。

最新资讯更多+
内容推荐更多+
在线课堂
猜你喜欢