其他类API
来源:互联网 发布:全聚合网络电视电脑版 编辑:程序博客网 时间:2024/06/08 07:52
System类
System类位于java.lang包中,系统级的很多属性和控制方法都放置在该类的内部。
由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类。其内部的成员变量和成员方法也都是static的。
1. 成员变量
System类内部包含in、out和err三个成员变量,分别代表标准输入流(键盘输入),标准输出流(显示器)和标准错误输出流(显示器)。
2. 成员方法
long currentTimeMillis() 获取当前时间的毫秒值(当前时间与 协调世界时1970.1.1日午夜之间的时间差)。 可以用来获取一段代码的运行时间。
public static Properties getPropertis() 确定当前的系统属性。
代码演示:
package p1.otherapi;import java.util.Properties;import java.util.Set;public class SystemDemo { //这句语句在任何系统上都能获取当前系统的回车符来实现在java程序中的换行(java的跨平台性) private static final String LINE_SEPARATOR=System.getProperty("line.separator");//根据指定键获取值 public static void main(String[] args) { /* * System类的方法和属性都是静态的。 常见方法: long currentTimeMillis() 获取当前时间的毫秒值(当前时间与 协调世界时1970.1.1日午夜之间的时间差) 可以用来获取一段代码的运行时间 public static Properties getPropertis() 确定当前的系统属性 * */// currentimemillis(); System.out.println("hello"+LINE_SEPARATOR+"world");// getproperties(); //给系统设置一些属性信息。这些信息是全局的,其他程序都可以使用。// System.setProperty("myclasspath","c:\myclass" ); } public static void currentimemillis() { long l1=System.currentTimeMillis();//1509675688852 System.out.println(l1); System.out.println(l1/1000);//秒 以此类推再除以60为分... long l2=1509675688852l; long l3=System.currentTimeMillis(); System.out.println(l3-l2); } public static void getproperties(){ //获取系统的属性信息,并存储到了Properties集合中 /* properties集合中存储的都是String类型的键和值。 最好使用它自己的存储和取出方法来完成元素的操作。 */ Properties prop=System.getProperties(); Set<String> nameSet=prop.stringPropertyNames(); for(String name:nameSet){ String value=prop.getProperty(name); System.out.println(name+"::"+value); } }}
还有一些其他方法:
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 数组拷贝,也就是将一个数组中的内容复制到另外一个数组中的指定位置,由于该方法是native方法,所以性能上比使用循环高效。
public static void exit(int status) 退出程序。
public static void gc() 进行垃圾回收。至于系统是否立刻回收,则取决于系统中垃圾回收算法的实现以及系统执行时的情况。
Runtime类
Runtime类封装了运行时的环境。每个 Java 应用程序都有一个Runtime类实例,使应用程序能够与其运行的环境相连接。
一般不能实例化一个Runtime对象,应用程序也不能创建自己的 Runtime 类实例,但可以通过 getRuntime 方法获取当前Runtime运行时对象的引用。
一旦得到了一个当前的Runtime对象的引用,就可以调用Runtime对象的方法去控制Java虚拟机的状态和行为。
当Applet和其他不被信任的代码调用任何Runtime方法时,常常会引起SecurityException异常。对于Process类的实例主要作用是创建一个可以管理的进程,并对它进行管理。Process类还有几个方法分别是destroy() 杀掉子进程、exitValue()返回子进程的出口值、getErrorStream()获取子进程的错误流。
代码示例:
public class RuntimeDemo { public static void main(String[] args) throws IOException, InterruptedException { /* 每一个java应用程序都有一个Runtime类实例,是应用程序能够与其运行的环境相连接。 可以通过getRuntime方法获取当前运行时。 应用程序不能创建自己的Runtime类实例。 Runtime:没有构造方法摘要,说明该类不可以创建对象。 又发现还有非静态的方法,说明该类应该提供静态的返回该类对象的方法。 而且只有一个,说明Runtime类使用了单例设计模式 * * */ Runtime r=Runtime.getRuntime(); //excute:执行 xxx.exe r.exec("notepad.exe"); r.exec("notepad.exe C:\\Users\\Administrator\\Desktop\\文档1.txt"); r.exec("C:\\Program Files (x86)\\Tencent\\QQ\\Bin\\QQScLauncher.exe"); //关闭Runtime类开启的进程 Process p=r.exec("notepad.exe"); Thread.sleep(5000); p.destroy(); }}
Math类
在Math类中提供了众多的数学函数方法,主要包括三角函数方法,指数函数方法,取整函数方法,取最大值、最小值以及平均值函数方法,这些方法都被定义为static形式,可以用如下形式调用:
Math.数学方法
在Math类中除了函数犯法外还存在一些常用数学常量,如PI,E等:
Math.PIMath.E
常用数学运算方法:
1. 三角函数方法
public static double sin(double a):返回角的三角正弦。类似的还有cos、tan、asin(反正弦)、acos、atan。以及toRadians(角度转弧度)、toDegrees(弧度转角度)。
- 指数函数方法
public static double exp(double a):获取e的a次方。类似的还有Math.log(),Math.log10()是对数函数;Math.pow(a,b)是以a为底b为指数的值;Math.sqrt() 是开根号。
- 取整函数方法
public static double ceil(double a):返回大于等于参数的最小整数;floor:返回小于等于参数的最大整数rint:返回与参数最接近的整数,如果两个同为整数且同样接近,则结果为偶数。public static int round(float a):将参数加上0.5后返回与参数最近的整数public static long round(double a):将参数加上0.5后返回与参数最近的整数,然后强制转换为长整型。
- 取最大值、最小值、绝对值函数方法
max、min、abs:返回值类型视需求决定。 - 随机数方法
生成随机数取值范围是0.0到1.0的double型数值。也可以用简单的表达式生成任意范围的随机数例如:m+(int)(Math.random()*n) 返回m到m+n(不包括m+n)之间的一个随机整数。
除了Math类中的random()方法可以获取随机数外,java还提供了一个乐意获取随机数的方式,就是java.util.Random类。可以通过实例化一个Random对象来创建一个随机数生成器。
Random r=new Random();
以这种方式实例化对象时,java编译器以系统当前时间作为随机数生成器的种子。
也可以在实例化Random对象的时候,设置随机数生成器的种子:
Random r=new Random(seedValue);
Random获取各种类型的随机数的方法:
public int nextInt():返回一个随机整数,类似的还有nextLong(),nextBoolean(),nextFloat(),nextDouble(),nextGaussian()public int nextInt(int n):返回一个大于等于0且小于n的随机整数。
Date类
在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理。
Date类表示特定的瞬间,精确到毫秒。
创建Date对象
1. public Date()——分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
2. public Date(long date)——根据给定的毫秒值创建日期对象。
日期对象和毫秒值之间的转换
日期对象–>毫秒值:
通过getTime方法可以将一个日期类型转换为long类型的毫秒值。
毫秒值–>日期对象:
1. 可以通过构造函数public Date(long date)将毫秒值转为日期类型。
2. 通过public void setTime(long time)方法。
对对象进行格式化
日期对象转换为日期格式的字符串:
将日期对象转换为日期格式的字符串使用的是DateFormat类中的format方法。
日期格式的字符串转换为日期对象:
使用的是DateFormat类中的parse()方法。
方法演示:
public class DateDemo { public static void main(String[] args) throws ParseException {// demo_1();// methodDemo_2(); methodDemo_3(); } /** 将日期格式的字符串-->日期对象 使用的是DateFormat类中的parse()方法 * @throws ParseException */ private static void methodDemo_3() throws ParseException {// String str_date="2017-11-3";// DateFormat dateFormat=DateFormat.getDateInstance();// String str_date="2017年11月3日";// DateFormat dateFormat=DateFormat.getDateInstance(DateFormat.LONG); String str_date="2017--11--3"; DateFormat dateFormat=new SimpleDateFormat("yyyy--MM--dd"); Date date=dateFormat.parse(str_date); System.out.println(date); } /** 对对象进行格式化 将日期对象-->日期格式的字符串 使用的是DateFormat类中的format方法 * */ public static void methodDemo_2() { Date date=new Date(); //获取日期格式对象,具备着默认的格式风格.FULL,LONG等可以指定风格// DateFormat dateFormat=DateFormat.getDateInstance(DateFormat.LONG);// DateFormat dateFormat=DateFormat.getDateInstance(DateFormat.FULL);// DateFormat dateFormat=DateFormat.getInstance();// DateFormat dateFormat=DateFormat.getDateTimeInstance(); DateFormat dateFormat=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); //风格是自定义的 dateFormat=new SimpleDateFormat("yyyy---MM--dd"); String str_date=dateFormat.format(date); System.out.println(str_date); } /** 日期对象和毫秒值之间的转换 毫秒值-->日期对象 1,通过Date对象的构造方法 new Date(timeMillis); 2.还可以通过setTime设置 因为可以通过Date对象的方法对该日期的各个字段(年月日等)进行操作 日期对象-->毫秒值 1.getTime方法 因为可以通过具体数值进行运算 * */ public static void demo_1() { long time =System.currentTimeMillis(); System.out.println(time);//1509701667787 Date date=new Date(); System.out.println(date);//Fri Nov 03 17:34:27 CST 2017 Date date2=new Date(1509675688852l); System.out.println(date2); }}
Date类小练习:
“2017-11-3”到”2017-11-11”中间有多少天?
思路:
两个日期相减,必须要有两个可以进行减法运算的数。 能减的可以是毫秒值。
如何获取毫秒值:通过date对象。
如何获取date对象:可以将字符串转成date对象。
步骤:
1.将日期格式的字符串转成Date对象;
2.将Date对象转成毫秒值;
3.相减,再变成天数。
代码:
public class DateTest { public static void main(String[] args) throws ParseException { String str_date1="2017-11-3"; String str_date2="2017-11-11"; test(str_date1,str_date2); } public static void test(String str_date1,String str_date2) throws ParseException { //1.将日期字符串转成日期对象 //定义日期格式对象 DateFormat dateFormat=DateFormat.getDateInstance(); //DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd"); Date date1=dateFormat.parse(str_date1); Date date2=dateFormat.parse(str_date2); long time1=date1.getTime(); long time2=date2.getTime(); long time=Math.abs(time1-time2); int day=getDay(time); System.out.println(day); } public static int getDay(long time) { int day=(int)(time/1000/60/60/24); return day; }}
Calendar类
从JDK1.1版本开始,在处理日期和时间时,系统推荐使用Calendar类进行实现(Date的一些方法都过时了)。在设计上,Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些。
该类被abstract所修饰,且Calendar类的构造方法是protected的,所以无法使用Calendar类的构造方法来创建对象,说明不能通过new的方式来获得实例,对此,Calendar提供了一个类方法getInstance,以获得此类型的一个通用的对象,getInstance方法返回一个Calendar对象,其日历字段已由当前日期和时间初始化:
Calendar c = Calendar.getInstance();
由于Calendar类toString实现的没有Date类那么直观,所以直接输出Calendar类的对象意义不大。
使用Calendar类代表指定的时间
通过set方法:public final void set(int year,int month,int date)
首先创建一个Calendar的对象,然后在设定该对象中的年月日参数:
Calendar c=Calendar.getInstance();c.set(year, 2, 1);//某一年的三月一号,月份是0,1,2...11分别代表1,2...12月
或者c1.set(2017,10,6);//设置日期的全部字段
获得Calendar类中的信息
通过get方法获取:
int year=c.get(Calendar.YEAR);int month=c.get(Calendar.MONTH)+1;int day=c.get(Calendar.DAY_OF_MONTH);
其他方法
add方法:public abstract void add(int field,int amount);
该方法的作用是在Calendar对象中的某个字段上增加或减少一定的数值,增加是amount的值为正,减少是amount的值为负。
after方法:public boolean after(Object when);
该方法的作用是判断当前日期对象是否在when对象的后面,如果在when对象的后面则返回true,否则返回false。
方法演示:
public class CalendarDemo { public static void main(String[] args) { Calendar c=Calendar.getInstance();// System.out.println(c);// showDate(c); int year=2017; showDays(year); } //求某年的二月有多少天: public static void showDays(int year) { Calendar c=Calendar.getInstance(); c.set(year, 2, 1);//某一年的三月一号 c.add(Calendar.DAY_OF_MONTH, -1);//三月一号的前一天 int day=c.get(Calendar.DAY_OF_MONTH); System.out.println(year+"二月的天数:"+day); showDate(c); } //输出指定日期的日历和星期几 public static void showDate(Calendar c) { int year=c.get(Calendar.YEAR); int month=c.get(Calendar.MONTH)+1; int day=c.get(Calendar.DAY_OF_MONTH); int week=c.get(Calendar.DAY_OF_WEEK); System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week)); } private static String getWeek(int i) { String[] weeks={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"}; return weeks[i]; }}
- API其他对象类
- 其他类API
- 其他API
- 其他API
- 01-其他对象API(System类)123 02-其他对象API(Runtime类) 03-其他对象API(Math类)
- 黑马程序员--常见的API其他类
- 20-01-其他对象API(System类)
- 20-02-其他对象API(Runtime类)
- 20-03-其他对象API(Math类)
- 20-04-其他对象API(Date类)
- Java其他API介绍
- React其他API
- 04-其他对象API(Date类). 05-其他对象API(Date类-日期对象转成字符串)1234 06-其他对象API(Date类-字符串转成日期对象)
- 07-其他对象API(Date类-练习) 08-其他对象API(Calendar类-基本演示) 09-其他对象API(Calendar类-练习) 12
- 黑马程序员--API中其他常用的类
- JAVA基础——API(其他类说明)
- 黑马程序员-Java学习笔记之API(其他类)
- 20-07-其他对象API(Date类-练习)
- Python中的函数式编程(一)
- 配置ip地址
- shopnc定时任务
- SpringBoot基于AOP实现自定义注解
- 在继承中重写方法时抛出异常的问题
- 其他类API
- contentos 端口开启
- 《大话设计模式》关于装饰者模式和代理模式个人笔记
- Maven 项目打包源文件 *-sources.jar
- linux去掉登录界面,开机自动登录root用户
- android连接蓝牙音响
- python django rest framework Class-based Views
- 3S基础知识:MapX应用讲义—加载地图数据
- Python解析JSON详解