java 中常用的类
java 中常用的类
math
math 类,包含用于执行基本数学运算的方法
常用api
取整
-
- l
static double
abs(double a) 获取double 的绝对值 - l
static double
ceil(double a) 向上取整(天花板) - l
static double
floor(double a) 向下取整 (地板) - l
static long
round(double
a
) 四舍五入
- l
1 double a = 3.1415926; 2 double ceil = math.ceil(a); 3 double floor = math.floor(a); 4 long round = math.round(a); 5 // 打印结果 : 4.0---3.0---3 6 system.out.println(ceil +"---"+ floor +"---"+ round);
最值
-
- l
static
t max(t t, t t) 返回参数类型值中比较大的值 - l
static
t min(t t, t t) 返回参数类型值中比较小的值
- l
1 double a = 3.156; 2 double b = 123; 3 4 double max = math.max(a, b); 5 // 打印结果 :123.0 6 system.out.println(max); 7 8 double min = math.min(a, b); 9 // 打印结果 :3.156 10 system.out.println(min);
0-1 随机数
-
- l
static double
random() 返回从0-1的随机数
- l
1 double random = math.random(); 2 // 打印结果 :0.40999788738259957 3 system.out.println(random);
calendar
calendar 是日历类,calendar 为抽象类,由于语言的敏感性,calendar 在创建的时候并非直接创建,而是通过静态方法创建,先处理语言的敏感性,在返回子类对象。
calendar 是通过getinsrance() 静态方法来获取子类对象。
-
static
calendar()
使用默认时区和语言环境获得一个日历
示例:
1 public class stringdemo { 2 /** 3 * 通过calendar 类中的静态方法,getinstance 获取子类对象 4 */ 5 static calendar c = calendar.getinstance(); 6 public static void main(string[] args) { 7 /** 8 * 获取当前日历年份 9 * 结果 : 2018 10 */ 11 system.out.println(c.get(calendar.year)); 12 } 13 }
常用api
获取
-
-
l
static calendar
()
获取日历
- l
long
gettimeinmillis()
获取当前时间的毫秒值
-
l date
()
获取当前时间
-
l
int
(
int field)
获取指定字段的值
- year 年
- month 月,从0开始算起,最大11;0代表1月,11代表12月。
- date 天
- hour 时
- minute分
- second秒
-
设置值
-
-
abstract void
add(
int field, int amount)
为指定的日历字段增加或减少时间量
-
void
set(
int field, int value)
将指定的值设置给指定的字段
-
void
settime(
datedate)
将指定的date 值设置给calendar
-
void
settimeinmillis(
long millis)
将指定的毫秒值设置给calendar
-
simpledateformat 与 date
dataformat 类是针对日期进行格式化,针对字符串进行解析的类,但它是抽象类,所以使用其子类simpledateformat
data 是表示特定的瞬间,精确到毫秒
simpledateformat的构造方法
-
simpledateformat
()
使用默认的日期格式符号
-
simpledateformat
(
stringpattern)
使用给定的模式日期格式符号
simpledateformat
的api
-
void
(
stringpattern)
将指定模式字符串应用于此日期格式
-
stringbuffer
format(
datedate)
将指定的日期以指定的字符串格式输出
-
date
parse(
stringtext)
将指定字符串解析成时间(date)
y 年 m 月 d 日
h
时 在上午或下午 (1~12)
h
时 在一天中 (0~23)
m
分 s 秒 s 毫秒 e 星期
d
一年中的第几天
f 一月中第几个星期几
w 一年中第几个星期
w 一月中第几个星期
a 上午 / 下午 标记符
k 时 在一天中 (1~24)
k 时 在上午或下午 (0~11)
z 时区
示例:
1 1、将当前时间毫秒值转换成指定时间字符串 2 // 创建时间格式字符串 3 string str = "yyyy-mm-dd hh:mm:ss 一年中的第d天---一月中第f个星期e---一年中第w个星期"; 4 simpledateformat dateformat = new simpledateformat(str); 5 /** 6 * 使用system.currenttimemillis()获取当前时间的毫秒值 7 * 将时间毫秒值转换成指定格式的时间日期 8 * 打印结果:2018-11-26 09:49:30 一年中的第330天---一月中第4个星期星期一---一年中第48个星期 9 */ 10 system.out.println(dateformat.format(system.currenttimemillis())); 11 12 13 14 2、将指定时间字符串转换成时间 15 // 创建时间字符串 16 string str1 = "2018年11月26日"; 17 simpledateformat simpledateformat = new simpledateformat("yyyy年mm月dd日"); 18 // 将时间字符串以指定格式,转换成时间 19 date date = simpledateformat.parse(str1); 20 // 打印结果:mon nov 26 00:00:00 cst 2018 21 system.out.println(date); 22 23
date api
-
long
gettime()
获取当时时间的毫秒值,和
system.currenttimemillis() 类似
system
system api
-
void
arraycopy
(
objectsrc, int srcpos,
objectdest, int destpos, int length)
从指定源数组中复制一个数组,复制从指定位置开始,到目标数组的指定位置结束 -
long
currenttimemillis()
返回当前时间的毫秒值
-
void
exit(int status)
终止当前正在运行的java 虚拟机
-
void
gc()
运行垃圾回收器
示例:
1 // 创建两个数组,一个有内容,一个长度为10的数组 2 int[] arr = {1,2,3,4,5,6,7,8,9}; 3 int[] arr1 =new int[10]; 4 // 调用system 中的arraycopy 方法,复制arr数组到arr1中 5 system.arraycopy(arr, 0, arr1, 0, arr.length); 6 // 打印结果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 0] 7 system.out.println(arrays.tostring(arr1));
random
random 类 是生成随机数(伪随机数)的类。在进行随机时,随机算法的起源数字称之为种子数,在种子数的基础上进行一定的变换,从而产生需要的随机数字。
相同种子数的random 对象,相同次数生成的随机数数字是完全相同的。也就是说,两个种子数完全相同的random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。
random 的构造方法
random()
创建一个新的随机数生成器。
random(long seed)
使用单个 long
种子创建一个新的随机数生成器。
1 // 创建random 类,种子数相同 2 random random = new random(10); 3 random random1 = new random(10); 4 // 生成随机数 5 int i = random.nextint(); 6 int i1 = random1.nextint(); 7 // 打印结果 : -1157793070----1157793070 8 system.out.println(i+"---"+i1); 9 10 // 创建random 类,生成随机数,无种子数 11 random random = new random(); 12 random random1 = new random(); 13 // 生成随机数 14 int i = random.nextint(); 15 int i1 = random1.nextint(); 16 // 打印结果 : -1526132103----233068814 17 system.out.println(i+"---"+i1);
random 类的api
-
int next(int bits)
生成下一个伪随机数。 -
int nextint()
返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的int
值。 -
int nextint(int n)
返回一个伪随机数,范围从0-(n-1)之间 -
boolean nextboolean()
返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的boolean
值。 -
long nextlong()
返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的long
值。 -
double nextdouble()
返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0
和1.0
之间均匀分布的double
值。 -
float nextfloat()
返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0
和1.0
之间均匀分布的float
值。
示例:
1 random random = new random(); 2 // 获取 -3到7 之间的随机数,包含-3,不包含7 3 int nextint = random.nextint(10)-3; 4 // 打印结果 5 5 system.out.println(nextint);
scanner
scanner 是jdk1.5 之后添加的类。用于键盘输入内容
构造方法
-
scanner(inputstream source)
构造一个新的scanner
,它生成的值是从指定的输入流扫描的。 system.in (从键盘扫描) scanner(file source)
构造一个新的scanner
,它生成的值是从指定文件扫描的。
scanner api
-
string
next() -
nextline()
此扫描器执行当前行,并返回跳过的输入信息。 -
int nextint()
将输入信息的下一个标记扫描为一个 int。 -
nextdouble()
将输入信息的下一个标记扫描为一个 double。
示例:
1 // 创建scanner 类 2 scanner s = new scanner(system.in); 3 system.out.println("请输入数字"); 4 // 调用nextline() 方法,键盘输入 5 string line = s.nextline(); 6 // 调用nextline() 方法,键盘输入 7 string line2 = s.nextline(); 8 // 输出结果 9 system.out.println(line+line2); 10 11 // 创建scanner 类 12 scanner s1 = new scanner(system.in); 13 system.out.println("请输入数字"); 14 // 调用nextint() 方法,键盘输入整数 15 int line3 = s1.nextint(); 16 // 调用nextint() 方法,键盘输入整数 17 int line4 = s1.nextint(); 18 // 输出结果 19 system.out.println(line+line2);
注意:
scanner 中 next() 与 nextline() 的区别
next() : 只读取输入的值,到空格结束。它不能读取由两个空格或者符号隔开的单词。且光标定位到本行
nextline() : 读取输入的值,包括单词,所有空格以及符号。到回车键结束。且光标定位到下一行