1.API
1.1 API 概述
API(Application Programming Interface):应用程序编程接口
例:编写一个机器人程序去控制机器人踢足球,程序需要向机器人发出向前跑,向后跑,射门,抢球等各种指令。机器人厂商一定对提供一些用于控制机器人的接口类,这些类中定义好了操作机器人各种动作的方法。其实,这些接口类就是机器人厂商提供给应用程序的接口,大家把这一类称为API
Java API : 指的是JDK中提供的各种功能的java类
1.2 帮助文档
CSDN上面有上传了同文档不能重复上传,如有需要可私信
2.String
2.1 String 概述
String 类在java.lang包下,所以使用的时候不需要导包
字符串特点:
* 字符串不可变,他们的值在创建后不能被更改
* 虽然String的值是不可变的,但是他们可以被共享
* 字符串效果上相当于字符数组(char[ ]).但是底层原理是字节数组(byte[ ])
String 具体概述: public final class String extends Object implements Serializable, Comparable, CharSequence String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。 字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。例如: String str = "abc"; 等效于: char data[] = {'a', 'b', 'c'}; String str = new String(data); 下面给出了一些如何使用字符串的更多示例: System.out.println("abc"); String cde = "cde"; System.out.println("abc" + cde); String c = "abc".substring(2,3); String d = cde.substring(1, 2); String 类包括的方法可用于检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、创建字符串副本并将所有字符全部转换为大写或小写。大小写映射基于 Character 类指定的 Unicode 标准版。 Java 语言提供对字符串串联符号("+")以及将其他对象转换为字符串的特殊支持。字符串串联是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。字符串转换是通过 toString 方法实现的,该方法由 Object 类定义,并可被 Java 中的所有类继承。有关字符串串联和转换的更多信息,请参阅 Gosling、Joy 和 Steele 合著的 The Java Language Specification。 除非另行说明,否则将 null 参数传递给此类中的构造方法或方法将抛出 NullPointerException。 String 表示一个 UTF-16 格式的字符串,其中的增补字符 由代理项对 表示(有关详细信息,请参阅 Character 类中的 Unicode 字符表示形式)。索引值是指 char 代码单元,因此增补字符在 String 中占用两个位置。 String 类提供处理 Unicode 代码点(即字符)和 Unicode 代码单元(即 char 值)的方法。
2.2 String构造方法
String 方法名: public String() 初始化一个新创建的 String 对象,使其表示一个空字符序列。注意,由于 String 是不可变的,所以无需使用此构造方法。
方法名 说明 public String(char[] chs) 根据字符数组的内容,来创建字符串对象 public String(byte[] bys) 根据字节数组的内容,来创建字符串对象 String s=“abc”; 直接赋值的方式创建字符串对象,内容就是abc
代码示例:
public class StringDemo01 { public static void main(String[] args) { //public String():创建一个空白字符串对象,不含有任何内容 String s1 = new String(); System.out.println("s1:"+s1); //public String(char[] chs) 根据字符数组的内容,来创建字符串对象 char[] chs = {'a','b','c'}; String s2 = new String(chs); System.out.println("s2:"+s2); // public String(byte[] bys) 根据字节数组的内容,来创建字符串对象 byte[] bys = {97,98,99}; //对应转化ASCII码 String s3 = new String(bys); System.out.println("s3:"+s3); //String s=“abc“直接赋值的方式创建字符串对象,内容就是abc String s4 = "abc"; System.out.println("s4:"+s4); } }
控制台输出:
s1: s2:abc s3:abc s4:abc
2.3 String对象的特点
(1)通过new创建的字符串,每一次new都会申请一个内存空间,虽然内容相同,但是地址不同
char[ ] chs = {'a','b','c'}; String s1 = new String(chs); String s2 = new String(chs);
上面的代码中,JVM会首先创建一个字符数组,然后每一次new的时候都会有一个新的地址,只不过s1和s2参考的字符串内容是相同的
(2)以” “方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM都只会建立一个String对象,并在字符串池中维护
String s3 = “abc”; String s4 = "abc";
在上面的代码中,针对第一行代码,JVM会建立一个String对象房在字符串池中,并给s3参考;
第二行则让s4直接参考字符串池中的String对象,也就是说他们本质上是同一个对象
2.4 字符串的比较
使用== 作比较
* 基本类型:比较的是数据值是否相同
* 引用类型: 比较的是地址值是否相同
字符串是对象,他比较内容是否相同,是通过一个方法来实现,这个方法叫equals()
* public Boolean equals(Object anObject ): 将此字符串与指定对象进行比较,由于我们比较的是字符串对象,所以参数直接传递一个字符串