郑文锋(day02完成)

1.6: String, StringBuffer ,StringBuiler三者的区别;

①: String对象是不可变的,也可以理解为常量,使用线程是安全的,但是大量字符串操作时候需要的时间明显增多,且 更改创建的对象数量比较庞大;
②: AbstractStringBuiler是StringBuffre和StringBuiler的父类,定义了一些字符串的基本操作;
: StringBuffer对方法加了同步锁,所以线程是安全的,同时处理数据的速度比String快很多,相对StringBuiler慢一点;
: StringBuiler并没有加同不锁,所以线程是不安全的,但是处理数据的速度是效率最高的;

实用性→

String: 适用于少量字符串操作的情况下使用;

StringBuffer: 适用于使用同步锁操作大量字符串数据的情况下使用;

StringBuiler: 适用于非线程安全的操作大量字符串数据的情况下使用;

1.7: 接口和抽象类的区别是什么;

①.实现方式不一样:抽象类的子类使用extends来继承,接口必须适用implements来实现接口;
②.抽象类中可以使用构造方法,接口不能使用构造方法;
③.一个类只能继承一个抽象类(父类),一个类却可以实现多个接口;
④.接口中只能使用抽象方法一种,抽象类中可以使用普通方法和抽象方法两种;

实用性→

所有子类都具有的行为放到抽象类中,部分子类具有的行为放到接口中;

6.6: Java的继承是单继承还是多继承;

①: Java的继承是单继承模式,一个子类只能继承一个符类;
②: Java支持多层继承, 间接继承多个类的内容;

注→

对于java类来说只能有一个父类,对于接口来说可以同时继承多个接口

6.5: static关键字有什么作用;

static是修饰符,可以修饰 “内部类” “变量” “方法” “代码块” ;

①: static修饰的内部类是静态内部类 ;
②: static修饰的变量叫”静态变量”可以共享变量的内容去给其他方法或者对象同步使用 ;
③: static修饰的方法叫”静态方法”,具有唯一性,属于当前类,不属于某个对象,不能重写与使用”this”与”super”关键字;
④: static修饰的代码块叫”静态代码块”,静态代码块会最先执行, 且只执行一次, 通常用于初始化数据 ;
⑤: “静态方法”与”静态变量”都可以使用”类名.方法名(变量名)”调用,建议使用该语法调用来使用 ;

6.7: final在Java中的作用, 有哪些用法;

①: 被final修饰的方法不可以被重写, 与static修饰的方法一样不能被重写 ;
②: 被final修饰的类不可以被继承 ;
③: 被final修饰的变量不可以更改, 只可赋值一次, 在编译阶段会存入常量池中 ;

扩展→

final也是最终的意思,可以用于修饰类,方法,变量。 final修饰的类不能被继承。 final修饰的方法不能被重写。 final修饰的变量是一个常量。只能被赋值一次。 内部类只能访问被final修饰的局部变量。因为不能改变的特性,通常final去修饰的语法通常以全大写字母命名并以”_”号来分割 ;