Java常用类库(System、Arrays、定时调度、Base64加密解密)

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 1.System类,2.Arrays数组操作类,3.定时调度,4.Base64加密与解密



1.System类

System类常用方法:

void exit(int status) 终止当前正在运行的Java虚拟机。
long currentTimeMillis() 返回当前时间的毫秒数,通常用于计时或性能分析。
void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 将数组中指定范围的元素复制到另一个数组中。
String getProperty(String key) 获取与指定键对应的系统属性值。
void setProperty(String key, String value) 设置与指定键对应的系统属性值。
void gc() 运行垃圾回收器。
void runFinalization() 强制运行已挂起的对象的终结器。
void load(String filename) 加载包含指定文件名的动态链接库。
void loadLibrary(String libname) 加载具有指定库名称的动态链接库。
void setIn(InputStream in) 重新分配“标准”输入流。
void setOut(PrintStream out) 重新分配“标准”输出流。
package Example1518;
import java.util.Date;
public class javaDemo {
    public static void main(String[] args) {
//        获取当前的事件戳
        Date date = new Date(System.currentTimeMillis());
        System.out.println(date);
        int [] a = new int[]{1,2,3,4,5,6,7};
        int [] b= new int[9];
//        数组复制
        System.arraycopy(a,0,b,0,a.length);
        for (int i=0;i<b.length;i++){
            System.out.print(b[i]);
        }
//        垃圾回收机制
        System.gc();
    }
}

image.gif

image.gif编辑


2.Arrays数组操作类

常用方法:

方法 描述
void sort(T[] arr) 对指定数组进行排序。
int binarySearch(T[] arr, T key) 使用二分查找算法在指定数组中搜索指定元素,并返回索引位置。如果未找到元素,则返回负数。
boolean equals(T[] arr1, T[] arr2) 比较两个数组是否相等,即两个数组中的元素是否相同。
void fill(T[] arr, T value) 将指定值填充到数组的每个元素中。
void copyOf(T[] original, int newLength) 复制指定数组的部分或全部元素到一个新数组中。
List<T> asList(T... arr) 将指定数组转换为列表。
T[] toArray(List<T> list) 将指定列表转换为数组。
int hashCode(T[] arr) 返回指定数组的哈希码值。
String toString(T[] arr) 返回指定数组的字符串表示形式。
void parallelSort(T[] arr) 对指定数组进行并行排序。
int compare(T[] arr1, T[] arr2) 比较两个数组的字典顺序。
void setAll(T[] arr, IntUnaryOperator generator) 使用提供的生成器函数为指定数组的每个元素生成新值。
package Example1519;
import java.util.Arrays;
public class javaDemo {
    public static void main(String[] args) {
        int a[] = new int[]{1,2,4,8,2,3,12,44,3};
        Arrays.sort(a);
//      注意用二分法查找时候需要先对数组进行排序
        System.out.println(Arrays.binarySearch(a,44));
        System.out.println(Arrays.binarySearch(a,99));
        System.out.println(Arrays.binarySearch(a,2));
//        输出a数组内容
        System.out.println(Arrays.toString(a));
    }
}

image.gif

image.gif编辑


3.定时调度

该类库可以实现延迟执行一个代码,或者是重复运行一个代码,每一个调度的任务都要继承TImerTask类,而每一个任务的启动都需要Timmer类才能启动

TimmerTask类实现了Runnable接口所以需要覆写run方法

TimerTask类的常用方法:

方法 描述
boolean cancel() 取消任务的执行。如果任务已经在执行或已被取消,则返回false,否则返回true。
abstract void run() 定义任务的具体逻辑,需要子类实现。当任务被调度执行时,run()方法会被自动调用。
long scheduledExecutionTime() 返回预定执行任务的时间。如果任务尚未安排执行,则返回0。
void scheduledExecutionTime(Date time) 设置任务的预定执行时间为指定的时间。
boolean isScheduled() 判断任务是否已经安排执行。如果任务已经安排执行,则返回true,否则返回false。

Timer类的常用方法:

void schedule(TimerTask task, long delay) 安排在指定延迟之后执行指定的任务。任务只执行一次。
void schedule(TimerTask task, Date time) 安排在指定时间执行指定的任务。任务只执行一次。
void schedule(TimerTask task, long delay, long period) 安排在指定延迟之后开始执行指定的任务,并以指定的周期重复执行。
void schedule(TimerTask task, Date firstTime, long period) 安排在指定时间开始执行指定的任务,并以指定的周期重复执行。
void scheduleAtFixedRate(TimerTask task, long delay, long period) 安排在指定延迟之后开始执行指定的任务,并以固定的速率重复执行,不受任务执行时间的影响。
void scheduleAtFixedRate(TimerTask task, Date firstTime, long period) 安排在指定时间开始执行指定的任务,并以固定的速率重复执行,不受任务执行时间的影响。
void cancel() 终止该计时器,丢弃所有已安排的任务。
void purge() 从计时器任务队列中移除所有已取消的任务。
int purgeCount() 返回从计时器任务队列中移除的已取消任务的数量。
void schedule(TimerTask task, long delay, long period) 安排在指定延迟之后开始执行指定的任务,并以指定的周期重复执行。
void schedule(TimerTask task, Date firstTime, long period) 安排在指定时间开始执行指定的任务,并以指定的周期重复执行。
void scheduleAtFixedRate(TimerTask task, long delay, long period) 安排在指定延迟之后开始执行指定的任务,并以固定的速率重复执行,不受任务执行时间的影响。
void scheduleAtFixedRate(TimerTask task, Date firstTime, long period) 安排在指定时间开始执行指定的任务,并以固定的速率重复执行,不受任务执行时间的影响。

实现每秒更新当前时间并且延迟100ms后输出

package Example1520;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
class MyThread extends TimerTask {
    @Override
    public void run() {
        Date date =new Date();
        System.out.println(date);
    }
}
public class javaDemo {
    public static void main(String[] args) {
        MyThread mytask = new MyThread();
        Timer task = new Timer();
        task.schedule(mytask,100,1000);
    }
}

image.gif

image.gif编辑


4.Base64加密与解密

核心函数 Base64.Encoder getEncoder(byte[])实现加密与Base64.Decoder getDecoder(byte[])实现解密

案例如下

package Example151;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class javaDemo {
    public static void main(String[] args) {
//        原始内容
        String str="公司机密:领导每天带着假发";
//        加密
        String encode = new String(Base64.getEncoder().encode(str.getBytes(StandardCharsets.UTF_8)));
        System.out.println("密文为:"+encode);
//        解密
        String decode = new String(Base64.getDecoder().decode(encode));
        System.out.println(decode);
    }
}

image.gif

image.gif编辑


目录
相关文章
|
2月前
|
存储 安全 Java
Java数组(Arrays)详解
Java 中的数组是一种用于存储固定数量同类型数据的高效数据结构,支持连续内存存储和随机访问。数组可以声明并初始化,通过索引访问和修改元素,获取长度,使用循环遍历,支持多维形式,并可通过 `Arrays` 类的方法进行复制和排序。数组具有固定大小和类型安全的特点,但需注意越界等问题。灵活运用数组能显著提升编程效率。
134 9
|
4月前
|
存储 安全 Java
"Java编码魔法:揭秘图片与文件的Base64神秘转换术,让数据在指尖跳跃!"
【8月更文挑战第16天】Base64编码在Java开发中常用于将二进制数据如图片转换为ASCII字符串以便传输。编码使用64个字符及等号填充,每3字节数据编码为4个字符。Java利用`java.util.Base64`类实现此功能:读取图片或文件为字节数组后进行编码。解码时将Base64字符串还原为字节数组并写入文件。需注意编码效率降低、不提供安全性及特殊字符兼容性等问题。掌握这些技巧有助于解决Web开发中的数据传输需求。
123 4
|
4月前
|
Java
Java 图片、文件 Base64 互转
Java 图片、文件 Base64 互转
87 0
|
5月前
|
存储 算法 安全
如何在Java中实现加密解密
如何在Java中实现加密解密
|
5月前
|
开发框架 Java Apache
Java中的类库与工具集推荐
Java中的类库与工具集推荐
|
5月前
|
存储 算法 安全
如何在Java中实现加密解密
如何在Java中实现加密解密
|
6月前
|
存储 Java 数据处理
Java的Base64加密解密详解
Java的Base64加密解密详解
|
5月前
|
Java 索引
Java中的Arrays类
Java中的Arrays类
|
6月前
|
Java BI C#
技术笔记:SM4加密算法实现Java和C#相互加密解密
技术笔记:SM4加密算法实现Java和C#相互加密解密
117 0
|
6月前
|
Java
技术经验分享:Java中Arrays详解
技术经验分享:Java中Arrays详解
30 0