java 经典面试真题

一、基础知识面试题

1.1 Java基础知识

  • 关于Java语言中main方法的描述中,正确的是()

    • A:Java程序的main方法必须写在类里面。
    • B:Java程序中可以有多个main方法
    • C:Java程序的main方法中,如果只有一条语句,可以不用大括号括起来
    • D:Java程序中类名必须和文件名一样
  • 答案:<font color="red">A、B</font>

  • 解析:

    • A:Java是纯面向对象的语言。所以,所有的属性和方法都必须定义在类里面。main只是一个特殊的方法,程序的入口方法。

    • B:Java程序中定义多个main方法。但是只有public static void main(String[] args)才是Java程序的入口方法。

    • C:不多说

    • D:

      public class Test {
      
          public static void main(String[] args) {
              System.out.println("今天下雨了");
              
          }
          
          
      }
      
      class T{
          public static void main(String[] args) {
              System.out.println("今天下雨了,第二次了");
              
          }
      }
      

1.2 基础内容

  • 有以下代码
class A{
    public A(){
        System.out.prinln("A");
    }
}
class B extends A{
    public B(){
        System.out.println("B");
    }
    public static void main(String[] args){
        B b = new B();
    }
}

运行结果是什么

  • A:不确定
  • B:通过编译,输出为AB
  • C:通过编译,输出为B
  • D:通过编译,运行时错误

答案:A

解析:

1.3 面向对象

  • 面向对象的基本概念,少不了三大特性,封装,继承,多态。

  • 题1:有以下程序。请问是否有问题,有问题请指出,没有问题,请写出输出结果

    public class B extends A{
        public B(){
            System.out.println("B constructer");
        }
        {
            System.out.println("B class");
        }
        static{
            System.out.println("static B");
        }
        public static void main(String[] args){
            new B();
        }
    }
    class A{
        public A(){
            System.out.println("A constructer");
        }
        {
            System.out.println("A class");
        }
        static{
            System.out.println("static A");
        }
    }
    
  • 答案:

    static A
    static B
    A class
    A constructer
    B class
    B constructer
    
  • 解析:

    • 在Java语言中,当实例化对象时,对象所在的类的所有成员变量首先要进行初始化。只有这些初始化完成,才会用对象所在的类的构造方法创建对象。
    • Java程序初始化一般遵循三个原则:
      • 静态对象优先于非静态对象初始化,并且,静态对象(变量)只初始化一次,而非静态对象可能会初始化多次。
      • 父类优先于子类进行初始化
      • 按照成员变量定义的顺序进行初始化
    • Java程序初始化在不同代码块中完成,执行顺序:父类静态变量、父类静态代码块、子类静态变量、子类静态代码块、父类非静态变量、父类非静态代码块、父类构造方法、子类非静态变量、子类非静态代码块、子类构造方法。

1.4 智力拓展题

  • 题:现有8瓶酒,其中有一瓶有毒,需要用人测试,每次测试结果8小时后才会得出,如果只有8个小时的时间,那么最少需要多少个人进行测试

  • 答案:3

  • 解析:

    标号 二进制 情况
    1 000 没有人中毒
    2 001 只有第一个人中毒
    3 010 只有第二个人中毒
    4 011 第一和第二个人同时中毒
    5 100 只有第三个人中毒
    6 101 第一、第三个同时中毒
    7 110 第二、第三同时中毒
    8 111 全部中毒

第一个人:喝低位为1的标号的酒 2、4 、6 、8

第二个人:喝第二位为1的标号的酒 3 、 4 、 7 、8

第三个人:喝高位为1的标号的酒 5、6 、7 、 8

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 10,219评论 1 114
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    开心的锣鼓阅读 8,580评论 0 9
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 5,969评论 0 2
  • DAY 05 1、 public classArrayDemo { public static void mai...
    周书达阅读 4,079评论 0 0
  • 8:50~11:20 做PPT 11:20~15:00 做PPT 15:00~15:30 党员投票 16:30~1...
    春暖花开_jing阅读 1,625评论 0 0

友情链接更多精彩内容