zoukankan      html  css  js  c++  java
  • java工程师基础笔试题(一)-参考答案

    一.选择和填空  (不定项哦!)

    1,如下是一份文件名为Test2.java的源文件,请问,编译该文件之后会生成几份字节码文件

    class Test{

    class Inner{}

            static class hh{}

    }

    class Test1{

    interface IInterface{}

    }

    enum Gender{

    }

    A 1   B 3   C 5  D 6

    解析: D,一个java文件中的每个类接口枚举都会编译成class文件,如果class前加了public修饰,那么必须与文件名相同

    2,下列代码C.java

    public class Hello{

    /**

     *  只是一个测试类

     *  /**

     *     您好,java

     *  **/ 

     *  // 请仔细找茬喔,亲!

     **/

     static public void main(String[] a){

     System.out.println('您好,java'); 

     }

    }

    请标出上面代码错误的地方________________

     解析:

       /**
      错误1.  如果有public修饰类名应与文件名一致  
      错误2.  应该  public static void
      错误3.  参数 应该为  args
      错误4.   打印输出的字符串 应该用双引号
     */

    3,下列哪些是java的关键字

    A、default    //java中的权限修饰符

    B、loop       //

    C、do   // do  while结构

    D、Class  // 只是一个类名称

    E、null    //空值

    F、java   //

    G、String   //只是一个类名称

    H、false   // 布尔值

    解析:   A、C、E、H

    4,下列哪些代码符合java规范(编译不会报错):

    Apublic static void main(){} 

    Bpublic void method(){

    private Integer num;    //局部变量不能添加权限修饰符

       }

    Cpublic Method(){

            int num;     // 未初始化不能使用

    System.out.println(num);

       } 

    Dprivate $5person=5;   //没有指定变量类型

    Epublic int  5i = 100;    //变量名称不能以数字开头

     解析:  A

    5,下列哪些变量的声明是正确的?

        A、byte i=128;  //-128~127

        B、int i = 0220;   //  相当于 144

        C、boolean flag = Boolean.TRUE; //正确

        D、int number = 'A'; //  ascii 码  65

        E、float y = 0x123; //  java中默认的是10进制数据,在数字前加0可以表示8进制的,加0x则可以表示16进制的

        F、long a = 0x123l; //  java中默认的是10进制数据,在数字前加0可以表示8进制的,加0x则可以表示16进制的

       解析:C

    6,下列代码运行结果是:

    public static void main(String[] args){       

     boolean flag=false;

     int i=0;

         if(flag||i>100){

      System.out.println("step1");

             }else if(!!flag && i/0>8){

          System.out.println("step2");

             }else{

      System.out.println("step3");

             }

    }

    A、运行时报错

    B、打印step1

    C、打印step2

    D、打印step3

    E、编译时报错

    解析:  D

    7,下面代码的运行结果是:

    public static void main(String[] args){

    int i=1;

    int j=++i;

    if(j++>3){

    ++j;

    }else{

    i++;

    int k=++j>4?j++:i++; 

    System.out.println(i); 

    }

    A2

    B3

    C4

    D、运行时报错

    解析:  C

    8、下面的程序执行结果是:

    public static void main(String[] args) {  

            int i = 0;  

            for (i++; i++ < 10; i++);  

            System.out.println(++i);  

    }  

    A、输出0

    B、输出13

    C、输出1

    D、输出12

     解析: B

    9,下面的程序输出

    public static void main(String[] args){

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

    switch(i){

    case 1:

    System.out.println("a");

    break;

    case 0:

    System.out.println("b");

    break;

    default:

    System.out.println("c");

    case 2:

    System.out.println("d");

    }

    }

    }

    请写出执行的结果______________

    解析:b a  d

    10,下面哪些方法是void show(int a,char b,boolean c){}方法的重载?

    A、void show(char b, int a, boolean c){}  //是

    B、int show(boolean a,char c ,int b){}   //是

    C、void show(int a,char b,double c){}  //是

    D、void show(int x,char y,boolean z){}  //不是 参数类型 一样

    E、int show(int x,double y){}  // 是

    F、int show(int x, char y,boolean z){}  //不 是

    解析: A  B  C  E   重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。

    11,下面哪个声明数组的方式是正确的?

    A、int i[]=null;  

    B、int[] j=new Integer[]();   //编译报错

    C、int[] k=new int[]{1,2,3};

    D、int[] L={1,2,3};

    E、int[] m={}; 

    F、String[] s=new String[]{"1",'2',"3"};   //不能放 '2' 类型的数据

    G、String[] s=new String[3];

    H、class A{}

    public class B{

    private A[] ={new A(),new A(),new A()};   // 却少变量名称  private A[]  arr ={new A(),new A(),new A()};

    }

    I、class A{}

    public class B{

    private A[] =new A[]{new A(),new A(),new A()};   //缺少变量名称 

    }

    12下面哪一项说法是正确的?

    A.在一个子类中一个方法不是public的就不能被重载     //错误

    B.覆盖一个方法只需要满足相同的方法名和参数类型就可以了 //对 

    C.覆盖一个方法必须需要相同的方法名参数和返回类型   //错

    D.一个覆盖的方法必须有相同的方法名、参数名和参数类型  //错

    13下面代码的输出结果是多少?___________

    class A {

        public static void prt() {

            System.out.println("1");

        }

        public A() {

            System.out.println("A");

        }

    }

    public class B extends A {

        public static void prt() {

            System.out.println("2");

        }

        public B() {

            System.out.println("B");

        }

        public static void main(String[] args) {

            A a = new B();         

              a = new A();     

     }

    }

    解析: A   B   A

    14下面代码的输出结果是多少?__________

    class Parent {

    protected String value = "123";

    public String getValue() {

          return value;

    }

    }

    public class Child extends Parent {

    protected String value = "456";

    public static void main(String[] args){

    Child c=new Child(); 

    System.out.println(c.getValue()); 

    }

    }

    解析:123

    15,表达式(0 > 0 || 0/0 == 0)结果为_____________;

    解析: Exception in thread "main" java.lang.ArithmeticException: / by zero

    二,主观题

    1,请简要写出搭建java开发环境的步骤和java跨平台原理。

    2,intInteger都可以代表一个整数,这两者在使用上有什么区别吗?为什么JDK中要设计两个数据类型来表示同一种数据?

    3,谈谈你对面向对象特征的理解并举例说明。

    4,谈谈你对抽象类和接口的理解。

    5,请说说方法覆写和方法重载的区别

    6,面向对象的基本特征,并简单述之

    7,多态的作用

  • 相关阅读:
    dubbo入门(一)
    java中文件操作《一》
    Unity 游戏框架搭建 2019 (七) 自定义快捷键
    凉鞋:我所理解的框架 【Unity 游戏框架搭建】
    Unity 游戏框架搭建 2019 (六) MenuItem 复用
    Unity 游戏框架搭建 2019 (五) 打开所在文件夹
    Unity 游戏框架搭建 2019 (四) 导出 UnityPackage
    Unity 游戏框架搭建 2019 (三) 生成文件名到剪切板
    Unity 游戏框架搭建 2019 (二) 文本复制到剪切板
    Unity 游戏框架搭建 2019 (一) 简介与第一个示例文件名的生成
  • 原文地址:https://www.cnblogs.com/newAndHui/p/8426321.html
Copyright © 2011-2022 走看看