zoukankan      html  css  js  c++  java
  • 笔试经典

    前几天去一个软件公司面试,期间面试官让我做了几道笔试题,有一道印象比较深刻!

    public class Test {
    public static void test(Object obj){
    System.out.println("one");
    }

    public static void test(Object[] objs){
    System.out.println("two");
    }
    public static void main(String[] args) {
    test(null);
    }

    // public static void main(String[] args) {
    // main(null);
    // }

    }

      求:该程序输出的结果!? 

      答案:Two

    很惊讶吧!   

    如果把代码改成这个样子,再看看结果

    public class Test {
    public static void test(Object obj){
    System.out.println("one");
    }

    //public static void test(Object[] objs){
    // System.out.println("two");
    //}
    public static void main(String[] args) {
    test(null);
    }

    // public static void main(String[] args) {
    // main(null);
    // }

    }

    结果是:one

    很神奇吧?!

    其实,这里涉及到了参数的调用关系!

     1. 任意一个可为空的值类型都可以与 Object 共存,而不会被认为是错误的不明确的重载,但是 Object 永远不会被调用
    2. String、DateTime等无法与其他非 Object 类型作为两个重载,会产生不能明确调用的错误
    3. 整型(Int16/Int32/Int64)和浮点数(Single/Double)可以共存,优先级和大家想的一样,整型优先于浮点,小的优先于大的
    4. 特殊的数字类型 Decimal 可以与整型共存,而优先级低于整型,但无法与浮点数共存
     
     
    很惊讶吧!我也想不到,好好想想吧!
  • 相关阅读:
    Linux文件和目录管理常用重要命令
    Windows和Linux下Mysql 重置root 密码
    瀑布流vue-waterfall的高度设置
    vue-cli 引入axios及跨域使用
    Vue 脱坑记
    shell基础
    正则
    安装卸载
    压缩打包
    vim工具
  • 原文地址:https://www.cnblogs.com/ld1022/p/4435888.html
Copyright © 2011-2022 走看看