java中的常用类(二)

Math类

Math类的声明:public final class Math extends Object

Math类是与数学计算有关的类,里面的方法都是静态方法,直接使用类名来调用即可。

常用方法

以下X表示double,float,int, long

  • abs(X x):求绝对值
  • max(X x1,X x2):求最大值
  • min(X x1,X x2):求最小值
  • public static double random():返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。和使用new java.util.Random一样
  • Math.PI:π的值;

public class MathDemo { public static void main(String[] args) {
//- abs(X x):求绝对值
// - max(X x1,X x2):求最大值
// - min(X x1,X x2):求最小值
// - public static double random():返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。和使用new java.util.Random一样
// - Math.PI:π的值; int abs = Math.abs(-10);
System.out.println(abs); int max = Math.max(19, 20);
System.out.println(max); int min = Math.min(100, 90);
System.out.println(min); double random = Math.random();
//输出随随机值为0.0到1.0之间,[0,1)
System.out.println(random); // 输出1到10之间的整数随机数
int randomNum = (int) (Math.random() * 10 + 1);
System.out.println(randomNum); // 输出π的值
System.out.println(Math.PI); } }

Random类

负责生成伪随机数,该类主要用于输出随机数字。

常用方法:

  • Random() 创建一个新的随机数生成器。
  • int nextInt() 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
  • int nextInt(int n) 返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值n(不包括)之间均匀分布的 int 值。

public class RandomDemo {
public static void main(String[] args) {
//在进行随机时,随机算法的起源数字称为种子数(seed),
//在种子数的基础上进行一定的变换,从而产生需要的随机数字。
Random random1 = new Random(12);
Random random2 = new Random(12); for (int i = 0; i < 10; i++) {
//相同种子数的Random对象,相同次数生成的随机数字是完全相同的。
System.out.println(random1.nextInt() == random2.nextInt());
//上面的输出语句,会输出10个true
} Random random3 = new Random();
Random random4 = new Random(); for (int i = 0; i < 10; i++) {
//没有种子,随机
System.out.println(random3.nextInt() == random4.nextInt());
}
Random random5 = new Random(1);
Random random6 = new Random(); for (int i = 0; i < 10; i++) {
//种子不同,随机
System.out.println(random5.nextInt() == random6.nextInt());
} System.out.println("======================分割线======================"); // 生成一个1-10的整数随机数
Random random = new Random();
for (int i = 0; i < 100; i++) {
int i1 = random.nextInt(10);
System.out.println(i1);
} }
}

UUID

UUID类:用唯一标识符 (UUID) 的类。 UUID 表示一个 128 位的值。

UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。

按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:

当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),

时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得),UUID的唯一缺陷在于生成的结果串会比较长。

标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx (8-4-4-4-12),其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字;

用途:UUID用于标志一个唯一值,例如:防止文件名重复,数据库主键防止重复等,可以保证全网唯一。



public class Demo27 {
public static void main(String[] args) {
UUID u = UUID.randomUUID();
String s = u.toString();
System.out.println(s);//此时是随机生成的,肯定每次都不一样,全网唯一! u = new UUID(1222222222, 12);//根据构造方法来
s = u.toString();
System.out.println(s);//这一个的UUID是固定的。
}
}

我的总结:UUID(用来标示文件名等(免得文件上传因为名字可能一样而被覆盖),!)

Date

类的声明:java.util.Date

java中的日期类,不过大部分的方法已过时,不推荐使用,但是你使用过时的方法也不会报错。

构造方法:

  • Date() 分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
  • Date(long date) 分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。

SimpleDateFormat

类的声明:java.text.SimpleDateFormat

SimpleDateFormat 是一个与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。

常用方法

  • SimpleDateFormat(String pattern) 用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
  • public final String format(Date date)将一个 Date 格式化为日期/时间字符串。
  • public Date parse(String source) throws ParseException:把字符串source表示的时间按source的格式转成Date对象。

练习:String与Date的相互转化

/*

按某种时间格式来输出指定的String类型时间
date2String
format 把某种时间格式的String时间转成Date类型时间
string2Date
parse */ import java.text.SimpleDateFormat;
import java.util.Date; public class Demo28 {
public static void main(String[] args) throws Exception { Date d = new Date();
System.out.println(d);//获取当前时间 //格式化
SimpleDateFormat sd = new SimpleDateFormat("yyyy-M-d HH:mm:ss E"); String s = sd.format(d);//这个方法继承于SimpleDateFormat的父类DateFormat类!
System.out.println(s); //反格式化
d = sd.parse(s);
System.out.println(d);
}
}

Calendar

推荐使用处理日期和时间的类Calendar;

是抽象类,不能实例化,通过static Calendar getInstance() 获得一个Calendar对象。

常用常量

  • YEAR 表示年的字段数字。
  • MONTH 表示月份字段数字,月份范围是[0,11]。
  • DATE 表示一个月中的某天。
  • DAY_OF_MONTH 表示一个月中的某天。
  • DAY_OF_WEEK 表示一个星期中的某天。
  • HOUR_OF_DAY / HOUR 表示第几小时
  • MINUTE 表示第几分钟
  • SECOND 表示第几秒

常用的方法

  • Date getTime() 返回一个表示此 Calendar 时间值的 Date 对象。
  • void set(int year, int month, int date, int hour, int minute, int second) 设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。
  • abstract void add(int field, int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量。

注意

若 amount为负数,则减去一天,

若 amount为正数 ,则加上一天

使用例子


import java.util.Calendar;
import java.util.Date; public class Demo29 {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
System.out.println(c); Date d = c.getTime();
System.out.println(d); /**
* void set(int year, int month, int date, int hour, int minute, int second)
* 设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。
*/ c.set(2015, 07, 15, 12, 24, 55);
d = c.getTime();
System.out.println(d); c.add(Calendar.DAY_OF_MONTH, 3);
d = c.getTime();
System.out.println(d);
}
}

“查询距今最近三天内的记录”,这里的‘三天内’是什么时间段?

将当前日期时间转换为 只获取当天的00:00:00

如: 2011-08-08 12:12:12 转化为 2011-08-08 00:00:00、

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; public class Demo30 {
public static void main(String[] args) { Calendar c = Calendar.getInstance();
Date d = c.getTime();
System.out.println(d); SimpleDateFormat sd = new SimpleDateFormat("yyyy-M-d HH:mm:ss E"); String s = sd.format(d);
System.out.println(s); c.set(2015, 8, 23, 13, 24, 15);
d = c.getTime();
System.out.println(sd.format(d));
c.add(Calendar.DAY_OF_MONTH, -3);
d = c.getTime();
System.out.println(sd.format(d));
}
} 输出:
Thu Jul 04 08:56:51 CST 2013
2013-7-4 08:56:51 星期四
2015-9-23 13:24:15 星期三
2015-9-20 13:24:15 星期日

System

System 类包含一些与系统相关的类字段和方法。它不能被实例化,类中所有属性和方法都是static,可直接被System调用。

常用方法:

  • static void exit(int status) 终止虚拟机的运行.对于发生了异常情况而想终止虚拟机的运行,传递一个非0数值,对于正常情况下退出系统传递0值; 该方法实际调用的是Runtime.getRuntime().exit(int status);
  • static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 数组拷贝
  • static long currentTimeMillis() 返回以毫秒为单位的当前时间。
  • String getenv(String name) 获得指定的环境变量;
  • static void gc() 运行垃圾回收器。实际上调用了 Runtime中的gc()方法;
  • Runtime.getRuntime().exec("notepad ") 运行cmd中的命令
  • static Properties getProperties() 取得当前的系统属性。
  • static String getProperty(String key) 取得指定键指示的系统属性。
  • static String getProperty(String key, String def) 获取用指定键描述的系统属性,def表示默认信息。

public class Demo32 {
public static void main(String[] args) {
Properties p = System.getProperties();
System.out.println(p); System.out.println(System.getenv());
}
}

java中的常用类(二)的更多相关文章

  1. Java中的常用类——Arrays

    数组工具类java.util.Arrays Arrays类中的方法都是static修饰的静态方法,因此可以直接使用类名.方法名来调用,而不用通过new使用对象来调用(是"不用"不是 ...

  2. java 中的常用类

    Java 中的包装类 相信各位小伙伴们对基本数据类型都非常熟悉,例如 int.float.double.boolean.char 等. 基本数据类型是不具备对象的特性的,比如基本类型不能调用方法.功能 ...

  3. Java学习笔记-Java中的常用类

    Java中有很多类是很常用的,此处列举System,Runtime,Date,Calendar,Math System System:类中的方法和属性都是静态的 字段摘要 static PrintSt ...

  4. Java中的常用类:包装类、String、StringBuffer、StringBuilder、Math、System、Arrays、BigInteger、BigDecimal、Data、Calendar

    一.包装类 √ 二.String类 ★ 三.StringBuffer和StringBuilder类 ★ 四.Math类 五.System类 六.Arrays类 七.BigInteger类和BigDec ...

  5. Java中的常用类有哪些

    1NumberFormat 2DecimalFormat 3BigDecimal 4Math 5Random 6DateFormat 7SimpleDateFormat 8Calendar 9Date ...

  6. Java学习笔记二十四:Java中的Object类

    Java中的Object类 一:什么是Object类: Object类是所有类的父类,相当于所有类的老祖宗,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认继承Object ...

  7. Java中最常用的集合类框架之 HashMap

    一.HashMap的概述 HashMap可以说是Java中最常用的集合类框架之一,是Java语言中非常典型的数据结构.      HashMap是基于哈希表的Map接口实现的,此实现提供所有可选的映射 ...

  8. Java中的BigDecimal类和int和Integer总结

    前言 我们都知道浮点型变量在进行计算的时候会出现丢失精度的问题.如下一段代码: System.out.println(0.05 + 0.01); System.out.println(1.0 - 0. ...

  9. java-API中的常用类,新特性之-泛型,高级For循环,可变参数

    API中的常用类 System类System类包含一些有用的类字段和方法.它不能被实例化.属性和方法都是静态的. out,标准输出,默认打印在控制台上.通过和PrintStream打印流中的方法组合构 ...

随机推荐

  1. 2.28秒创建一个k8s集群(非理论篇,理论自行 -- )

    准备3台centos 7+ (建议7以上,不然要会很麻烦,要升级内核等等,扯淡的东西) 安装docker 和k8s集群(均以最新版为例)基于官网 设置静态ip(可选) 查看本机的网关ip cd /Li ...

  2. 埃氏筛法(求n以内有哪些个质数)

    核心思想:从i=2开始,划去i的倍数,即剩下i为质数(如删去2的倍数后2为质数,再删去3的倍数后3为质数,4被删除则跳过,5未被删除则记录然后删除5的倍数...以此类推) #include <b ...

  3. PalletOne调色板跨链的BTC实现

    之前已经讲到了PalletOne调色板跨链以太坊ETH和ERC20的技术原理,接下来我们来讲解PalletOne跨链比特币BTC的技术原理. 一.BTC充币 假如用户A持有一定数量的比特币BTC,他希 ...

  4. mysql中concat函数的使用相关总结

    concat(str1,str2) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. mysql> select concat('11','22','33') ...

  5. 为什么老外不愿意用MyBatis?

    作者:陈龙 www.zhihu.com/question/309662829 Spring 团队的Josh Long自己在Twitter上做了一个调查.1625次投票,样本量不算大,但也能说明问题.和 ...

  6. Java基础专题

    Java后端知识点汇总——Java基础专题 全套Java知识点汇总目录,见https://www.cnblogs.com/autism-dong/p/11831922.html 1.解释下什么是面向对 ...

  7. golang-基础

    1.go的特点 兼具动态语言的开发效率与C,C++,java的性能安全性 ,内置编译器 2.go的安装 go的sdk下载:  https://studygolang.com/dl go的IDE下载: ...

  8. canvas实现七巧板图案和粒子时钟

      canvas实现七巧板 <canvas id="canvas" width="800" height="800"></ ...

  9. OC-类似歌词字体颜色逐字变化的实现方法

    预期实效果图如下: 如上图所示,文字的颜色会根据时间的移动,逐字变成绿色. 实现方法:(1)调用方法: 用 void UIRectFillUsingBlendMode(CGRect rect, CGB ...

  10. 中文版 Apple 官方 Swift 教程《The Swift Programming Language》

    简介 欢迎使用 Swift 关于 Swift 版本兼容性 Swift 初见 Swift 版本历史记录 Swift 教程 基础部分 基本运算符 字符串和字符 集合类型 控制流 函数 闭包 枚举 类和结构 ...