*API:
概述:
应用程序编程接口
Java API:指的就是JDK中提供的各种功能的Java类(这些类将底层的实现封装起来)
java在lang包下不用导包
*接收数据特殊句:
String s = sc.nextLine();
注意:sc.nextLine()是Scanner的成员方法
自动生成快捷键:
Ctrl + Alt + V
*字符串:
String类(字符串类):
java.lang包下的, Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例(也就是说,Java程序中所有的双引号字符串,String类的对象)。
注意:①字符串不变; 它们的值在创建后不能被更改。
② 字符串缓冲区支持可变字符串。
③ 因为String对象是不可变的,它们可以被共享。
④字符串 效果上(输出结果) 相当于字符数组(char[]),但是底层原理是字节数组(byte[]),重点记住
⑤内部有自带toString方法,一般不会输出地址值
String构造方法:
①public String()(常用)
创建一个空白字符串对象,不含有任何内容
②public String(char[] chs)
根据字符数组的内容,来创建字符串对象
③public String(byte[] bys)
根据字节数组的内容,来创建字符串对象
注意:有平台的默认字符集解码,会将byte数组解码为字符,参考ASCII码
④String s = “abc”;(推荐)
直接赋值的方式创建字符串对象,内容就是abc
即两种方式:一种用new创建对象,另一种直接赋值
String对象(注意地址值)的特点:
①通过new创建的字符串对象,每一次new都会申请一个内存空间,虽然内容相同,但是地址值不同
②通过直接赋值方式创建对象,只要字符序列相同(顺序和大小写),无论在程序
代码中出现几次,JVM都只会建立一个String对象,并在 字符串池(常量池) 中维护,常量池中有就直接被引用,可以试想只有一个常量池,放一堆东西被找去配对。
本质上是同一个对象(地址值),其实它们有一个方法来判断是否是同一个对象,后面再说
字符串的比较:
1.使用 == 做比较
基本类型:比较的是数据值是否相同
引用类型:比较的是地址值是否相同(String类比较特殊这里也与引用类型类似)
2.字符串是对象,比较内容是否相同,通过方法 equals()实现:
public boolean equals(Object anObject):
将此字符串与指定对象进行比较。由于我们比较的是字符串对象,所以参数直接传递
一个字符串对象,即括号里写对象名
格式:对象名1.equals(对象名2)
案例:用户登录,遍历字符串,统计字符次数,字符串拼接,反转(倒着遍历)
遍历字符串一个代码:
public char charAt(int index):返回指定索引处的char值,字符串的索引也是从0开始的
获取字符用这个
字符串的长度:
public int length():返回此字符串的长度
格式:字符串对象.length()
StringBuider类:
如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费内存空间,而这种操作
还不可避免。Java提供的StringBuider类可以解决这个问题
Java.lang包下
注意:它是一内容可变的字符序列,即放在常量池的(与String直接赋值类似)
StringBuider构造方法:
①public StringBuider()
创建一个空白可变字符串对象,不会含有任何内容
②public StringBuider(String str)
根据字符串的内容,来创建可变字符串对象
提示:获取长度与String类似,格式:对象名.length(),同时它自身带有toString方法
StringBuider的添加和反转方法:
①public StringBuider append(任意类型)
添加数据,并返回对象本身(可以进行链式编程)
格式:(对象名1 =)对象名1.append(“字符串”)
②public StringBuider reverse()
返回相反的字符序列
注意:这两个方法是返回对象本身的,所以不需要接收数据的操作
StringBuider和String相互转换:
①StringBuider转换为String:
toString方法实现:
public String toString():通过toString()就可以实现把StringBuider转换为String
②String转换为StringBuider
StringBuider第二条构造方法实现:
public StringBuider(String s):通过构造方法就可以实现把String转换为StringBuider
案例:拼接字符串,字符串反转
注意:创建对象并使用方法可以这样写:new StringBuider(s).reverse().toString();
new StringBuider(s)是匿名对象,没有对象名,但也是个对象
其实用的是链式编程的思想