四)Java API
API(Application Programming Interface)指的是应用程序编程接口。
在Java中定义了String和StringBuffer两个类来封装字符串,并提供了一系列操作字符串的方法,它们都位于java.lang包中,因此不需要导包就可以直接使用。
interface接口,接口指的是 interface 结构,接口中只对方法做声明,不做实现。具体功能实现由最终实现接口的类提供。Java 是强类型的语言, interface 作为一种类型,可以用于声明变量,以接口类型声明的变量,我们只关心它实现了接口声明的方法,实际的具体运用是哪个类的对象并不是我们编写这个interface所需要考虑的东西。编码完成之后,通过传入接口的不同实现类的对象,从而在不改变调用方代码的情况向下改变程序的功能,实现多态。
api接口,接口是应用程序和模块之间相互沟通的方式。
从编程语言的角度上的具体的一种语法规则(如 interface),还是从软件层面上讲的比较抽象的非技术人员说的接口的概念
String类
String str1 = "张三"; //字符串常量直接初始化一个String对象
String str2 = new String(); //创建一个空字符串
String str3 = new String("张三"); //指定字符串内容跟创建对象
char [] charArray - new char[]{'a','b','c'}; //指定字符数组创建对象
String str4 = new String(charArray);
String常用方法:
int indexOf(int ch) | 返回指定字符在此字符串中第一次出现处的索引 |
int lastIndexOf(int ch) | 返回指定字符在此字符串中最后一次出现处的索引 |
int indexOf(String str) | 返回指定子字符串在此字符串中第一次出现处的素引 |
int lastIndexOf(String str) | 返回指定子字符串在此字符串中最后一次出现处的素引 |
char charAt(int index) | 返回字符串中index位置上的字符 |
boolean endsWith(String suffix) | 判断此字符串是否以指定的字符串结尾 |
int length() | 返回此字符串的长度 |
boolean equals(Object anObject) | 将此字符串与指定的字符串比较 |
boolean isEmpty() | 当且仅当字符串长度为0时返回 true |
boolean startsWith(String prefix) | 判断此字符串是否以指定的字符串开始 |
boolean contains(CharSequence cs) | 判断此字符串中是否包含指定的字符序列 |
String toLowerCase() | 使用默认语言环境的规则将String中的所有字符都转换为小写 |
string toUpperCase() | 使用默认语言环境的规则将String中的所有字符都转换为大写 |
static String valueOf(int i) | 返回int参数的字符串表示形式 |
char [] toCharArray(0 | 将此字符串转换为一个字符数组 |
String replace(CharSequence olestr,CharSequence newstr) | 返回一个新的字符串,它是通过用newsr省换此字符串中出现的所有oldstr得到的 |
String[] split(String regex) | 根据参数regex将原来的字符串分伪若干个子字符串 |
String substring(in beginIndex) | 返回一个新字符串,它包含从指定的beginlndex处开始,直到此字符串末尾的所有字符 |
String substring(int beginIdex,int endIndex) | 返回一个新字符串,它包含从指定的beginindex 处开始,直到素引endlndex-1处的所有字符 |
String trim() | 返回一个新字符串,它去除了原字符串首尾的空格 |
StringBuffer类
由于字符串是常量,因此一旦创建,其内容和长度是不可改变的。如果需要对一个字符串进行修改,则只能创建新的字符串。
StringBuffer类(也称字符串缓冲区)和string类最大的区别在于它的内容和长度都是可以改变的。StringBuffer类似一个字符容器,当在其中添加或删除字符时,并不会产生新的StringBuffer对象。
StringBuffer append(char c) | 添加参数到StringBuffer对象中 |
StringBuffer inser(int offset,String str) | 将字符串中的offset位置插入字符串 |
StringBuffer deleteCharAt(int index) | 移除此序列指定位置的字符 |
StringBuffer delete(int start,int end) | 删除StringBuffer对象中指定范围的字符或字符串序列 |
StringBuffer replace(int start,int end,String s) | 在StringBuffer对象中替换指定的字符或字符串序列 |
void setCharAt(int index,char ch) | 修改指定位置index处的字符序列 |
String toString() | 返回StringBuffer缓冲区中的字符串 |
StringBuffer reverse() | 将此字符序列用其反转形式取代 |
两者区别:
String类表示的字符串是常量,一旦创建后,内容和长度都是无法改变的。而StringBuffer表示字符容器,其内容和长度可以随时修改。
在操作字符串时,如果该字符串仅用于表示数据类型,则使用String类即可,但是如果需要对字符串中的字符进行增删操作,则使用StringBuffer类。
String类覆盖(重写) Object 类的equals()方法,而StringBuffer类没有覆盖 Object 类的equals()方法。
String类对象可以用操作符“+”进行连接,而StringBuffer类对象之间不能。
System类
System类定义了一些与系统相关的属性和方法,它所提供的属性和方法都是静态的,因此,想要引用这些属性和方法,直接使用System类调用即可。
static void exit(int status) | 该方法用于终止当前正在运行的Java虚拟机,其中参数status表示状态码,若状态码非0,则表示异常终止 |
static void gc() | 运行垃圾回收器,并对垃圾进行回收 |
static void currentTimeMillis() | 返回以毫秒为单位的当前时间 |
static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length) | 将一个数组的元素快速拷贝到另一个数组 |
static Properties getProperties() | 取得当前的系统属性 |
static String getProperty(String key) | 获取指定键描述的系统属性 |
Runtime类
Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程。每次使用java命令启动虚拟机都对应一个Runtime实例,并且只有一个实例,因此该类采用单例模式进行设计,对象不可以直接实例化。
获取runtime实例:Runtime run = Runtme.getRuntime();
Math类
Math类是数学操作类,提供了一系列用于数学运算的静态方法。Math类中有两个静态常量PI和E,分别代表数学常量Π和e。
Random类
boolean nextBoolean() | 随机生成boolean类型的随机数 |
double nextDouble() | 随机生成double 类型的随机数 |
float nextFloat() | 随机生成float类型的随机数 |
int nextInt() | 随机生成int类型的随机数 |
int nextInt(int n) | 随机生成0-n之间int类型的随机数 |
long nextLong() | 随机生成long类型的随机数 |
引用数据类型
在Java中,很多类的方法都需要接收引用类型的对象,此时就无法将一个基本数据类型的值传入,JDK中提供了一系列的包装类,通过这些包装类可以将基本数据类型的值包装为引用数据类型的对象。
基本数据类型 | 包装类 |
byte | Byte |
char | Character |
int | Integer |
short | Short |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
包装类和基本数据类型在进行转换时,引入了装箱和拆箱的概念,其中装箱是指将基本数据类型的值转为引用数据类型,反之,拆箱是指将引用数据类型的对象转为基本数据类型。
包装类都有parseXxx(strings)的静态方法,将字符串转换为对应的基本类型的数据。参数s不能为null,而且同样必须是可以解析为相应基本类型的数据,否则虽然编译通过,但运行时会报错。
Integer类
static String toBinaryString(int i) | 以二进制无符号整数形式返回一个整数参数的字符串 |
static String toHexString(int i) | 以十六进制无符号整数形式返回一个整数参数的字符串 |
static String toOctalString(int i) | 以八进制无符号整数形式返回一个整数参数的字符串 |
saitc Integer valueOf(int i) | 返回一个表示指定的int值的Integer实例 |
staitc Integer valueOf(String s) | 返回保存指定的String的值的lnteger对象 |
staitc int parselnt(String s) | 将字符串参数作为有符号的十进制整数进行解析 |
intValue() | 将Integer类型的值以int类型返回 |