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编辑


目录
相关文章
|
20天前
|
存储 缓存 Java
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
72 3
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
|
5月前
|
Java Maven 数据安全/隐私保护
如何实现Java打包程序的加密代码混淆,避免被反编译?
【10月更文挑战第15天】如何实现Java打包程序的加密代码混淆,避免被反编译?
831 2
|
5月前
|
存储 安全 Java
Java数组(Arrays)详解
Java 中的数组是一种用于存储固定数量同类型数据的高效数据结构,支持连续内存存储和随机访问。数组可以声明并初始化,通过索引访问和修改元素,获取长度,使用循环遍历,支持多维形式,并可通过 `Arrays` 类的方法进行复制和排序。数组具有固定大小和类型安全的特点,但需注意越界等问题。灵活运用数组能显著提升编程效率。
203 9
|
5月前
|
安全 算法 Java
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
本文提供了在数据库中对密码等敏感信息进行加盐加密的详细教程,包括手写MD5加密算法和使用Spring Security的BCryptPasswordEncoder进行加密,并强调了使用BCryptPasswordEncoder时需要注意的Spring Security配置问题。
290 0
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
|
5月前
|
Java 数据库
基于java的汽车服务管理系统(Car Service Management System)
基于java的汽车服务管理系统(Car Service Management System)
42 0
|
7月前
|
存储 算法 Java
在Java中使用MD5对用户输入密码进行加密存储、同时登录验证。
这篇文章详细介绍了在Java项目中如何使用MD5算法对用户密码进行加密存储和登录验证,包括加入依赖、编写MD5工具类、注册时的密码加密和登录时的密码验证等步骤,并通过示例代码和数据库存储信息展示了测试效果。
在Java中使用MD5对用户输入密码进行加密存储、同时登录验证。
|
6月前
|
安全 Java 数据安全/隐私保护
- 代码加密混淆工具-Java 编程安全性
在Java编程领域,保护代码安全与知识产权至关重要。本文探讨了代码加密混淆工具的重要性,并介绍了五款流行工具:ProGuard、DexGuard、Jscrambler、DashO 和 Ipa Guard。这些工具通过压缩、优化、混淆和加密等手段,提升代码安全性,保护知识产权。ProGuard 是开源工具,用于压缩和混淆Java代码;DexGuard 专为Android应用程序设计,提供强大加密功能;Jscrambler 基于云,保护Web和移动应用的JavaScript及HTML5代码;DashO 支持多种Java平台和
299 1
|
7月前
|
安全 Java 应用服务中间件
网络安全的护城河:漏洞防御与加密技术深入浅出Java并发编程
【8月更文挑战第31天】在数字世界的棋盘上,每一次点击都可能是一步棋。网络安全的战场无声却激烈,漏洞如同裂缝中的风,悄无声息地侵袭着数据的堡垒。本文将揭示网络漏洞的隐蔽角落,探讨如何通过加密技术筑起防线,同时提升个人和组织的安全意识,共同守护我们的数字家园。
|
7月前
|
安全 算法 Java
java系列之~~网络通信安全 非对称加密算法的介绍说明
这篇文章介绍了非对称加密算法,包括其定义、加密解密过程、数字签名功能,以及与对称加密算法的比较,并解释了非对称加密在网络安全中的应用,特别是在公钥基础设施和信任网络中的重要性。
|
7月前
|
存储 安全 Java
"Java编码魔法:揭秘图片与文件的Base64神秘转换术,让数据在指尖跳跃!"
【8月更文挑战第16天】Base64编码在Java开发中常用于将二进制数据如图片转换为ASCII字符串以便传输。编码使用64个字符及等号填充,每3字节数据编码为4个字符。Java利用`java.util.Base64`类实现此功能:读取图片或文件为字节数组后进行编码。解码时将Base64字符串还原为字节数组并写入文件。需注意编码效率降低、不提供安全性及特殊字符兼容性等问题。掌握这些技巧有助于解决Web开发中的数据传输需求。
164 4

热门文章

最新文章