码迷,mamicode.com
首页 > 其他好文 > 详细

记录一次别人的面试题

时间:2018-11-22 10:43:33      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:计算   变量   顺序   静态成员   运行   位移   初始   lob   system   

1. 下面程序的运行结果是什么?

 static class HelloA {

        public HelloA() {
            System.out.println("HelloA");
        }

        {
            System.out.println("I m A class");
        }

        static {
            System.out.println("static A");
        }
    }


    static class HelloB extends HelloA {
        public HelloB() {
            System.out.println("HelloB");
        }

        {
            System.out.println("I m B class");
        }

        static{
            System.out.println("static B");
        }

        public static void main(String[] args) {
            new HelloB();
        }

    }

这个考察的是类的初始化顺序,一般是父类的静态变量,静态代码块->子类的静态成员,静态代码块->父类的成员变量->父类的初始化块(就是直接用大括号扩起来的,平时不常见)->父类的构造函数->子类的成员变量->子类的初始化块->子类的构造函数

运行结果如下:

static A
static B
I m A class
HelloA
I m B class
HelloB

2.用最有效率的方法计算5*32

我能想到的只有使用位移了

5 << 5

测试一下

        int n1 = 5 * 32;
        int n2 = 5 << 5;

        System.out.println(n1);
        System.out.println(n2);

运行结果

160
160

记录一次别人的面试题

标签:计算   变量   顺序   静态成员   运行   位移   初始   lob   system   

原文地址:https://www.cnblogs.com/wenjianes/p/9999325.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!