zoukankan      html  css  js  c++  java
  • Java面试题之三

    十一、谈谈final,finally,finalize的区别?

    1.final是修饰符,是一个关键字。修饰变量,如果是基本类型表示该变量的值不能修改;如果是引用类型表示该变量不能指向别的对象;修饰类,表示该类不能被继承;修饰方法,表示该方法不能被重写。

    2. finally是在try-catch-finally块中配套使用。一般用于资源清理工作:流的关闭,以及数据库的关闭等。

    3. finalizeObject的方法,是GC运行机制的一部分。没有特别要求的话,一般不需要我们调用该方法,交给GC自己管理就好。Java中允许使用 finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作,但其具体执行时间点是无法确定的。子类可以覆盖finalize()方法以整理系统资源或者执行其他清理工作。

     

    十二、error和exception有什么区别?

    相同点Error类和Exception类都继承Throwable类。

    不同点

    1.Error表示系统级错误和或低层资源的错误。是java运行环境中的内部错误或者硬件问题,比如,内存资源不足等。这种问题不可能指望通过程序能处理。

    2.Exception表示需要捕捉或者需要程序进行处理的异常,它是由于程序设计有问题而产生的,可以通过程序来解决。包括编译时异常(必须捕获)和运行时异常(可以不捕获)。

     

    十三、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

    是值传递Java编程语言中只有值传递没有引用传递的说法。当一个对象实例作为一个参数被传递到方法中时,这个参数的值就是该对象的引用(该对象的地址)。对象的内容可以在被调用的方法中改变,但对象的引用即地址是永远不会改变的。

     

    十四、作用域public,private,protected,以及不写时的区别

    对于这个题,只要看懂这个图就没问题了。

    作用域 当前类 同包 不同包子孙类 其他包
    public       √           √              √              √
    protected  √           √              √               ×
    friendly    √            √              ×              ×
    private     √            ×              ×              ×
    不写时默认为friendly

     

    十五、33.String StringBuffer有什么差别?在什么情况下使用它们?

    区别

    1.String是字符串常量,一旦创建就不能修改,每次对String操作都是产生一个新的字符串对象;

    2.StringBufferStringBuilder是字符串可变量,可以修改,操作的始终是原对象。但是StringBuffer是线程安全的(效率低),StringBuilder是线程不安全的(效率高)。

    选择:如果很少修改,使用String,毕竟它最简单;
               如果经常修改,且是单线程,使用StringBuilder(最常用);
               如果经常修改,且是多线程,使用StringBuffer

  • 相关阅读:
    【BZOJ2553】[BeiJing2011] 禁忌(AC自动机+矩乘)
    自动生成logo的网址
    JS创建对象的方式有几种
    用nodejs和js写增删查模块
    JS一般般的网页重构可以使用Node.js做些什么(转)
    Javascript高级程序设计
    前端书籍小技巧
    【年终总结】2年计划还是要有的,万一实现了呢?(转自叶小钗)
    前端数据结构与算法系列(转)
    node前端自动化
  • 原文地址:https://www.cnblogs.com/riskyer/p/3324846.html
Copyright © 2011-2022 走看看