Java基础

  1. Java和C++的区别?
    a. Java没有指针。c++可以通过指针直接操作内存,但这个动作是危险的,指针引起的操作曾失误可能导致系统崩溃。因此Java更安全。
    b. Java不支持多重继承,但允许一个类实现多个接口。
    c. Java是完全面向对象的语言,除了基本数据类型之外,其余类型的数据都是对象型数据
    d. Java自动进行内存垃圾回收
    e. Java不支持操作符重载
  2. String,StringBuffer和StringBuilder,区别?
    String是基础类,而且被申明为final class,除了hash这个属性外,其他属性都申明为final,因此字符串拼接的时候会产生很多无用的中间对象,频繁使用字符串拼接会对性能有所影响。
    StringBuffer是为了解决String字符串拼接产生无用的中间对象的问题,使用append或add方法可以将字符串添加到末尾或者指定位置。所有修改数据的方法都加上了synchronized,因此是线程安全的,但会有一定的代价。
    StringBuilder,很对情况下字符串拼接操作不需要是线程安全的,StringBuilder取消了synchronized,提升效率。

你可能感兴趣的:(Java基础)