JAVA中那些常见类&关键字介绍及区别

本文详细解析了String、StringBuffer、StringBuilder的区别,以及它们与数组的不同之处。进一步对比了接口、内部类、匿名内部类和抽象类的特点,阐述了static关键字的作用及成员变量与局部变量的区别。
摘要由CSDN通过智能技术生成

1.String,StringBuffer,StringBuilder的区别

1:String 不可变的字符序列,而StringBuffer,StringBuilder 都是可变的字符序列
     2:StringBuffer,StringBuilder 的区别:
     3:StringBuffer的线程是安全的,效率低,数据安全
     4:StringBuilder的线程是不安全的,效率高,数据不安全

StringBuffer和数组的区别?

1:StringBuffer 类的内部,维护着一个char数组,通过重载append()方法,添加进来元素都会转换为 char元素存起来,而数组 是一个容器,可以存相同类型的多个元素
2:数组的长度不能变

2.接口,内部类,匿名内部类,抽象类的区别

接口
      接口中只有抽象方法,而没有非抽象方法

特点:
      1:接口不能被实例化,只能通过多态的形式,让子类实例化
      2:接口的子类:
            A:可以是具体类,但是要求实现所有的抽象方法
            B:可以是接口,使用关键字 extends
            C:可以是抽象类,使用关键字 implements


内部类
特点:
      1:内部类可以直接访问外部类的成员,包括私有,
      2:外部类要访问内部类的成员,必须创建对象
局部内部类的访问特点
      在局部内部类的 成员方法内,可以直接访问外部类的成员变量


匿名内部类

      前提:需要存在一个类或者抽象类,或者接口

格式:
      new 类名 或者接口名(){ 重写的方法()};

性质:
      是一个继承了类或者实现了接口的 子类 的匿名对象


抽象类
      被abstract类修饰的类,就是抽象类
抽象类的特点:
      A:抽象类不一定有抽象方法,有抽象方法的类一定是抽象类
      B:抽象类不能实例化,不能创建抽象类的对象, 我们可以通过多态的形式,让抽象类的引用,指向子类对象
      C:抽象类的子类 要么还是抽象类, 要么是 具体类,并实现所有的抽象方法. 抽象类的构造方法,是让子类对象,来通过构造方法初始化父类的成员变量用的。
注意事项:
      1:private 不能和abstract 一起修饰方法或者修饰类
      2:final 不能和abstract 一起修饰方法或者修饰类
      3:static 不能和abstract 一起修饰方法

3.static关键字

static 关键字:
      可以修饰成员变量和成员方法
static关键字特点:
      随着类的加载而加载
      优先于对象存在
      被类的所有对象共享
      可以通过类名调用
static关键字注意事项:
      在静态方法中是没有this关键字的
      静态方法只能(直接)访问静态的成员变量和静态的成员方法

4.成员变量和局部变量区别


在类中的位置不同:
      成员变量 类中方法外
      局部变量 方法内或者方法声明上
在内存中的位置不同:
      成员变量 堆内存
      局部变量 栈内存
生命周期不同:
      成员变量 随着对象的存在而存在,随着对象的消失而消失
      局部变量 随着方法的调用而存在,随着方法的调用完毕而消失
初始化值不同:
      成员变量 有默认的初始化值
      局部变量 没有默认的初始化值,必须先定义,赋值,才能使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值