java中的常用类(二)
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中的常用类(二)的更多相关文章
- Java中的常用类——Arrays
数组工具类java.util.Arrays Arrays类中的方法都是static修饰的静态方法,因此可以直接使用类名.方法名来调用,而不用通过new使用对象来调用(是"不用"不是 ...
- java 中的常用类
Java 中的包装类 相信各位小伙伴们对基本数据类型都非常熟悉,例如 int.float.double.boolean.char 等. 基本数据类型是不具备对象的特性的,比如基本类型不能调用方法.功能 ...
- Java学习笔记-Java中的常用类
Java中有很多类是很常用的,此处列举System,Runtime,Date,Calendar,Math System System:类中的方法和属性都是静态的 字段摘要 static PrintSt ...
- Java中的常用类:包装类、String、StringBuffer、StringBuilder、Math、System、Arrays、BigInteger、BigDecimal、Data、Calendar
一.包装类 √ 二.String类 ★ 三.StringBuffer和StringBuilder类 ★ 四.Math类 五.System类 六.Arrays类 七.BigInteger类和BigDec ...
- Java中的常用类有哪些
1NumberFormat 2DecimalFormat 3BigDecimal 4Math 5Random 6DateFormat 7SimpleDateFormat 8Calendar 9Date ...
- Java学习笔记二十四:Java中的Object类
Java中的Object类 一:什么是Object类: Object类是所有类的父类,相当于所有类的老祖宗,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认继承Object ...
- Java中最常用的集合类框架之 HashMap
一.HashMap的概述 HashMap可以说是Java中最常用的集合类框架之一,是Java语言中非常典型的数据结构. HashMap是基于哈希表的Map接口实现的,此实现提供所有可选的映射 ...
- Java中的BigDecimal类和int和Integer总结
前言 我们都知道浮点型变量在进行计算的时候会出现丢失精度的问题.如下一段代码: System.out.println(0.05 + 0.01); System.out.println(1.0 - 0. ...
- java-API中的常用类,新特性之-泛型,高级For循环,可变参数
API中的常用类 System类System类包含一些有用的类字段和方法.它不能被实例化.属性和方法都是静态的. out,标准输出,默认打印在控制台上.通过和PrintStream打印流中的方法组合构 ...
随机推荐
- 【西北师大-2108Java】第十次作业成绩汇总
[西北师大-2108Java]第十次作业成绩汇总 作业题目 面向对象程序设计(JAVA) 第12周学习指导及要求 实验目的与要求 (1)掌握Vetor.Stack.Hashtable三个类的用途及常用 ...
- RTP Payload Format for H264 Video
基础传输结构 rtp中对于h264数据的存储分为两层,分别是 VCL: video coding layer 视频编码层 这是h264中block, macro block 以及 slice级别的定义 ...
- 一个适合于.NET Core的超轻量级工作流引擎:Workflow-Core
一.关于Workflow-Core 近期工作上有一个工作流的开发需求,自己基于面向对象和职责链模式捣鼓了一套小框架,后来在github上发现一个轻量级的工作流引擎轮子:Workflow-Core,看完 ...
- [译]Vulkan教程(01)入门
[译]Vulkan教程(01)入门 接下来我将翻译(https://vulkan-tutorial.com)上的Vulkan教程.这可能是我学习Vulkan的最好方式,但不是最理想的方式. 我会用“d ...
- python-16-初识函数
前言 以前写的python代码都是像记流水账一样,那么函数时什么额?它可以在任何需要它的地方进行调用,函数分为: 内置函数,print(),len() 自定义函数 一.自定义函数 1.我们都知道内置函 ...
- IT兄弟连 HTML5教程 HTML5文字版面和编辑标签 HTML框架结构
使用HTML框架结构可以把一个浏览器窗口划分为若干个小窗口,每个窗口可以显示不同的URL网页,每个框架里的网页相互独立.这样不仅可以非常方便地在浏览器中同时浏览不同的页面效果,而且可以非常方便地完成导 ...
- C#函数(构造函数)的重载
using System; namespace test { class Program { static void Main(string[] args) { Cat cat = new Cat() ...
- javaWeb核心技术第六篇之BootStrap
概述: Bootstrap 是最受欢迎的 HTML.CSS 和 JS 框架,用于开发响应式布局.移动设备优先的 WEB 项目. 作用: 开发响应式的页面 响应式:就是一个网站能够兼容多个终端 节约开发 ...
- Prism_Commanding(2)
Commanding 除了提供对要在视图中显示或编辑的数据的访问之外,ViewModel还可能定义可由用户执行的一个或多个动作或操作.用户可以通过UI执行的动作或操作通常被定义为命令.命令提供了一种方 ...
- jQuery从零开始(一)
1.jQuery是什么? 轻量级的工具库,类库. Jquery可以写的很少的代码,干的很多的事情. 2.学习心态,常用的功能 jQuery只是一个工具,它的实现原理还是js.以练习为主,多看多练. 常 ...