Java基础类面试总结(一)

  1. String是由final关键字修饰了,String对象不可变而StringBufferStringBuilder继承于AbstractStringBuilder类,也使用char[ ] value字符数组保存字符串,但是没有final修饰,所以这两个对象是可变的。
  2. String对象不可变,也就是常量,因此String对象线程安全;StringBuffer对方法加了同步锁,所以StringBuffer也是线程安全的;StringBuilder没有加同步锁,因此线程不安全。
  3. 操作少量数据时使用String;
    单线程操作字符缓冲区下大量数据使用StringBuilder;
    多线程操作字符缓冲区下大量数据使用StringBuffer。
  4. equals():判断两个对象内容是否相等。
    ==:判断两个对象是否相等,即是否为同一个对象(基本数据类型比较的是值,引用数据类型比较的是地址)
  5. final, finally, finalize的区别和用法。
    final常用于三个地方,变量,方法,类
    (1)对于一个变量,如果使用final修饰,这个变量不能再被修改。如果是一个引用变量,则这个变量的引用地址不能再被更改。
    (2)final修饰一个类,表明这个类不能再被继承,这个类的方法全部为final方法
    (3)final修饰方法,将这个方法锁定,防止继承类修改它的含义。
    finally是异常处理语句结构的一部分,表示总会执行,而不管是否发生异常。使用finally可维护对象内部状态,并可以清理非内存资源。
    finalize是Object类的一个方法,在垃圾收集器将对象从内存中清除出去前,做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没被引用时对这个对象调用的。
  6. Object类常见的方法总结
    Object类是所有类的父类,常见有hashcode(), euqals(), toString(), finalize()等。
  7. Java异常处理
    Java异常都来自于java.lang包中的Throwable类。Throwable中有2个子类是Exception(异常)和Error(错误),两者都是异常处理的重要子类,都包含了大量的子类。
    Error是程序无法处理的错误,表示较为严重的问题。一般和编译人员无关,而是表示代码运行时的JVM出现的问题。这些异常发生时,虚拟机一般会选择线程终止。
    Exception是程序本身可以处理的异常。它有一个重要的子类RuntimeException,通常由Java虚拟机抛出。常见的有NullPointException(空指针异常,访问的变量没有引用任何对象),ArithmeticException(算术运算异常,分母为0时),和ArrayIndexOutOfBoundsException (下标越界异常)。
    异常处理总结
    try块:用于捕获异常,其后可接catch块,若没有catch块,则必须跟finally块。
    catch块:用于处理catch块捕获到的异常
    finally块:无论是否捕获到异常,finally的内容总会被执行。
    以下几种情况,finally块不会被执行
    finally块语句发生异常
    finally之前使用System.exit()退出
    程序所在的线程死亡
    关闭cpu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值