Java基础_09_Java常见类

13 篇文章 0 订阅


_____Java常见类_____


System类

概述:

System 类包含一些有用的类字段和方法。它不能被实例化。 
在 System 类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。 

常见字段:

static PrintStream err 
          “标准”错误输出流。 
static InputStream in 
          “标准”输入流。 
static PrintStream out 
          “标准”输出流。 
public class Demo {
	public static void main(String[] args) throws IOException {
		//默认控制台输出
		System.out.println("out");
		//默认控制台输出
		System.err.println("err");
		//定义一个字节数组接受输入数据
		byte[] b = new byte[1024];
		//默认键盘输入,将输入的数据读入b数组中
		System.in.read(b, 0, 1024);
		//将键盘输入的数据打印在控制台上
		String str = new String(b);
		System.out.println(str);
	}
}
/*
结果:
out
err
in
in
*/

常见方法:

复制数组:

static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 
          从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。 
集合操作类底层就是调用这个方法。

返回当前时间:

static long currentTimeMillis() 
          返回以毫秒为单位的当前时间与1970年1月1日午夜之间的时间差。 

终止Java虚拟机:

static void exit(int status) 
          终止当前正在运行的 Java 虚拟机。 

调用垃圾回收器:

static void gc() 
          运行垃圾回收器。 

获取系统的环境变量:

static Map<String,String> getenv() 
          返回一个不能修改的当前系统环境的字符串映射视图。 
static String getenv(String name) 
          获取指定的环境变量值。 
public class Demo {
	public static void main(String[] args) {
		//获取所有的环境变量,返回Map集合
		for(Map.Entry<String, String> m : System.getenv().entrySet()) {
			System.out.println(m.getKey()+":"+m.getValue());
		}
	}
}
/*
结果:
JAVA_HOME:D:\Program Files\Java\jdk1.8.0_51
SESSIONNAME:Console
ALLUSERSPROFILE:C:\ProgramData
...
*/
public class Demo {
	public static void main(String[] args) {
		//获取指定环境变量名的变量值
		String str = System.getenv("JAVA_HOME");
		System.out.println(str);
	}
}
/*
结果:
D:\Program Files\Java\jdk1.8.0_51
*/

获取和设置系统属性:

static Properties getProperties() 
          确定当前的系统属性集合。 
static String getProperty(String key) 
          获取指定键指示的系统属性。 
static String getProperty(String key, String def) 
          获取用指定键描述的系统属性,默认值为def。 
static String setProperty(String key, String value) 
          设置指定键指示的系统属性。
public class Demo {
	public static void main(String[] args) {
		//获取系统属性,包括JVM和操作系统等等,返回类型为Hashtable的子类
		Properties p = System.getProperties();
		for(Entry<Object, Object> m : p.entrySet()) {
			System.out.println(m.getKey()+"::"+m.getValue());
		}
		
	}
}
/*
结果:
java.runtime.name::Java(TM) SE Runtime Environment
sun.boot.library.path::D:\Program Files\Java\jdk1.8.0_51\jre\bin
user.country::CN
os.name::Windows 7
...
*/

Runtime类

概述:

每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。
应用程序不能创建自己的 Runtime 类实例,只能通过getRuntime方法获取对象(单例模式)

常见方法:

执行系统命令:

Process exec(String command) 
          在单独的进程中执行指定的字符串命令。 
public class Demo {
	public static void main(String[] args) {
		Runtime runtime = Runtime.getRuntime();
		//开启新进程调用系统的计算器程序,并且返回此进程对象
		Process pro = runtime.exec("calc.exe");
		//等待3秒后调用计算器进程对象的destroy方法杀掉进程
		Thread.sleep(3000);
		pro.destroy();
	}
}

Date类

概述:

处理时间的类,但是在JDK1.1以后已经被Calendar取代

常见方法:

比较时间:

boolean after(Date when) 
          测试此日期是否在指定日期之后。 
boolean before(Date when) 
          测试此日期是否在指定日期之前。 
int compareTo(Date anotherDate) 
          比较两个日期的顺序。 
boolean equals(Object obj) 
          比较两个日期的相等性。 

修改时间:

void setTime(long time) 
          设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。 
long getTime() 
          返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 
public class Demo {
	public static void main(String[] args) {
		//默认创建对象为创建时的时间
		Date date = new Date();
		//也可以创建时设置时间单位毫秒,起始于1970年01月01日 08:00:00(亚洲时区)
		Date date2 = new Date(2000);
		//定义一个格式化时间的对象
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  hh:mm:ss");
		//直接打印Date
		System.out.println(date);
		//打印格式化后的时间
		System.out.println(sdf.format(date));
		System.out.println(sdf.format(date2));
		//判断date是否是在date2之后的日期
		System.out.println(date.after(date2));
		//判断date是否是在date2之前的日期
		System.out.println(date.before(date2));
		//比较date是否大于date2,大于返回1,等于返回0,小于返回-1
		System.out.println(date.compareTo(date2));
	}
}
/*
结果:
Mon Jan 18 21:48:56 CST 2016
2016年01月18日  09:48:56
1970年01月01日  08:00:02
true
false
1
*/

Calendar类

概述:

Calendar 类是一个抽象类,可以通过getInstance来获取实例
注意:月份是从0开始的

常见方法:

获取日期:

int get(int field) 
          返回给定日历字段的值。 
Date getTime() 
          返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。 
public class Demo {
	public static void main(String[] args) {
		//默认时间为创建时的时间
		Calendar c = Calendar.getInstance();
		//获取月,因为是0开始,所以+1
		System.out.println(c.get(Calendar.MONTH)+1);
		//获取年
		System.out.println(c.get(Calendar.YEAR));
		//格式化输出时间
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  hh:mm:ss");
		System.out.println(sdf.format(c.getTime()));
	}
}
/*
结果:
2016年01月18日  10:27:17
*/

设置日期:

void setTime(Date date) 
          使用给定的 Date 设置此 Calendar 的时间。 
void set(int year, int month, int date, int hourOfDay, int minute, int second) 
          设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。 
public class Demo {
	public static void main(String[] args) {
		Calendar c = Calendar.getInstance();
		c.set(2012, 10, 12, 23, 45, 36);
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  hh:mm:ss");
		System.out.println(sdf.format(c.getTime()));
	}
}
/*
结果:
2012年11月12日  11:45:36
*/

改变日期:

abstract  void add(int field, int amount) 
          根据日历的规则,为给定的日历字段添加或减去指定的时间量。 
public class Demo {
	public static void main(String[] args) {
		Calendar c = Calendar.getInstance();
		
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  hh:mm:ss");
		System.out.println(sdf.format(c.getTime()));
		//年份+1
		c.add(Calendar.YEAR, 1);
		System.out.println(sdf.format(c.getTime()));
		//天数+20,溢出部分会根据日历自动计算
		c.add(Calendar.DAY_OF_MONTH, 20);
		System.out.println(sdf.format(c.getTime()));
		//年份-3
		c.add(Calendar.YEAR, -3);
		System.out.println(sdf.format(c.getTime()));
	}
}
/*
结果:
2016年01月18日  10:51:32
2017年01月18日  10:51:32
2017年02月07日  10:51:32
2014年02月07日  10:51:32
*/

Math类

概述:

Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。 

常见字段:

static double E 
          比任何其他值都更接近 e(即自然对数的底数)的 double 值。 
static double PI 
          比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值。 
public class Demo {
	public static void main(String[] args) {
		System.out.println("E:"+Math.E);
		System.out.println("PI:"+Math.PI);
	}
}
/*
结果:
E:2.718281828459045
PI:3.141592653589793
*/

常见方法:

求绝对值(int为例):

static int abs(int a) 
          返回 int 值的绝对值。 
public class Demo {
	public static void main(String[] args) {
		int i = -1;
		System.out.println("abs:"+Math.abs(i));
	}
}
/*
结果:
abs:1
*/


求最值(int为例):

static int max(int a, int b) 
          返回两个 int 值中较大的一个。 
static int min(int a, int b) 
          返回两个 int 值中较小的一个。 
public class Demo {
	public static void main(String[] args) {
		System.out.println("max:"+Math.max(1, 2));
		System.out.println("min:"+Math.min(1, 2));
	}
}
/*
结果:
max:2
min:1
*/

取整:

static double floor(double a) 
          返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。 
static double ceil(double a) 
          返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。 
static double rint(double a) 
          四舍五入,返回浮点数类型值 
static long round(double a) 
          四舍五入,返回整数类型值
public class Demo {
	public static void main(String[] args) {
		double d = 1.456;
		System.out.println("ceil:"+Math.ceil(d));
		System.out.println("floor:"+Math.floor(d));
		System.out.println("rint:"+Math.rint(d));
		System.out.println("round:"+Math.round(d));
		
		d = 1.556;
		System.out.println("rint:"+Math.rint(d));
		System.out.println("round:"+Math.round(d));
	}
}
/*
结果:
ceil:2.0
floor:1.0
rint:1.0
round:1
rint:2.0
round:2
*/

次幂:

static double pow(double a, double b) 
          返回第一个参数的第二个参数次幂的值。 
static double sqrt(double a) 
          返回正确舍入的 double 值的正平方根。 
static double cbrt(double a) 
          返回 double 值的立方根。 
public class Demo {
	public static void main(String[] args) {
		//求2的3次方
		System.out.println(Math.pow(2, 3));
		//求2的-1次方
		System.out.println(Math.pow(2, -1));
		//求4的平方根
		System.out.println(Math.sqrt(4));
		//求8的立方根相当于求8的1/3次幂
		System.out.println(Math.cbrt(8));
		System.out.println(Math.pow(8, 1.0/3));
	}
}
/*
结果:
8.0
0.5
2.0
2.0
2.0
*/

随机数:

static double random() 
          返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。 
public class Demo {
	public static void main(String[] args) {
		//包含0不包含1的0-1的值
		for(int i=0; i<3; i++)
			System.out.println(Math.random());
	}
}
/*
结果:
0.2762989183275707
0.4852546433556253
0.6622856581850736
*/

其他数学方法:

static double acos(double a) 
          返回一个值的反余弦;返回的角度范围在 0.0 到 pi 之间。 
static double asin(double a) 
          返回一个值的反正弦;返回的角度范围在 -pi/2 到 pi/2 之间。 
static double atan(double a) 
          返回一个值的反正切;返回的角度范围在 -pi/2 到 pi/2 之间。 
static double atan2(double y, double x) 
          将矩形坐标 (x, y) 转换成极坐标 (r, theta),返回所得角 theta。 
static double cbrt(double a) 
          返回 double 值的立方根。 
static double ceil(double a) 
          返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值