#千峰#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)设置时
间点

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容

  • 50道经典Java编程练习题,将数学思维运用到编程中来。抱歉哈找不到文章的原贴了,有冒犯的麻烦知会声哈~ 1.指数...
    OSET我要编程阅读 6,950评论 0 9
  • 四、集合框架 1:String类:字符串(重点) (1)多个字符组成的一个序列,叫字符串。生活中很多数据的描述都采...
    佘大将军阅读 738评论 0 2
  • java中String的常用方法 1、length()字符串的长度 例:char chars[]={'a','b'...
    赤赤有名阅读 2,038评论 0 10
  • 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?答:可以有多个类,但只能有一个publ...
    岳小川阅读 920评论 0 2
  • 起床7.00 就寝11.30 最开心的事 画画并p图发了朋友圈 读书,听文章 要改进的地方 控制情绪,今天还是爆发...
    Y媛姑娘阅读 206评论 0 0