内部类和StringBuilder

一、内部类

(一)概述

1.定义在类的内部的类和方法。成员变量同样作为类的成员

2.根据定义的位置不同,分为

(1)成员内部类

(2)局部内部类

3.成员内部类

(1)普通成员内部类

(2)私有成员内部类

(3)静态成员内部类

4.根据表示方式不同

(1)有名字的内部类

(2)匿名内部类

(二)普通成员内部类

1.定义在类成员位置的类

2.格式:

class 外部类类名{

外部类成员;

class 内部类类名{

内部类成员;

}

}

  (三)私有成员内部类

1.在普通成员内部类的声明上加上private

2.格式

class 外部类类名 { 外部类成员; private class 内部类类名 { 内部类成员; } }

(四)静态成员内部类

1.格式

class 外部类类名 { 外部类成员; static class 内部类类名 { 内部类成员; } }

(五)局部内部类

定义在方法中的类

(六)匿名内部类

1.没有名字的内部类

2.使用场景:

(1)实现抽象类

(2)实现接口

3.格式

new 抽象类类名或者接口名() { 要实现的抽象方法; };

4.内部类总结

(1)有名字的内部类

成员内部类:外部类类名$内部类类名.class

局部内部类:方法所在类类名$1内部类类名.class,其中1是书写顺序,按照升序排列1,2

(2)匿名内部类:所在类类名$1.class,其中1是书写顺序,按照升序排列1,2

二、StringBuilder

(一)概述

1.StringBuilder是一个可变字符序列。因为在类中提供了修改字符串的成员方法,常用方法就是

append和insert

2.StringBuilder底层维护了一个字符数组,数组是私有的,外界无法访问,因此StringBuilder或者

StringBuffer封装了对底层操作的共有方法

3.StringBuilder和String区别

(1)String是不可变字符序列,没有提供任何修改本身的方法,StringBuilder是可变字符序列,提

供了修改自身的方法

(2)String本身长度也不可变,StringBuilder长度可变,通常我们将StringBuilder当作一个长度可

变的容器,用于存储字符

(二)构造方法

1.StringBuilder():创建一个字符串生成器,初始容量为16

2.StringBuilder(int capacity):创建一个字符串生成器,初始容量为参数决定

3.StringBuilder(String str):创建一个字符串生成器,初始化参数字符串,初始容量为16加上字

符串的长度

4.获取容积的方法

(1)length():返回字符串缓冲区中字符的个数

(2)capacity():返回字符串生成器的容量

(三)添加功能方法

1.append(任意类型)

(1)作用:将任意数据类型的参数追加到可变字符序列之后

(2)底层操作:将当前字符个数和当前数组容积进行比较,如果溢出,就做数组拷贝,将原数组

的内容添加到新的数组中,其中新数组的容积为【<<1+2】,所以数组自动增加实际上是数组的拷

2.insert(int index,任意整数):可以将任意类型插入到指定位置

(四)删除功能方法

1.delete(int start,int end):删除字符串缓冲区上一段字符串,不包含结束索引

2.deleteCharAt(int index):删除字符串缓冲区上指定索引的字符

(五)替换和反转

1.replace(int start,int end,String str):使用指定字符串,替换原有的字符序列中的一部分内

2.reverse():反转字符串缓冲区

(六)StringBuilder和StringBuffer区别

1.共同点:都是可变字符序列,都是字符串生成器,都是字符串缓冲区

2.不同点

(1)线程安全性不同

StringBuilder:线程不安全,多线程环境下无法保证数据安全

StringBuffer:线程安全,多线程环境下依然可以保证数据安全

(2)效率不同

StringBuilder:效率高

StringBuffer:效率低

(3)版本不同

StringBuilder:出现在JDK5.0

StringBuffer:出现在JDK1.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值