【Java从0到1学习】10 Java常用类汇总

这篇具有很好参考价值的文章主要介绍了【Java从0到1学习】10 Java常用类汇总。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【Java从0到1学习】10 Java常用类汇总,笑小枫-Java从0到1学习,java,学习,python

1. System类

System类对读者来说并不陌生,因为在之前所学知识中,需要打印结果时,使用的都是“System.out.println();”语句,这句代码中就使用了System类。System类定义了一些与系统相关的属性和方法,它所提供的属性和方法都是静态的,因此,想要引用这些属性和方法,直接使用System类调用即可。System类的常用方法如下表所示。

【Java从0到1学习】10 Java常用类汇总,笑小枫-Java从0到1学习,java,学习,python

1.getProperties()方法

System类的getProperties()方法用于获取当前系统的全部属性,该方法会返回一个Properties对象,其中封装了系统的所有属性,这些属性是以键值对形式存在的。

package cn.itcast.chapter05.example09;
import java.util.*;
/**
 * System类的getProperties()方法
 */
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);
		}
	}
}

2.currentTimeMillis()

currentTimeMillis()方法返回一个long类型的值,该值表示当前时间与1970年1月1日0点0分0秒之间的时间差,单位是毫秒,通常也将该值称作时间戳。

package cn.itcast.chapter05.example10;
/**
 * 计算程序在进行求和操作时所消耗的时间
 */
public class Example10 {
	public static void main(String[] args) {
		long startTime = System.currentTimeMillis();// 循环开始时的当前时间
		int sum = 0;
		for (int i = 0; i < 100000000; i++) {
			sum += i;
		}
		long endTime = System.currentTimeMillis();// 循环结束后的当前时间
		System.out.println("程序运行的时间为:" + (endTime - startTime) + "毫秒");
	}
}

3.arraycopy(Object src,int srcPos,Object dest,int destPos,int length)

arraycopy()方法用于将一个数组中的元素快速拷贝到另一个数组。其中的参数具体作用如下:

  • src:表示源数组。
  • dest:表示目标数组。
  • srcPos:表示源数组中拷贝元素的起始位置。
  • destPos:表示拷贝到目标数组的起始位置。
  • length:表示拷贝元素的个数。
package cn.itcast.chapter05.example11;
/**
 * 数组元素的拷贝
 */
public class Example11 {
	public static void main(String[] args) {
		int[] fromArray = { 101, 102, 103, 104, 105, 106 }; // 源数组
		int[] toArray = { 201, 202, 203, 204, 205, 206, 207 }; // 目标数组
		System.arraycopy(fromArray, 2, toArray, 3, 4); // 拷贝数组元素
		// 打印目标数组中的元素
		for (int i = 0; i < toArray.length; i++) {
			System.out.println(i + ": " + toArray[i]);
		}
	}
}

4.SystemClock.uptimeMillis()

2. Runtime类

Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程。每次使用java命令启动虚拟机都对应一个Runtime实例,并且只有一个实例,因此该类采用单例模式进行设计,对象不可以直接实例化。若想在程序中获得一个Runtime实例,只能通过以下方式:

【Java从0到1学习】10 Java常用类汇总,笑小枫-Java从0到1学习,java,学习,python

案例代码

由于Runtime类封装了虚拟机进程,因此,在程序中通常会通过该类的实例对象来获取当前虚拟机的相关信息。

package cn.itcast.chapter05.example12;
/**
 * Runtime类的使用
 */
public class Example12 {
	public static void main(String[] args) {
		Runtime rt = Runtime.getRuntime(); // 获取
		System.out.println("处理器的个数: " + rt.availableProcessors() + "个");
		System.out.println("空闲内存数量: " + rt.freeMemory() / 1024 / 1024 + "M");
		System.out.println("最大可用内存数量: " + rt.maxMemory() / 1024 / 1024 + "M");
	}
}

案例代码

Runtime类中提供了一个exec()方法,该方法用于执行一个dos命令,从而实现和在命令行窗口中输入dos命令同样的效果。例如,通过运行“notepad.exe”命令打开一个Windows自带的记事本程序

package cn.itcast.chapter05.example13;
import java.io.IOException;
/**
 * 使用exec()方法打开记事本
 */
public class Example13 {
	public static void main(String[] args) throws IOException {
		Runtime rt = Runtime.getRuntime(); // 创建Runtime实例对象
		rt.exec("notepad.exe"); // 调用exec()方法
	}
}

打开记事本并在3秒后自动关闭

package cn.itcast.chapter05.example14;
/**
 * 打开的记事本并在3秒后自动关闭
 */
public class Example14 {
	public static void main(String[] args) throws Exception {
		Runtime rt = Runtime.getRuntime(); // 创建一个Runtime实例对象
		Process process = rt.exec("notepad.exe");// 得到表示进程的Process对象
		Thread.sleep(3000); // 程序休眠3秒
		process.destroy(); // 杀掉进程
	}
}
Runtime.getRuntime().availableProcessors(); // 获取CPU核心数
Runtime.getRuntime().maxMemory(); // 获取应用被分配的最大内存

3. Math类

Math类是数学操作类,Math类提供了常用的一些数学函数,如:三角函数、对数、指数等。一个数学公式如果想用代码表示,则可以将其拆分然后套用Math类下的方法即可。

Math类中有两个静态常量PI和E,分别代表数学常量π和e。

Math.abs(12.3);                 //12.3 返回这个数的绝对值  
Math.abs(-12.3);                //12.3  
  
Math.copySign(1.23, -12.3);     //-1.23,返回第一个参数的量值和第二个参数的符号  
Math.copySign(-12.3, 1.23);     //12.3  
  
Math.signum(x);                 //如果x大于0则返回1.0,小于0则返回-1.0,等于0则返回0  
Math.signum(12.3);              //1.0  
Math.signum(-12.3);             //-1.0  
Math.signum(0);                 //0.0  
  
  
//指数  
Math.exp(x);                    //e的x次幂  
Math.expm1(x);                  //e的x次幂 - 1  
  
Math.scalb(x, y);               //x*(2的y次幂)  
Math.scalb(12.3, 3);            //12.3*2³  
  
//取整  
Math.ceil(12.3);                //返回最近的且大于这个数的整数13.0  
Math.ceil(-12.3);               //-12.0  
  
Math.floor(12.3);               //返回最近的且小于这个数的整数12.0  
Math.floor(-12.3);              //-13.0  
  
//x和y平方和的二次方根  
Math.hypot(x, y);               //√(x²+y²)  
  
//返回概述的二次方根  
Math.sqrt(x);                   //√(x) x的二次方根  
Math.sqrt(9);                   //3.0  
Math.sqrt(16);                  //4.0  
  
//返回该数的立方根  
Math.cbrt(27.0);                //3   
Math.cbrt(-125.0);              //-5  
  
//对数函数  
Math.log(e);                    //1 以e为底的对数  
Math.log10(100);                //10 以10为底的对数  
Math.log1p(x);                  //Ln(x+ 1)  
  
//返回较大值和较小值  
Math.max(x, y);                 //返回x、y中较大的那个数  
Math.min(x, y);                 //返回x、y中较小的那个数  
  
//返回 x的y次幂  
Math.pow(x, y);                   
Math.pow(2, 3);                 //即2³ 即返回:8  
  
//随机返回[0,1)之间的无符号double值  
Math.random();                    
  
//返回最接近这个数的整数,如果刚好居中,则取偶数  
Math.rint(12.3);                //12.0   
Math.rint(-12.3);               //-12.0  
Math.rint(78.9);                //79.0  
Math.rint(-78.9);               //-79.0  
Math.rint(34.5);                //34.0  
Math.rint(35.5);                //36.0  
  
Math.round(12.3);               //与rint相似,返回值为long  
  
//三角函数  
Math.sin(α);                    //sin(α)的值  
Math.cos(α);                    //cos(α)的值  
Math.tan(α);                    //tan(α)的值  
  
//求角  
Math.asin(x/z);                 //返回角度值[-π/2,π/2]  arc sin(x/z)  
Math.acos(y/z);                 //返回角度值[0~π]   arc cos(y/z)  
Math.atan(y/x);                 //返回角度值[-π/2,π/2]  
Math.atan2(y-y0, x-x0);         //同上,返回经过点(x,y)与原点的的直线和经过点(x0,y0)与原点的直线之间所成的夹角  
  
Math.sinh(x);                   //双曲正弦函数sinh(x)=(exp(x) - exp(-x)) / 2.0;  
Math.cosh(x);                   //双曲余弦函数cosh(x)=(exp(x) + exp(-x)) / 2.0;  
Math.tanh(x);                   //tanh(x) = sinh(x) / cosh(x);  
  
//角度弧度互换  360°角=2π弧度
Math.toDegrees(angrad);         //角度转换成弧度,返回:angrad * 180d / PI  
  
Math.toRadians(angdeg);         //弧度转换成角度,返回:angdeg / 180d * PI  

Math.PI
package cn.itcast.chapter05.example15;
/**
 * Math类中比较常见的方法
 */
public class Example15 {
	public static void main(String[] args) {
		System.out.println("计算绝对值的结果: " + Math.abs(-1));
		System.out.println("求大于参数的最小整数: " + Math.ceil(5.6));
		System.out.println("求小于参数的最大整数: " + Math.floor(-4.2));
		System.out.println("对小数进行四舍五入后的结果: " + Math.round(-4.6));
		System.out.println("求两个数的较大值: " + Math.max(2.1, -2.1));
		System.out.println("求两个数的较小值: " + Math.min(2.1, -2.1));
		System.out.println("生成一个大于等于0.0小于1.0随机值: " + Math.random());
	}
}

4. Random类

在JDK的java.util包中有一个Random类,它可以在指定的取值范围内随机产生数字。在Random类中提供了两个构造方法,具体如下表所示。

【Java从0到1学习】10 Java常用类汇总,笑小枫-Java从0到1学习,java,学习,python

表中列举了Random类的两个构造方法,其中第一个构造方法是无参的,通过它创建的Random实例对象每次使用的种子是随机的,因此每个对象所产生的随机数不同。如果希望创建的多个Random实例对象产生相同序列的随机数,则可以在创建对象时调用第二个构造方法,传入相同的种子即可。

相对于Math的random()方法而言,Random类提供了更多的方法来生成各种伪随机数,不仅可以生成整数类型的随机数,还可以生成浮点类型的随机数,表中列举了Random类中的常用方法。

【Java从0到1学习】10 Java常用类汇总,笑小枫-Java从0到1学习,java,学习,python

表中,列出了Random类常用的方法,其中,Random类的nextDouble()方法返回的是0.0和1.0之间double类型的值,nextFloat()方法返回的是0.0和1.0之间float类型的值,nextInt(int n)返回的是0(包括)和指定值n(不包括)之间的值。

package cn.itcast.chapter05.example16;
import java.util.Random;
/**
 * 使用构造方法Random()产生随机数
 */
public class Example16 {
	public static void main(String args[]) {
		Random r = new Random(); // 不传入种子
		// 随机产生10个[0,100)之间的整数
		for (int x = 0; x < 10; x++) {
			System.out.println(r.nextInt(100));
		}
	}
}
package cn.itcast.chapter05.example17;
import java.util.Random;
/**
 * 使用构造方法Random(long seed)产生随机数
 */
public class Example17 {
	public static void main(String args[]) {
		Random r = new Random(13); // 创建对象时传入种子
		// 随机产生10个[0,100)之间的整数
		for (int x = 0; x < 10; x++) {
			System.out.println(r.nextInt(100));
		}
	}
}
package cn.itcast.chapter05.example18;
import java.util.Random;
/**
 * Random类中的常用方法
 */
public class Example18 {
	public static void main(String[] args) {
		Random r1 = new Random(); // 创建Random实例对象
		System.out.println("产生float类型随机数: " + r1.nextFloat());
		System.out.println("产生0~100之间int类型的随机数:" + r1.nextInt(100));
		System.out.println("产生double类型的随机数:" + r1.nextDouble());
	}
}

5. 日期

求当前时间100天后的时间日期,格式化为xxxx年xx月xx日文章来源地址https://www.toymoban.com/news/detail-664401.html

Date

方法声明 功能描述
getTime()
setTime()

SimpleDateFormat

返回值 方法声明 功能描述
Stirng format() 格式化日期
Date parse()

Calendar

方法声明 功能描述
get(int field) 返回给定日历字段的值
getInstance()
add(int field,int amount) 根据给定的日历字段和对应的时间,来对当前的日历进行操作
set(int year,int month,int date) 设置当前日历的年月日
Calendar rightNow = Calendar.getInstance(); // 子类对象

public void add(int field,int amount); //根据给定的日历字段和对应的时间,来对当前的日历进行操作。

public final void set(int year,int month,int date); //设置当前日历的年月日

// 三年前的今天
c.add(Calendar.YEAR, -3);

到了这里,关于【Java从0到1学习】10 Java常用类汇总的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JAVA常用加密方式介绍及使用汇总(全集)

    引文: 传说在古罗马时代,发生了一次大战。正当敌方部队向罗马城推进时,古罗马皇帝凯撒向前线司令官发出了一封密信:VWRS WUDIILF。这封密信被敌方情报人员翻遍英文字典,也查不出这两个词的意思。 此时古罗马皇帝同时又发出了另一个指令:“前进三步”。然后古罗

    2024年02月11日
    浏览(79)
  • Java-String类常用方法汇总

    2023年04月08日
    浏览(40)
  • Java 之正则表达式语法及常用正则表达式汇总

    正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为 regex、regexp 或 RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称

    2024年02月09日
    浏览(68)
  • 【Java练习题汇总】《第一行代码JAVA》Java常用类库篇,汇总Java练习题——Optional类、包装类、可变字符串支持类、Runtime类、System类、数学运算类、日期时间处理...

    一、填空题 在 java.lang 包中提供了两个字符串类,分别是________ 和________ 。这两个类都是________ 接口的子类,字符串类提供的求字符串长度的方法是________________ 。 Java 提供的两个大数操作类是________ 和________ 。 对象克隆方法是________ 类提供的,方法名称是________________ ,对

    2024年02月16日
    浏览(52)
  • 详解Java常用排序算法(10种)

    Java常用的排序算法有以下几种: 冒泡排序(Bubble Sort) 选择排序(Selection Sort) 插入排序(Insertion Sort) 希尔排序(Shell Sort) 归并排序(Merge Sort) 快速排序(Quick Sort) 堆排序(Heap Sort) 计数排序(Counting Sort) 桶排序(Bucket Sort) 基数排序(Radix Sort) 这些排序算法都有

    2024年02月12日
    浏览(33)
  • Linux系统下常用软件安装汇总,包括mysql,java,git,redis等

    01.环境搭建 1.安装列表 MySQL 5.7.11 Java 1.8 Apache Maven 3.6+ tomcat8.5 git Redis Nginx python docker 2.安装mysql my.cnf内容如下 mysql服务无法启动执行如下 3.安装Java 上传压缩包:jdk-8u271-linux-x64.tar.gz 解压:tar -xvzf jdk-8u271-linux-x64.tar.gz 将解压后的目录放到一个目录下:mv jdk1.8.0_271 /opt/jdk1.8 设置

    2024年01月20日
    浏览(41)
  • Python速查表;腾讯大佬的AIGC设计应用汇总;这个世界需要10亿开发者;67个最常用AI工具清单 | ShowMeAI日报

    👀 日报周刊合集 | 🎡 生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 随着AIGC浪潮的兴起,越来越多小伙伴尝试着使用 GPT 类工具开发小程序、网页、小游戏等应用,也意识到 Python 编程是绕不过去知识门槛。 推荐一份 ShowMeAI 制作的 Pyhton 速查表,涵盖了 Python 3 编

    2024年02月06日
    浏览(50)
  • Java学习汇总

    7/28日已更新,错误已修改~~~有错误的地方,欢迎大家留言! 目录  一、Java基础篇 1.接口和抽象类的区别 2.重载和重写的区别 3.==和equals的区别 4.异常处理机制 5.HashMap原理 6.想要线程安全的HashMap怎么办? 7.ConcurrentHashMap原如何保证的线程安全? 8.HashTable与HashMap的区别 9.Array

    2024年02月11日
    浏览(30)
  • 详解Java常用排序算法(10种,含演示动画)

    Java常用的排序算法有以下几种: 冒泡排序(Bubble Sort) 选择排序(Selection Sort) 插入排序(Insertion Sort) 希尔排序(Shell Sort) 归并排序(Merge Sort) 快速排序(Quick Sort) 堆排序(Heap Sort) 计数排序(Counting Sort) 桶排序(Bucket Sort) 基数排序(Radix Sort) 这些排序算法都有

    2024年02月04日
    浏览(33)
  • B站 Java相关学习资源汇总

    计算机网络微课堂 https://www.bilibili.com/video/BV1c4411d7jb?p=1 讲师:湖科大教书匠 评价:通俗易懂,重点知识十分细致,配合实验,而且有考研408 的难题的讲解,也是非常适合考研党,除了课程内容外还有很多习题讲解视频。因此就业党和考研党都可以食用。 王道计算机考研 计

    2024年02月11日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包