java学习笔记--常用类(System,Runtime,date类, Math 数学类,Random 随机数类 )

简介: System类 System.arraycopy(srcArr, 1, destArr, 0,4); 重要 数组间赋值 集合的时候会用到 System.exit(0)正常退出 非0 异常退出 一般都是tyr中exit(0) catch中 exit(非0) System.currentTimeMillis()当前的系统时间 从1971开始 的毫秒单位 重要 System.gc() 建议jvm赶快启动垃圾回收期回收垃圾。

System类

System.arraycopy(srcArr, 1, destArr, 0,4); 重要 数组间赋值 集合的时候会用到
System.exit(0)正常退出 非0 异常退出 一般都是tyr中exit(0) catch中 exit(非0)
System.currentTimeMillis()当前的系统时间 从1971开始 的毫秒单位 重要
System.gc() 建议jvm赶快启动垃圾回收期回收垃圾。 (调用回收机制前会启动对象的finalize的方法 )
Properties xx=System.getProperties(); 需要import java.util.Properties; xx.list(System.out);显示的是系统的属性 String
name=System.getProperty(“os.name”);
System.out.println(name);根据系统的属性名获取对应的属性值 String
name1=System.getenv(“JAVA_Home”);
System.out.println(name1);根据环境变量的名字获取环境变量。


Runtime
RunTime 该类类主要代表了应用程序运行的环境。

getRuntime()  返回当前应用程序的运行环境对象。
exec(String command)  根据指定的路径执行对应的可执行文件。
freeMemory()   返回 Java 虚拟机中的空闲内存量。。 以字节为单位
maxMemory()    返回 Java 虚拟机试图使用的最大内存量。
totalMemory()    返回 Java 虚拟机中的内存总量
Runtime runtime = Runtime.getRuntime();
//      Process process = runtime.exec("C:\\Windows\\notepad.exe");要抛出异常
//      Thread.sleep(3000); //让当前程序停止3秒。
//      process.destroy();
        System.out.println(" Java虚拟机中的空闲内存量。"+runtime.freeMemory());
        System.out.println("Java 虚拟机试图使用的最大内存量:"+ runtime.maxMemory());
        System.out.println("返回 Java 虚拟机中的内存总量:"+ runtime.totalMemory());

date类:
如果需要知道当前时间的某个时间段 那需要Calendar 没有构造函数 调用getInstance就行(是静态的函数)
本来是date.getYear()但是被Calendar给替代了
如果是获取时间段的一部分就用Calendar而不是date
例子:

Calendar calendar = Calendar.getInstance(); //获取当前的系统时间。
System.out.println("年:"+ calendar.get(Calendar.YEAR));
System.out.println("月:"+ (calendar.get(Calendar.MONTH)+1));
System.out.println("日:"+ calendar.get(Calendar.DATE));
“`
System.out.println(“时:”+ calendar.get(Calendar.HOUR_OF_DAY));
System.out.println(“分:” + calendar.get(Calendar.MINUTE));
System.out.println(“秒:”+ calendar.get(Calendar.SECOND));


如果要将指定的时间转换为指定的显示方式就用 SimpleDateFormat
 *  日期格式化类    SimpleDateFormat 
         *          作用1: 可以把日期转换转指定格式的字符串     format()
         *          作用2: 可以把一个 字符转换成对应的日期。    parse()   生日
         *      
         */

Date date = new Date(); //获取当前的系统时间。
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日   HH:mm:ss") ; //使用了默认的格式创建了一个日期格式化对象。
    String time = dateFormat.format(date);  //可以把日期转换转指定格式的字符串
    System.out.println("当前的系统时间:"+ time);

    String birthday = "2000年12月26日   11:29:08";
    Date date2 = dateFormat.parse(birthday);  //注意: 指定的字符串格式必须要与SimpleDateFormat的模式要一致。
    System.out.println(date2);

“`


Math 数学类, 主要是提供了很多的数学公式。

 abs(double a)  获取绝对值
 ceil(double a)  向上取整
 floor(double a)  向下取整
 round(float a)   四舍五入
 random()   产生一个随机数. 大于等于 0.0 且小于 1.0 的伪随机 double 值

随机数类
Random
需求: 编写一个函数随机产生四位的验证码。

Random random = new Random();
int randomNum = random.nextInt(10)+1; //产生 的 随机数就是0-10之间
System.out.println("随机数:"+ randomNum);

char[] arr = {'中','国','传','a','Q','f','B'};
StringBuilder sb = new StringBuilder();
Random random = new Random();
//需要四个随机数,通过随机数获取字符数组中的字符,
for(int i  = 0 ; i< 4 ; i++){
        int index = random.nextInt(arr.length);  //产生的 随机数必须是数组的索引值范围之内的。
sb.append(arr[index]);
}
System.out.println("验证码:"+ sb);
目录
相关文章
|
4天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
9天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
42 4
|
9天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
21 2
|
Java
数学知识能救命了?快来用java解决数学问题吧
数学知识能救命了?快来用java解决数学问题吧
112 0
|
7天前
|
安全 Java 测试技术
Java并行流陷阱:为什么指定线程池可能是个坏主意
本文探讨了Java并行流的使用陷阱,尤其是指定线程池的问题。文章分析了并行流的设计思想,指出了指定线程池的弊端,并提供了使用CompletableFuture等替代方案。同时,介绍了Parallel Collector库在处理阻塞任务时的优势和特点。
|
16天前
|
安全 Java
java 中 i++ 到底是否线程安全?
本文通过实例探讨了 `i++` 在多线程环境下的线程安全性问题。首先,使用 100 个线程分别执行 10000 次 `i++` 操作,发现最终结果小于预期的 1000000,证明 `i++` 是线程不安全的。接着,介绍了两种解决方法:使用 `synchronized` 关键字加锁和使用 `AtomicInteger` 类。其中,`AtomicInteger` 通过 `CAS` 操作实现了高效的线程安全。最后,通过分析字节码和源码,解释了 `i++` 为何线程不安全以及 `AtomicInteger` 如何保证线程安全。
java 中 i++ 到底是否线程安全?
|
3天前
|
安全 Java 开发者
深入解读JAVA多线程:wait()、notify()、notifyAll()的奥秘
在Java多线程编程中,`wait()`、`notify()`和`notifyAll()`方法是实现线程间通信和同步的关键机制。这些方法定义在`java.lang.Object`类中,每个Java对象都可以作为线程间通信的媒介。本文将详细解析这三个方法的使用方法和最佳实践,帮助开发者更高效地进行多线程编程。 示例代码展示了如何在同步方法中使用这些方法,确保线程安全和高效的通信。
17 9
|
6天前
|
存储 安全 Java
Java多线程编程的艺术:从基础到实践####
本文深入探讨了Java多线程编程的核心概念、应用场景及其实现方式,旨在帮助开发者理解并掌握多线程编程的基本技能。文章首先概述了多线程的重要性和常见挑战,随后详细介绍了Java中创建和管理线程的两种主要方式:继承Thread类与实现Runnable接口。通过实例代码,本文展示了如何正确启动、运行及同步线程,以及如何处理线程间的通信与协作问题。最后,文章总结了多线程编程的最佳实践,为读者在实际项目中应用多线程技术提供了宝贵的参考。 ####
|
3天前
|
监控 安全 Java
Java中的多线程编程:从入门到实践####
本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin
|
6天前
|
Java
JAVA多线程通信:为何wait()与notify()如此重要?
在Java多线程编程中,`wait()` 和 `notify()/notifyAll()` 方法是实现线程间通信的核心机制。它们通过基于锁的方式,使线程在条件不满足时进入休眠状态,并在条件满足时被唤醒,从而确保数据一致性和同步。相比其他通信方式,如忙等待,这些方法更高效灵活。 示例代码展示了如何在生产者-消费者模型中使用这些方法实现线程间的协调和同步。
15 3