Java API(String类和StringBuffer类、System类和Runtime类)

一、JavaAPI是什么?
API(Application Programming Interface)指的是应用程序编程接口。
假设要给机器人编写一套程序控制跑步踢球等,通常很难编写。但是厂商会给提供他们已经写好的一些用于控制机器人的类,这些类就是机器人厂家的机器人API
我们这篇文章要写的API是jdk中提供各种功能的java类

二、String类
String类和StringBuffer类都位于java.lang 包中,因此不需要手动导入导入就可以使用。
String初始化方式:
String str="abc";
这是目前水平最常使用的
②使用String类的构造方法初始化字符串

String()//创建一个内容为空的字符串
String(char[] value)//根据指定的字符数组创建对象
String(String value)//根据指定的字符串内容创建对象

//例如
String str1=new String();
String str2=new String("abc");
char [] shuzu=new char[]{"A","B","C"};
String str3=new String(shuzu);
System.out.println("a"+str1+"b");//结果ab
System.out.println(str2);//结果abc
System.out.println(str3);//结果ABC

String 类常见操作
字符串基本操作

length()//获取字符串长度,即字符个数;
charAt(x)//获取指定位置字符  x取值为0~length-1;
indexOf(x)//获取某字符第一次出现位置 x代表任意字符
lastIndexOf(x)//获取某字符最后一次出现位置 x代表任意字符

字符串转换操作

toCharArray()//字符串转换为数组
valueOf(x)//将int类型转换为String类型 x为需要转换的int值
toUpperCase()//将小写转换为大写

字符串的替换和去除空格操作

replace("x","y")//将x换成y
trim()//去除字符串两端空格

字符串的判断操作

startsWith("xxx")//判断是否是以xxx开头
endsWith("xxx")//判断是不是以xxx结尾
contains("xxx")//判断是否包含xxx
isEmpty()//判断字符串是否为空
equals(xxx)//判断和xxx字符串是否相等
//equals比较两个字符串中字符是否相等,==比较两个字符串地址是否相等

字符串的截取和分割

subString(x)//从x+1位截取到末尾
subString(x,y)//从x+1截取到y+1
split("x")//将字符串转换为字符串数组,x为截取标志

三、StringBuffer类
由于字符串是常量,所以不能更改长度和内容,如果想修改,只能创建新的字符串。
于是JDK提供了StringBuffer类(又称字符缓冲区),他的长度和内容是可以改变的,类似是一个字符容器,在其中添加或者删除字符时,不会产生新的StringBuffer对象。

append("XXX")//在字符缓冲区末尾添加xxx
insert(x,"yy")//在x位置,插入yy
delete(x,y)//在x~y间删除,x y为字符索引位置
deleteCharAt(x)//删除x位置的字符 ,x为字符索引位置
delete(0,xx.length())//删除整个xx缓冲区,xx为StringBuffer对像
setCharAt(x,'y')//修改x位置字符为y
replace(x,y,"2333")//替换x到y间字符串为233,  x ,y为字符位置索引,索引长度必须和替换长度一样
reverse()//将字符串翻转  例如 123 翻转后321

String类覆盖了equals方法 ,StringBuffer没有覆盖该方法
String类对象可以用+连接 ,StringBuffer不可以。

四、System类
System类定义定义了一些与系统相关的属性和方法,他所提供的属性和方法都是静态的,因此可以直接使用System类调用即可。
1、getProperties()
用于获取当前系统的全部属性,该方法会返回一个Properties对象,其中封装了系统的所有属性,这些属性都是以键值对的形式存在的

import java.util.*;
public class Example09 {
    public static void main(String[] args) {
        // 获取当前系统属性
        Properties properties = System.getProperties();
        // 获得所有系统属性的key,返回Enumeration对象
        Enumeration propertyNames = properties.propertyNames();
        while (propertyNames.hasMoreElements()) {
            //获取系统属性的键key
            String key = (String) propertyNames.nextElement();
            // 获得当前键key对应的值value
            String value = System.getProperty(key);
            System.out.println(key + "--->" + value);
        }
    }
}
//来源自传智播客

这个代码可以获取当前的系统属性的功能。首先通过System的Properties方法获取封装了系统属性的Properties集合,然后对该集合进行迭代,将所有系统属性的键和对应的值打印出来。集合将在下一章中进行详解,这里大家只需关心通过System.getPeoperties方法获取系统属性即可。
2、currentTimeMillis()
该方法返回一个Long类型的值,表示的是当前时间与1970年1月1日0点0分0秒之间的时间差,单位是毫秒,习惯性地被称作时间戳。
3、arraycopy( x,xStart,y,yStart,length )
这是将一个数组中的元素快速拷贝到另一个数组。
其中参数如下
x 源数组
y 目标数组
xStart 源数组中拷贝元素的其实位置
yStart 拷贝到目标数组的起始位置
length 表示拷贝元素的个数
必须注意的是目标数组需要有足够的空间
4、gc()启动垃圾回收器,进行垃圾回收 参数通常为0
5、exit()退出java虚拟机 参数通常为0
五、Runtime类
Runtime类表示虚拟机运行时的状态。用于封装java虚拟机进程,因此通常使用该类的实例对象来过去当前虚拟机的相关信息。
每次启动java虚拟机都对应一个Runtime实例,并且只有一个。因此该类采用单例模式进行设计,对象不可以直接实例化,只能通过以下

Runtime run=Runtime.getRuntime();

availableProcessors()获取当前虚拟机处理器个数
freeMemory()空闲内存数
maxMemory()可用最大内存数

Runtime类中提供了一个exec()方法,该方法用于执行一个dos命令,从而实现在命令行窗口中输入dos命令同样的效果。

你可能感兴趣的:(java基础)