美文网首页
Java基础面试题(含答案)

Java基础面试题(含答案)

作者: 疾风E有归途 | 来源:发表于2019-03-20 22:50 被阅读0次

    作者:公众号JavaWeb学习笔记
    转载链接:原文

    1.面向对象有哪些特性?

    封装,继承,多态,抽象。
    默认情况是前面三种,如果面试官问4大特性就把抽象加上。
    抽象:将一类对象的共同特征总结出来的构造类的过程。

    2、访问修饰符public、private、protected、default的区别?

    public:当前类,同包,子类,其他包
    protected:当前类,同包,子类
    default:当前类,同包
    private:当前类

    3、Java有没有goto语句 ?

    没有,但是goto是保留字

    4、运算符&和&&的区别?

    &:按位与和逻辑与
    &&:短路与。

    二者都要求运算符两端都为true,整个表达式才为true。但是&&如果左边为false,就不用判断右边了。

    5、String,StringBuffer,StringBuilder的区别?

    String是只读字符串,引用的字符串内容是不能被改变的。

    StringBuffer和StringBuilder的字符串对象可以直接进行修改。StringBuilder是线程安全的,理论上效率比StringBuffer高。

    6、short s1 = 1; s1=s1+1;有错吗?short s1=1;s1+=1;有错吗?

    前者不正确,后者正确。

    因为1为int类型,所以s1+1也是int类型,需要强制类型转换才能赋值给short。而s1+=1;就可以编译通过,相当于s1=(short)s1+1;隐含了类型转换。

    7、抽象类与接口有什么异同?

    相同点:1)不能被实例化 2) 一个类继承了抽象类或实现了接口,需要实现其中全部的抽象方法。

    不同点:

    抽象类里的方法可以是抽象发方法和具体方法,接口里的方法只有抽象方法

    抽象类的方法可以是public/private/protected等,接口的方法只能是public

    抽象类可以有静态方法,接口不能有静态方法

    抽象类可以定义变量,接口中的变量实际上都是常量

    一个类只能继承一个抽象类,一个类可以实现多个接口

    8、final 、finally 、finalize 的区别?

    final :用于声明属性,方法和类分别表示不可变覆盖被其修饰的继承。

    finally:异常处理语句结构的一部分,表示总是执行。

    finalize :Object类的一个方法 ,在垃圾回收器执行时候会调用被对象此可以覆盖类的一个方法,例如关闭文件等。

    9、Math.round(11.5) 等于多少? Math.round( - 11.5)又等于多少?

    Math.round(11.5)的返回值是12,

    Math.round( - 11.5) 的返回值是-11 。

    四舍五入的原理是在参数上加0.5然后取整。

    10、error和exception的区别?

    Error类和Exception类的父类都是Throwable类.

    Error类一般指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存不足,方法调用溢出等。对于这类错误导致的程序中断,仅靠程序员本身无法恢复和预防,遇到这样的错误,建议让程序终止。

    Exception类表示程序可以处理的一城,可以捕获且可以恢复。

    相关文章

      网友评论

          本文标题:Java基础面试题(含答案)

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