• 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,多态的作用

  • 相关阅读:
    6.VUE事件处理
    springmvc在使用@ModelAttribute注解获取Request和Response会产生线程并发不安全问题
    IDEAhttp://lookdiv.com/index/index/indexcodeindex.html
    不四舍五入保留...4(round(273.86015,4,1);)
    spring security中@PreAuthorize、@PostAuthorize、@PreFilter和@PostFilter四者的区别
    @RepeatSubmit spring boot 防止重复提交
    权限设计的杂谈
    vue设置全局样式变量 less
    坐标轴刻度取值算法-基于魔数数组-源于echarts的y轴刻度计算需求
    less使用
  • 原文地址:https://www.cnblogs.com/newAndHui/p/8426321.html
Copyright © 2020-2023  润新知