美文网首页java攻城狮
面试积累 java篇(一)

面试积累 java篇(一)

作者: 大炮对着虫子 | 来源:发表于2017-09-27 09:19 被阅读5次
    程序查错题

    1、

    public class Something {
       public int addOne(final int x) {
           return ++x;
       }
    }
    存在错误。 final 修饰成员变量视为常量,不能改变值
    

    2、

    public class Something {
       public static void main(String[] args) {
           Other o = new Other();
           new Something().addOne(o);
       }
       public void addOne(final Other o) {
           o.i++;
       }
    }
    class Other {
       public int i;
    }
    
    不存在错误。首先,我们需要明确,final 修饰的变量是不能改变值的。
    final Other o 修饰o,o是指向Other 对象的引用,所以o是不能改变的
    o.i++   是可以改变的
    

    3、

    class Something {
        int i;
        public void doSomething() {
            System.out.println("i = " + i);
        }
    } 
    没有错,输出i=0     int i;没有赋值的话,默认给0
    

    4、

    class Something {
        final int i;
        public void doSomething() {
            System.out.println("i = " + i);
        }
    }
    
    错,首先final 修饰的值,不能改变。所以 定义的时候,就给它初始化值,准没错
    

    5、

    此处,Something类的文件名叫OtherThing.java
    class Something {
        private static void main(String[] something_to_do) {        
            System.out.println("Do something ...");
        }
    }
    没有错的,一个.java文件是可以放多个类的,
    但是只能有一个public 修饰的class类,且必须与文件名相同
    

    6、Integer与int的区别
    Integer是java为int提供的封装类。int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别,则只能使用Integer。

    7、请说出作用域public,private,protected,以及不写时的区别
    这四个作用域的可见范围如下表所示。
    说明:如果在修饰的元素上面没有写任何访问修饰符,则表示friendly。

    作用域    当前类 同一package 子孙类 其他package 
    public    √     √          √       √ 
    protected  √     √          √      × 
    friendly   √     √          ×      × 
    private    √     ×          ×      × 
    

    8、java中实现多态的机制是什么?

    父类或者接口的定义的变量指向子类或实现类的实力对象,在程序调用的时候动态绑定,就是引用对象指向具体实例类对象的方法。

    9、abstract class 和interface有什么区别:

    首先描述abstract类:用abstract 修饰的class类为抽象类,abstract不能实例化。不能有抽象构造方法或抽象静态方法
    
    区别:
    1、抽象类可以有普通的成员变量,而接口定义的方法默认
    为public abstract,定义的成员变量类型默认为 public static final
    2、抽象类可以有构造方法,接口没有构造方法,
    3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
    4. 抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然
    eclipse下不报错,但应该也不行),
    但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
    
    

    10 Java中的异常处理机制的简单原理和应用

    异常

    相关文章

      网友评论

        本文标题:面试积累 java篇(一)

        本文链接:https://www.haomeiwen.com/subject/iglhextx.html