Java基础_常用类

常用类

Math

java中的+,-,*,/和%等基本算术运算符不能进行更复杂的数学运算,例如三角函数,指数运算,对数运算等。

1.静态常量

Math.E:自然对数e

Math.PI:圆周率Π

2.最大(小)值,绝对值

Math.abs:绝对值

Math.max:最大值

Math.min:最小值

3.取整运算

Math.ceil:返回大于或等于当前值的最小整数

Math.floor:返回小于或等于当前值的最大整数

Math.rint:返回最接近当前值的整数值,如果存在两个同样接近的整数,则取偶数

Math.round:将当前值加上1/2后返回与参数最近的整数

4.三角函数

Math.sin,Math.cos,Math.tan,Math.asin,Math.acos,Math.atan

Math.toDegrees:将弧度转换为近似相等的角度

Math.toRadians:将角度转换为近似相等的弧度

5.指(对)数运算

Math.exp(double a):e的a次幂

Math.pow(double a,double b):a的b次幂

Math.sqrt(double a):a的平方根

Math.cbrt(double a):a的立方根

Math.log(double a):a的自然对数,lna

Math.log(double a):10为底a的对数

Random

Math.random()只能产生double类型的0~1的随机数,而Random类提供丰富的随机数生成方法,可以产生boolean,int,long,float,byte数组以及double类型的随机数。

1.Random的构造函数

//制定一个种子数创建对象
public Random(longl seed);
//使用当前系统时间对应的相对时间有关的数字作为种子数
public Random();

2.Random的种子数作用
种子数只是随机算法的起源数字,和生成的随机数字的区间无关。

Random类中实现的随机算法是伪随机,即有规则的随机,在种子数的基础上进行一定的变换,且相同的种子数的Random对象,相同次数生成的随机数字是完全相同的。

Random ran1 = new Random(100);
Random ran2 = new Random(100);
for(int i=0;i<5;i++) {
	int nextInt = ran1.nextInt();
	int nextInt2 = ran2.nextInt();
}

以上nextIntnextInt2相等。

DecimalFormat

符号说明
0显示数字,如果位数不够则补 0
#显示数字,如果位数不够不发生变化
.小数分隔符
-减号
,组分隔符
E分隔科学记数法中的尾数和小数
%前缀或后缀,乘以 100 后作为百分比显示
?乘以 1000 后作为千进制货币符显示。用货币符号代替。如果双写,用国际货币符号代替; 如果出现在一个模式中,用货币十进制分隔符代替十进制分隔符

BigInteger/BigDecimal

BigInteger支持任意精度的整数

方法名称说明
add(BigInteger val)做加法运算
subtract(BigInteger val)做减法运算
multiply(BigInteger val)做乘法运算
divide(BigInteger val)做除法运算
remainder(BigInteger val)做取余数运算
divideAndRemainder(BigInteger val)做除法运算,返回数组的第一个值为商,第二个值为余数
pow(int exponent)做参数的 exponent 次方运算
negate()取相反数
shiftLeft(int n)将数字左移 n 位,如果 n 为负数,则做右移操作
shiftRight(int n)将数字右移 n 位,如果 n 为负数,则做左移操作
and(BigInteger val)做与运算
or(BigInteger val)做或运算
compareTo(BigInteger val)做数字的比较运算
equals(Object obj)当参数 obj 是 Biglnteger 类型的数字并且数值相等时返回 true, 其他返回 false
min(BigInteger val)返回较小的数值
max(BigInteger val)返回较大的数值

BigDecimal实现精度运算的本质是,将小数转为去除小数点后的整数 + 小数点所在的位置

方法名称说明
add(BigDecimal val)做加法运算
subtract(BigDecimal val)做减法运算
multiply(BigDecimal val)做乘法运算
divide(BigDecimal val,int scale,int roundingMode)做除法运算

其中,divide()方法的3 个参数分别表示除数、商的小数点后的位数和近似值处理模式。

处理模式说明
BigDecimal.ROUND_UP商的最后一位如果大于 0,则向前进位,正负数都如此
BigDecimal.ROUND_DOWN商的最后一位无论是什么数字都省略
BigDecimal.ROUND_CEILING商如果是正数,按照 ROUND_UP 模式处理;如果是负数,按照 ROUND_DOWN 模式处理
BigDecimal.ROUND_FLOOR与 ROUND_CELING 模式相反,商如果是正数,按照 ROUND_DOWN 模式处理; 如果是负数,按照 ROUND_UP 模式处理
BigDecimal.ROUND_HALF_ DOWN对商进行五舍六入操作。如果商最后一位小于等于 5,则做舍弃操作,否则对最后 一位进行进位操作
BigDecimal.ROUND_HALF_UP对商进行四舍五入操作。如果商最后一位小于 5,则做舍弃操作,否则对最后一位 进行进位操作
BigDecimal.ROUND_HALF_EVEN如果商的倒数第二位是奇数,则按照 ROUND_HALF_UP 处理;如果是偶数,则按 照 ROUND_HALF_DOWN 处理

Runtime

Runtime类封装了运行时的环境。每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接,应用程序也不能创建自己的 Runtime 类实例,但可以通过 getRuntime 方法获取当前Runtime运行时对象的引用,通过该对象可调用Runtime对象的方法去控制Java虚拟机的状态和行为。

方法说明
public static Runtime getRuntime()返回Runtime类的实例。
public void exit(int status)终止当前的虚拟机。
public void addShutdownHook(Thread hook)注册新的钩子线程。
public Process exec(String command)throws IOException在单独的进程中执行给定命令。
public int availableProcessors()返回编号。可用处理器的数量。
public long freeMemory()返回JVM中的可用内存量。
public long totalMemory()返回JVM中的总内存量。

System

1.静态成员变量

PrintStream out:标准输出流

//println方法是属于流类PrintStream的方法
System.out.println(data);

PrintStream err:标准的错误输出流,其语法与System.out类似,不需要提供参数就可以输出错误信息,也可以用来输出用户指定的其它信息,包括变量的值。

InputStream in:标准输入流

2.成员方法

arraycopy(Object src,int srcPos,Object dest,int destPos,int length):src表示源数组,srcPos表示从源数组中复制的起始位置,dest表示目标数组,destPos表示要复制到目标数组的起始位置,length表示复制的个数

currentTimeMillis():返回当前的计算机时间,为当前计算机时间与GMT时间(格里尼治时间)所差的毫秒数。一般用来测试程序执行时间

exit(int status):终止当前正在运行的Java虚拟机,status为0时表示正常退出,非零时表示异常退出

gc:请求系统进行垃圾回收,完成内存中垃圾清除

getProperty(String key):获取系统中属性名为key的属性对应的值

属性名属性说明
java.versionJava 运行时环境版本
java.homeJava 安装目录
os.name操作系统的名称
os.version操作系统的版本
user.name用户的账户名称
user.home用户的主目录
user.dir用户的当前工作目录

Date

Date 类表示系统特定的时间戳,可以精确到毫秒,Date 对象表示时间的默认顺序是星期、月、日、小时、分、秒、年。

Date():该构造方法表示当前时间

Date(long date):该构造方法表示从GMT时间(格林尼治时间)1970 年 1 月 1 日 0 时 0 分 0 秒开始经过参数 date 指定的毫秒数后的时间。

方法描述
boolean after(Date when)判断此日期是否在指定日期之后
boolean before(Date when)判断此日期是否在指定日期之前
int compareTo(Date anotherDate)比较两个日期的顺序
boolean equals(Object obj)比较两个日期的相等性
long getTime()返回自 1970 年 1 月 1 日 00:00:00 GMT 以来,此 Date 对象表示的毫秒数
String toString()把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy。 其中 dow 是一周中的某一天(Sun、Mon、Tue、Wed、Thu、Fri 及 Sat)

Calender

通过Calendar.getInstance() 方法来获得 Calendar类的对象,该对象已由当前日期和时间初始化。

该类为特定瞬间与 YEAR、MONTH、DAY_OF—MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(如获得下星期的日期) 提供了一些方法。

方法描述
void add(int field, int amount)根据日历的规则,为给定的日历字段 field 添加或减去指定的时间量 amount
boolean after(Object when)判断此 Calendar 表示的时间是否在指定时间 when 之后,并返回判断结果
boolean before(Object when)判断此 Calendar 表示的时间是否在指定时间 when 之前,并返回判断结果
void clear()清空 Calendar 中的日期时间值
int compareTo(Calendar anotherCalendar)比较两个 Calendar 对象表示的时间值(从格林威治时间 1970 年 01 月 01 日 00 时 00 分 00 秒至现在的毫秒偏移量),大则返回 1,小则返回 -1,相等返回 0
int get(int field)返回指定日历字段的值
int getActualMaximum(int field)返回指定日历字段可能拥有的最大值
int getActualMinimum(int field)返回指定日历字段可能拥有的最小值
int getFirstDayOfWeek()获取一星期的第一天。根据不同的国家地区,返回不同的值
static Calendar getInstance()使用默认时区和语言坏境获得一个日历
static Calendar getInstance(TimeZone zone)使用指定时区和默认语言环境获得一个日历
static Calendar getInstance(TimeZone zone, Locale aLocale)使用指定时区和语言环境获得一个日历
Date getTime()返回一个表示此 Calendar 时间值(从格林威治时间 1970 年 01 月 01 日 00 时 00 分 00 秒至现在的毫秒偏移量)的 Date 对象
long getTimeInMillis()返回此 Calendar 的时间值,以毫秒为单位
void set(int field, int value)为指定的日历字段设置给定值
void set(int year, int month, int date)设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值
void set(int year, int month, int date, int hourOfDay, int minute, int second)设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、 MINUTE 和 SECOND 的值
void setFirstDayOfWeek(int value)设置一星期的第一天是哪一天
void setTimeInMillis(long millis)用给定的 long 值设置此 Calendar 的当前时间值

Calendar类中定义了许多常量

Calendar.YEAR:年份

Calendar.MONTH:月份

Calendar.DATE:日期

Calendar.DAY_OF_MONTH:与上面的字段意义相同

Calendar.HOUR:12小时制的小时

Calendar.HOUR_OF_DAY:24 小时制的小时

Calendar.MINUTE:分钟

Calendar.SECOND:秒

Calendar.DAY_OF_WEEK:星期几

DateFormat/SimpleDateFormat

1.通过DateFormat.getInstance() 方法来获得 DateFormat类的对象。

方法描述
String format(Date date)将 Date 格式化日期/时间字符串
Calendar getCalendar()获取与此日期/时间格式相关联的日历
static DateFormat getDateInstance()获取具有默认格式化风格和默认语言环境的日期格式
static DateFormat getDateInstance(int style)获取具有指定格式化风格和默认语言环境的日期格式
static DateFormat getDateInstance(int style, Locale locale)获取具有指定格式化风格和指定语言环境的日期格式
static DateFormat getDateTimeInstance()获取具有默认格式化风格和默认语言环境的日期/时间 格式
static DateFormat getDateTimeInstance(int dateStyle,int timeStyle)获取具有指定日期/时间格式化风格和默认语言环境的 日期/时间格式
static DateFormat getDateTimeInstance(int dateStyle,int timeStyle,Locale locale)获取具有指定日期/时间格式化风格和指定语言环境的 日期/时间格式
static DateFormat getTimeInstance()获取具有默认格式化风格和默认语言环境的时间格式
static DateFormat getTimeInstance(int style)获取具有指定格式化风格和默认语言环境的时间格式
static DateFormat getTimeInstance(int style, Locale locale)获取具有指定格式化风格和指定语言环境的时间格式
void setCalendar(Calendar newCalendar)为此格式设置日历
Date parse(String source)将给定的字符串解析成日期/时间

格式化样式主要通过DateFormat常量设置

SHORT:如18-10-15 上午9:30

FULL:如2018年10月15日 星期一 上午09时30分43秒 CST

MEDIUM:如2018-10-15 9:30:43

LONG:如2018年10月15日 上午09时30分43秒

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

SimpleDateFormat():默认格式,默认语言环境构造

SimpleDateFormat(String pattern):指定格式, 默认语言环境构造

SimpleDateFormat(String pattern,Locale locale):指定格式,指定语言环境构造

日期/时间格式中的字母及其含义与示例:

字母含义示例
y年份。一般用 yy 表示两位年份,yyyy 表示 4 位年份使用 yy 表示的年扮,如 11; 使用 yyyy 表示的年份,如 2011
M月份。一般用 MM 表示月份,如果使用 MMM,则会 根据语言环境显示不同语言的月份使用 MM 表示的月份,如 05; 使用 MMM 表示月份,在 Locale.CHINA 语言环境下,如“十月”;在 Locale.US 语言环境下,如 Oct
d月份中的天数。一般用 dd 表示天数使用 dd 表示的天数,如 10
D年份中的天数。表示当天是当年的第几天, 用 D 表示使用 D 表示的年份中的天数,如 295
E星期几。用 E 表示,会根据语言环境的不同, 显示不 同语言的星期几使用 E 表示星期几,在 Locale.CHINA 语 言环境下,如“星期四”;在 Locale.US 语 言环境下,如 Thu
H一天中的小时数(0~23)。一般用 HH 表示小时数使用 HH 表示的小时数,如 18
h一天中的小时数(1~12)。一般使用 hh 表示小时数使用 hh 表示的小时数,如 10 (注意 10 有 可能是 10 点,也可能是 22 点)
m分钟数。一般使用 mm 表示分钟数使用 mm 表示的分钟数,如 29
s秒数。一般使用 ss 表示秒数使用 ss 表示的秒数,如 38
S毫秒数。一般使用 SSS 表示毫秒数使用 SSS 表示的毫秒数,如 156
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值