海老师的技术博客: OCA 考试 准备笔记(三):Core Java APIs

这一章是关于Java中基本的API的应用,需要记忆的知识点比较多,在学习过程中,大家注意记录知识要点。

1. Creating and Manipulating Strings

一般我们有两种方法创建 String

String name = "Fluffy"; // stored in String pool 
String name = new String("Fluffy"); // stored in heap as normal object
  1. Concatenation
    以下几点关于Concatenation:

    1. 如果两个元素都是数字, " + " 代表加法
    2. 如果其中一个为String, " + " 代表Concatenation
    3. 表达式从左往右运算
    System.out.println(1 + 2); 			// 3
    System.out.println("a" + "b"); 		// ab
    System.out.println("a" + "b" + 3); 	// ab3
    System.out.println(1 + 2 + "c"); 	// 3c
    
  2. Immutability
    当String被创建后, 此String的值不可被改变,此被成为String的不可变性(Imutability)。

    String s1 = "1";
    String s2 = s1.concat("2"); 
    s2.concat("3"); 
    System.out.println(s2);  // 1, String 是 Immutability的
    
  3. The String Pool
    String Pool 的目的是实现 String可重复使用,节省内存空间
    没有被存入String pool 的String 会像正常的对象一样 被垃圾回收机制所回收。

    myObject.toString();// 不会被存入 String pool
    String name = new String("Fluffy"); // 不会被存入 String pool
    String name = "Fluffy"; // 被存入 String pool
    
  4. Important String Methods
    这里列出常用的方法,具体细节请参阅源码

    • length() : 返回字符的数量
    • charAt(int index):返回index所在的对应字符
    • indexOf():返回第一个match的index
    • substring()
    int substring(int beginIndex)
    int substring(int beginIndex, int endIndex)  // [beginIndex, endIndex), 包括begin,不包括end。 
    
    String string = "animals"; 
    System.out.println(string.substring(3)); // mals 
    System.out.println(string.substring(string.indexOf('m'))); // mals 
    System.out.println(string.substring(3, 4)); // m 
    System.out.println(string.substring(3, 7)); // mals
    
  5. Method Chaining
    我们可以对同一个String 调用多个方法

    String start = "AniMaL ";
    String trimmed = start.trim(); // "AniMaL"
    String lowercase = trimmed.toLowerCase(); // "animal" 
    String result = lowercase.replace('a', 'A'); // "Animal" 
    System.out.println(result);
    每次调用String的方法都会生成 new String,因为String 的 Immutability。
    

2. Using the StringBuilder Class

  1. Mutability and Chaining
    和String 不同, StringBuilder 每次调用方法会改变自身状态, 返回的Reference指向自己。如下:

    1: StringBuilder sb = new StringBuilder("start");
    2: sb.append("+middle"); // sb = "start+middle" 
    3: StringBuilder same = sb.append("+end"); // "start+middle+end"
    
  2. Creating a StringBuilder

    StringBuilder sb1 = new StringBuilder(); //containing an empty value
    StringBuilder sb2 = new StringBuilder("animal"); // containing a specific value and assign sb2
    StringBuilder sb3 = new StringBuilder(10); // 保留给定大小的空间
    
  3. Important StringBuilder Methods
    这里仅列举一些常用的方法以供参考, 完整版请看源码

    1. charAt(), indexOf(), length(), and substring()
      这4个方法和String Class 里的方法一样,以下是一些例子

      StringBuilder sb = new StringBuilder("animals");
      String sub = sb.substring(sb.indexOf("a"), sb.indexOf("al")); int len = sb.length();
      char ch = sb.charAt(6);
      System.out.println(sub + " " + len + " " + ch);
      // 输出: anim 7 s
      
    2. append()
      这个方法使用频率很高, 要明确 append 是在对当前String直接进行操作,把目标String插入尾部,并返回当前StringBuilder对象。而 String str +="…" 是copy一个新的String 再操作。

      StringBuilder append(String str)
      
    3. insert()
      和append 比较相似, insert 可以把String 插入任意目标位置, 并返回当前StringBuilder对象

      StringBuilder insert(int offset, String str)
      
    4. delete() and deleteCharAt()
      delete方法可以指定范围内的String,并返回当前StringBuilder对象

      StringBuilder delete(int start, int end)
      

      deleteCharAt 主要用于删除指定位置的单个字符,并返回当前StringBuilder对象

      StringBuilder deleteCharAt(int index)
      
    5. reverse()
      reverse 会反转当前String 并返回当前StringBuilder对象, 无需传参。

      StringBuilder reverse()
      
    6. toString()
      把Stringbuilder 对象转化为String 对象。

      String toString()
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值