Java基础知识

1、访问修饰符

  • private:同一类内可见;
  • public:所有类可见
  • protected:同一包内所有类和子类可见
  • default:同一包内可见

2、String为什么是不可变的,String、StringBuffer和StringBuilder的区别

  • 满足不可变的条件,成员变量私有,不可被继承,成员变量private final char value[]由final修饰,最重要的是用private修饰,无法被修改(反射除外);String本身也由final修饰

区别:

  • String是不可变的,每次String类型的改变都会新建一个对象,并将指针指向新对象,无用对象增多,导致GC工作,速度变慢,不适合经常改变的场景;
  • StringBuffer和StringBuilder是字符串变量,StringBuffer线程安全,StringBuilder线程不安全;

3、“==”与equals,String的equals

  • “==”对于基本类型,比较的是值;对于引用类型,比较的是内存地址
  • equals在Object类中等同于“==”,重写一般是比较成员变量值是否相等
  • String的equals比较的是两个字符串的内容

4、Object类常见方法

  • getClass
  • hashCode
  • equals
  • clone
  • toString
  • notify
  • notifyAll
  • wait(long timeout)
  • wait(long timeout, int nanos)
  • wait
  • finalize

5、Java中的异常处理
6、获取用键盘输入常用的两种方法
7、接口和抽象类的区别

  • 接口:成员变量只能是public static final类型的,不能有静态代码块或静态方法,是对类行为的抽象,若有改动,实现此接口的类都要改动
  • 抽象类:是对类整体,抽象类的改动不影响子类

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