System类的概述和方法使用
System类的概述:
System 类包含一些有用的类字段和方法。它不能被实例化。
成员方法:
- public static void gc() ------- 运行垃圾回收器。
finalize()方法是一个类对象在销毁时会被调用的方法,垃圾收集器在发现这个类对象不会再被使用时就会回收内存,也就是销毁该对象,从而finalize()被调用了。JDK带的垃圾回收算法就会调用该对象的销毁方法来回收了。
public static void main(String[] args) {
new demo();
System.gc(); //运行垃圾回收器,相当于呼喊保洁阿姨
}
class demo {
@Override
public void finalize(){ //对方法的重写
System.out.println("垃圾被回收");
}
}
- public static void exit(int status)
终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止。
System.exit(1); 非0状态是异常终止,退出jvm
- public static long currentTimeMillis()
返回以毫秒为单位的当前时间。
long start = System.currentTimeMillis();
for(int i = 0; i < 1000; i++) {
System.out.println("*"); //运行此循环所用的时间 毫秒
}
long end = System.currentTimeMillis();
System.out.println(end-start);
}
- pubiic static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
src - 源数组。
srcPos - 源数组中的起始位置。
dest - 目标数组。
destPos - 目标数据中的起始位置。
length - 要复制的数组元素的数量
int[] arc = {12,45,23,56,34,23,12,65};
int[] a = new int[8];
System.arraycopy(arc, 0, a, 0, arc.length);
for(int i = 0; i < 8; i++) {
System.out.print(a[i] + " ");
}
输出
12 45 23 56 34 23 12 65
Math类概述和方法使用
Math类的概述
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
Math方法的使用
- public static int abs(int a)
返回 int 值的绝对值。如果参数为非负数,则返回该参数。如果参数为负数,则返回该参数的相反数。 斜体也可变为float,double等类型
- public static double ceil(double a)
返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。
- public static double floor(double a)
返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数
- public static int max(int a,int b) (min也一样)
返回两个 int 值中较大的一个。 也可以是其他类型
- public static double pow(double a,double b)
返回第一个参数的第二个参数次幂的值。
- public static double random()
返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
-
public static int round(float a)
返回最接近参数的 int。 -
public static int round(double a)
返回最接近参数的 long。 -
public static double sqrt(double a)
返回正确舍入的 double 值的正平方根。
System.out.println(Math.pow(2, 0.5));//1.4142135623730951
System.out.println(Math.abs(-2));//2
System.out.println(Math.ceil(13.3));//14.0
System.out.println(Math.PI);//3.141592653589793
System.out.println(Math.floor(13.3));//13.0
System.out.println(Math.min(-10, 1));//-10
System.out.println((int)(Math.random()*100));//0-100之间的随机数,包含0不包含100
System.out.println(Math.round(18.8f)); //四舍五入 19
System.out.println(Math.sqrt(16));//4.0
Random类的概述和方法使用
Random类的概述
此类用于产生随机数如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
构造方法
- public Random()
- public Random(long seed) 使用单个 long 种子创建一个新的随机数生成器。
成员方法 - public int nextInt()
返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。 - public int nextInt(int n)
返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。
Random r = new Random();
for(int i = 0; i < 5; i++) {
System.out.println(r.nextInt(100)); //生成0-100之间的随机数
}
BigInteger类的概述和方法使用
BigInteger的概述
可以让超过Integer范围内的数据进行运算.其在java.math 包下,使用时需要导包
构造方法
-
public BigInteger(String val)
将 BigInteger 的十进制字符串表示形式转换为 BigInteger。
成员方法 -
public BigInteger add(BigInteger val) 返回其值为 (this + val) 的 BigInteger。
-
public BigInteger subtract(BigInteger val)
返回其值为 (this - val) 的 BigInteger。 -
public BigInteger multiply(BigInteger val)
返回其值为 (this * val) 的 BigInteger。 -
public BigInteger divide(BigInteger val)
返回其值为 (this / val) 的 BigInteger。 -
public BigInteger[] divideAndRemainder(BigInteger val)
返回包含 (this / val) 后跟 (this % val) 的两个 BigInteger 的数组。
BigInteger a = new BigInteger("100");
BigInteger b = new BigInteger("2");
System.out.println(a.add(b));
System.out.println(a.subtract(b));
System.out.println(a.multiply(b));
System.out.println(a.divide(b));
BigInteger[] c = a.divideAndRemainder(b);
for(int i = 0; i < c.length; i++) {
System.out.println(c[i]);
}
BigDecimal类的概述和方法使用
BigDecimal的概述
于在运算的时候,float类型和double很容易丢失精度,所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal。
不可变的、任意精度的有符号十进制数。
在 java.math 包下 使用时要导包
构造方法
- public BigDecimal(String val)
成员方法 - public BigDecimal add(BigDecimal augend) +
- public BigDecimal subtract(BigDecimal subtrahend) -
- public BigDecimal multiply(BigDecimal multiplicand) *
- public BigDecimal divide(BigDecimal divisor) /
BigDecimal bd1 = new BigDecimal("2.0"); //这种比较准确
BigDecimal bd2 = new BigDecimal("1.1");
System.out.println(bd2.subtract(bd1)); //-0.9
System.out.println(bd1.subtract(bd2));//0.9
System.out.println(bd1.multiply(bd2));//2.2
System.out.println(bd2.divide(bd1));//0.55
BigDecimal a = BigDecimal.valueOf(2.0);
BigDecimal b = BigDecimal.valueOf(1.1);
System.out.println(a.subtract(b)); //这种也比较准确
Date类的概述和方法使用
Date类的概述
类 Date 表示特定的瞬间,精确到毫秒。
构造方法
- public Date()
- public Date(long date)使用给定毫秒时间值构造一个 Date 对象。
成员方法
public long getTime()
public void setTime(long time)
import java.util.Date;
public class Demon6_Date {
public static void main(String[] args) {
demon1();
// demon();
Date a = new Date();
a.setTime(1000); //设置毫秒值,改变时间对象
System.out.println(a);
}
private static void demon() {
Date a = new Date();
System.out.println(a.getTime());//通过时间对象获取毫秒值
System.out.println(System.currentTimeMillis());//通过系统类的方法获取毫秒值
}
private static void demon1() {
Date a = new Date();
System.out.println(a);
Date b = new Date(0);
System.out.println(b);
}
}
SimpleDateFormat类实现日期和字符串的相互转换
DateFormat类的概述
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。是抽象类,所以使用其子SimpleDateFormat
SimpleDateFormat构造方法
使用时需导包 java.text包下
- public SimpleDateFormat() 用默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
- public SimpleDateFormat(String pattern) 用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
成员方法 + - public final String format(Date date)
将一个 Date 格式化为日期/时间字符串 - public Date parse(String source)
解析字符串的文本,生成 Date。
import java.text.DateFormat;
public class Demon7_SimpleDateFomat {
public static void main(String[] args) throws ParseException {
demo();
// demon1();
// demo3();
// String a = "2000年12月31日 08:08:08";
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
// Date d = sdf.parse(a); //将时间字符串转化成日期对象
// System.out.println(d);
//Sun Dec 31 08:08:08 CST 200
}
private static void demo3() {
Date a = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
System.out.println(sdf.format(a)); //将日期对象转化为字符串
//2019年06月15日 17:45:44
}
private static void demon1() {
Date a = new Date();
SimpleDateFormat sdf = new SimpleDateFormat();
System.out.println(sdf.format(a));//2019/6/15 下午5:48
}
private static void demo() {
DateFormat a = DateFormat.getDateInstance();
System.out.println(a);//java.text.SimpleDateFormat@3249f37
}
}