常见面试题

来源:互联网 发布:大数据服务器 编辑:程序博客网 时间:2024/05/29 18:10
Java语言相关:
  • String和StringBuffer的区别?
    String 类是final修饰的表示最终类,不能被改变,所以当改变String对象时,实际上会内存中会新建对象;而StringBuffer提供了改变对象存储字符的方法,改变字符串内部结构时,可以节省内存开销。
  • java语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
    throws用于声明方法抛出异常;throws用于在方法内部抛出具体异常;try包含可能发生异常的代码块;catch表示抓取的异常;finally块中的代码,无论是否异常都会执行。
    try块可以抛出异常。
  • ArrayList,Vector和LinkedList区别
    ArrayList 和 Vector 底层的实现都是数组,差别是Vector是线程安全而ArrayList是非线程安全的。
    ListedList的底层实现是双链表。
    从底层的实现可以看出他们在性能上的区别,
    ArrayList,Vector插入慢查询快,LinkedList反之。
  • 运行时异常和一般的异常?
    运行时异常由Java虚拟机处理,一般的异常需要程序员处理。
    常见的运行时异常如:空指针、数组越界,类型转换等。
    常见的检查型异常如:SQL异常、IO异常。
智力题:
  • 有十阶楼梯,每次可以上一阶,也可以上两阶,上楼梯共有多少种方法?
    这道题的解决方法是递归!
    假设f(n)函数是n阶楼梯的结果,上十阶楼梯是f(10).
    第一步有两种选择:上一阶,那么接下去就要计算f(9)有多少方法,上两阶,接下去就要计算f(8)。
    所以f(10)=f(9)+f(8)...
    f(1)=1
    f(2)=2
  • 到某商店买饮料,每三个瓶盖可以换一瓶饮料,请问要买多少瓶,才能得到50瓶?
    这道题要换一种思路,每三个瓶盖可以换一瓶饮料,那么买两瓶就可以得到三瓶?恩,是这样的,第三瓶是没有瓶盖的,(现实中比如可以跟老板赊一瓶,喝完后一并把瓶盖给他)。
    答案:50/3*2向上取整得到34瓶。
0 0
原创粉丝点击