AutoCloseable
自动关闭接口 当我们访问外部资源时 有时候程序存在异常或者遗忘 导致我们没有关闭外部资源 此接口可以自动关闭外部资源
//首先对访问外部资源的类实例化此接口
class Connect implements AutoCloseable{
public void close(){} //覆写close方法
}
try(Connect connect = new Connect()){ //实例化此类对象即可
}
Cloneable
克隆接口克隆当前对象 实则把当前对象的内存地址复制到另一空间
protect Object clone()throws CloneNotSupportedException此方法属于Object中方法,Cloneable是一个标识声明,只有Object类对象才能克隆。
class Person implements Cloneable{//首先实现此接口
protect Object clone()throws CloneNotSupportedException{
return super.clone(); //覆写clone方法;
}
}
Person A = new Person();
Person B = (Person)A.clone();//调用clone方法向下转型为克隆对象类型
Runtime
java中唯一一个描述JVM进程信息的程序类,可以用这个类打开另一个进程
public static Runtime getRuntime(); 得到当前进程对象
public long maxMemory() 获取JVM可以操作的最大内存数量
public long totalMemory()获取JVM可以操作的常规最大内存数量
public long freeMemory()获取JVM剩余最大内存数量
public void gc() 调用垃圾收集机制
System
提供一些基本系统操作
public static void arraycopy(Object 要复制的数组名,int 下标,Object 粘贴的数组名,int 下标,int 赋值长度) 数组内容复制
public static long currentTimeMillis() 获取当前日期事件数,常用来判断时间复杂度。
public static void gc() 本质上调用了Runtime类中的方法
StringBuffer
java中字符串一般都是String匿名类 ,这样对其中的内容无法更改。StringBuffer类则提供了对字符串内容的添加修改删除等功能。
public StringBuffer () 构造方法生成一个默认大小16字节的StringBuffer类
public StringBuffer(String 字符串) 生存指定字符串的StringBuffer类
public StringBuffer insert(int 下标,数据类型 内容) 指定位置插入指定内容
public StringBuffer delete(int 下标,int 下标) 删除指定位置
public StringBuffer insert(reverse) 字符串反转
···
CharSequence
字符序列标准操作接口 此接口包含 String类 StringBuffer类 StingBuilder类
StringBuilder与StringBuffer类作用基本相似 StringBuffer适合线程 其方法大多是同步的 StringBuilder适合非线程 速度更快。
public char charAt(int 下标) 根据索引获取字符串
public int length 获取序列长度
public default IntStream chars() 进行数据流分析
见了CharSequence就向里面传递一个任意字符串数据
ThreadLocal
线程局部类为线程变量提供局部副本 该线程所用的资源为独立私有的。
private static ThreadLocal <所用资源类型> threadLocal = new ThreadLocal<>();
public void set(T 所用资源对象) 设置局部类资源对象
public void remove() 删除保存对象
public T get() 得到保存对象
class Person(){
private String name;
}
class Save(){
private static ThreadLocal <Peson> threadLocal = new ThreadLocal<>();
public static void setPerson(Person person){
threadLocal.set(person);
}
public static Person getperson(){
return threadLocal.get();
}
}
class Printf{
public static void printf(){
System.out.println(Save.getPerson().getName());
}
}
public static void main (String[] args ) {
new Thread(()->{
Person person = new Person ();
Person.setName("李光安");
Save.setPerson(perspn);
Printf.printf();
}).start();
}