#千峰#days13StringBuffer、集合、迭代器

一、StringBuffer(重要)
1、定义:
。线程安全的可变字符序列,一个类似于Sring的字符缓冲区,我们
可以将StringBuffer看做是一个高级的String
。StringBuffer和String的区别
。String是一个不可变的字符序列
。StringBuffer是一个可变的字符序列
2、构造方法:
。public StringBuffer();无参构造方法 默认容量是16
。public StringBuffer(int capacity);指定容量的字符串缓冲区对象
。public StringBuffer(String str);指定字符串内容的字符串缓冲区
对象
。扩容公式: 原容量<<1+2
3、常用方法
①容量和长度
。public int capacity();返回当前容量,
capacity:英 /kəˈpæsəti/:n. 能力;容量;
。public int length(); 返回长度(字符数) 实际值
演示

publci sttic void main(String[] args){
    StringBuffer  buffer = new StringBuffer();
    //获取容量
    int capacity = buffer.capacity();
    //获取内容的长度
    int length = buffer.length();
    
    System.out.println(capacity);
     System.out.println(length );
}

②添加:
。public StringBuffer append(String str)
。可以把任意类型数据添加到字符串缓冲区里面,
并返回字符串缓冲区本身
。public StringBuffer insert(int offset ,String str)
。在指定位置把任意类型的数据插入到做符串缓冲
区里面,并返回字符串缓冲区本身
演示:

public sttic void main(String[] args){
    StringBuffer buffer = new StringBuffer("abcd");
    
    buffer.append("abbc");
    System.out.println(buffer.toString());//结果:abcdabbc
    
    buffer.insert(2,"woaini ");//插入到指定位置
    System.out.println(buffer.toString());
    
}

③删除:
。public StringBuffer deleteCharAt(int index);
。删除指定位置的字符,并返回本身
。public StringBuffer delete(int start, int end)
。删除从指定位置开始到指定位置结束内容,
并反回本身
演示:

public static void main(String[] args){
    StringBuffer buffer = new StringBuffer("abcd");
    
    buffer.deleteCharAt(1);//删除角标位1的值
    System.out.println(buffer.toString());//结果:acd
    
    buffer.delete(1,2);
      System.out.println(buffer.toString());//结果:ad
}

④替换和反转:
。public StringBuffer replace(int satrt, int end,String str)
。从start开始到end用str替换
。public StringBuffer reverse()
。字符串反转
演示:

public static void main(String[] args){
    StringBuffer buffer = new StringBuffer("abcd");
    //替换一部分内容
    buffer.replace(1,3,"爱你");
    System.out.println(buffer.toString());//结果:a爱你d
    
    //反转
    buffer.reverse();
    System.out.println(buffer.toString());//结果:d你爱a
    
}

⑤截取:
。public String substring( int satrt)
。从指定位置截取到末尾
。public String substring(int start , int end)
。截取从指定位置到结束位置,包括开始位置,不
包括结束位置
。注意:返回值不再是StringBuffer本身,而是一
个String
演示:

public static void main(String[] args){
    StringBuffer buffer = new StringBuffer("abcdefg");
    
    //截取一部分,从某个角标开始,到结尾
    String str1 = buffer.substring(2);
    System.out.println(str1);//结果:cdefg
    
    //截取一段,从某个角标到某个角标(不包尾)
    String str2 = buffer.substring(2,5);
        System.out.println(str2);//结果:cde
}

⑥StringBuffer 和String的相互转换
。String-->StringBuffer
。通过构造方法
。通过StringBuffer的append方法
。StringBuffer-->String
。通过toString()方法
。通过substring(0,length)
4、演示:
1、数组转成字符串
需求: 使用StringBuffer将数组中的数据按照指定格式拼接成一个字符串
输入结果: [ 1, 2, 3]

public static void main(String[] args) {
        
  int[] arr = {6,5,8,7};
        
  StringBuffer buffer = new StringBuffer();
  buffer.append("[");
  for (int i = 0; i < arr.length; i++) {
    if (i==arr.length-1) {
      buffer.append(arr[i]).append("]");
    }else{
      buffer.append(arr[i]).append(",");
    }
  }
        
  System.out.println(buffer.toString());//结果: [6,5,8,7]
}

2、字符串反转
需求: 从键盘录入一个字符串,对字符串进行反转

public static void main(String[] args) {
        
  Scanner scanner =new Scanner(System.in);
  String str = scanner.nextLine();
        
  StringBuffer buffer = new StringBuffer(str);
  buffer.reverse();
        
  System.out.println(buffer.toString());
        
  scanner.close();
}

二、StringBuilder(重要)
1、定义:
。StringBuilder功能等同于Stringbuffer,线程不安全,效率高,
单线程下建议使用StringBuilder
2、StringBuffer和StringBuilder的区别
。StringBuffer是jdk1.0版本开始的,是线程安全的,效率低
。StringBuilder是jdk1.5版本开始的,实线程不安全的,效率高
三、基本数据类型的包装类(重要)
1、基本数据类型自身没有方法,这样就限制了我们的使用,将基本数
据类型封装成对象的号好处在于可以再对象中定义更多的功能方法操作
该数据
2、对应关系表:

基本数据类型 引用数据类型
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
3、常用方法:
。用于基本数据类型和字符串之间的转换

public static void main(String[] args){
    String str = "100";
    int num = Integer.parseInt(str);
    System.out.println(num*5);//结果500
}

4、自动装箱和拆箱
。自动装箱:把基本数据类型转换为包装类型
。自动拆箱:把包装类型转换成基本数据类型

public static void main(String[] args){
    Integer ii =100;//自动装箱
    
    int i = ii;//自动拆箱
}

四、Math
1、定义:
Math类包含用于执行基本数学运算的方法,如初等指数,对数
,平方根和三角函数
2、常用方法:
。public static int abs(int a);返回一个数的绝对值
。public static double ceil(double a );返回大于等于参数的最
小整数
。public static double floor(double a);返回小于等于参数的最
大整数
。public static int max(int a , int b);获取最大值
。public static double pow(double a,double b);计算某个数的
几次冥
public static double random() : 获取一个大于等于0且小于1的随机数
public static int round(float a) : 对象小数四舍五入
public static double sqrt(double a) : 计算平方根
五、Random:随机 (要记)
1、定义:
。此类用于产生伪随机数
。之所以说是伪随机数,是因为产生的数是使用一个算法算出的
。如果用相同的种子创建两个Random实例,则对每个实例进行
相同的方法调用序列,它们将生成并返回相同的数字序列
2、构造方法:
。public Random()
。public Random(long seed)
3、常用的方法
。public int nextInt()
。public int nextInt(int n)(重点掌握):产生一个0到参数
(不包括)之内的随机整数

public static void main(String[] args){
    
    Random random = new Random();
    
    int num = random.nextInt(100);
    System.out.println(num);
}

六、System:系统、体制
1、常用的方法
。public static void gc();暗示垃圾回收器运行
。public static void exit():虚拟机退出
。public static long currentTimeMillis();获取当前时间的毫秒

。public static void arraycopy(Object src ,int srcPos ,
Object dest , int destPos , int length);复制数组
2、演示:

public static void main(String[] args){
    new Demo();//创建一个匿名对象,当程序执行完这句话之后,这个对象就没用了
    System.gc();//暗示调用垃圾回收器,能不能回收,看脸
    
    long  time = System.currentTimeMillis();//获取当前时间的毫秒值
    System.out.println(time);
    
    System.out.println("..............");
    System.exit(0);//退出jvm
    System.out.println(".............");//将不会执行
}

七、Date:日期(重要)
1、定义:
。Date类表示特定的瞬间,精确到毫秒
2、构造方法
。public Date()
。public Date(long date)
3、常用方法
。public long getTime()
。 public void setTime()
4、演示

public static void main(String[] args){
    Date date = new Date();
    
    System.out.println(date.toString());//表示瞬间时间的字符串,
    
    System.out.println(date.getTime());//获取瞬间书剑的毫秒值
    
    date.setTime(1509379011190L);//设置时间点
    
    
}

八、SimpleDateFormat:日期格式
Simple 简单、简易的、单纯
Format 格式、格式化、格式化磁盘、磁盘格式化命令
1、定义:
。时间格式化工具,它以与语言无关的方式格式化并解析日期或
时间
2、构造方法
。public SimpleDateFormat()
。public SmpleDateFormat(String pattern)使用一个字符串时间
格式
3、常用方法
。public final String format(Date date)
。public Date parse(String source)
九、Calendar(非常重要):英 /ˈkælɪndə(r)/n. 日历;[天] 历法;日程表
1、定义:
。Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR、
MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换
提供了一些方法,并为操作日历字段(例如获得下星期的日期)
提供了一些方法
。Calendar是一个万年历
2、成员方法
。public static Calendar getlnstance() 获取万年历对象
。public int get(int field) 获取时间的某个值
。public void add(int field, int amount) 在当前时间的基础上
加上一段时间
。public final void set(int year , int month , int date)设置时
间点

你可能感兴趣的:(#千峰#days13StringBuffer、集合、迭代器)