1. JAVA面向对象编程三大特征
- 封装:将一个对象的属性私有化。提供一些可以被外界访问的属性方法,如果属性不想被外界访问,可以不被提供方法给外界访问。
- 继承:使用已存在类的定义作为基础建立新类的技术,新类必须继承父类,可以增加新的功能和数据。
(1) 子类拥有父类对象所有的属性和方法,父类中的私有属性和方法子类无法访问,只是拥有;
(2) 子类可以拥有自己的属性和方法;
(3) 子类可以用自己的方式实现父类的方法。 - 多态:程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,在程序运行期间才确定。
两种方式:1.继承——多个子类对同一方法的重写;2.接口——实现接口并覆盖接口中同一方法。
- 继承:使用已存在类的定义作为基础建立新类的技术,新类必须继承父类,可以增加新的功能和数据。
2. String/StringBuffer/StringBuilder的区别
String | StringBuffer | StringBuilder | |
---|---|---|---|
可变性 | 不可变 | 继承自AbstractStringBuilder类 | 继承自AbstractStringBuilder类 |
线性安全性 | 对象不可变,线性安全 | 加了同步锁或对调用的方法加了同步锁,线程安全 | 非线性安全 |
性能 | 每次改变都会生成一个新的String对象 | 对StringBuffer对象本身进行操作 |