Date类和Calendar类
两者之间主要的区别
java.util.Date是个日期数据;
java.util.Calendar 用于日期相关的计算;
package com.data;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Easy {
public static void main(String[] args) {
_date();
_calender();
}
public static void _date() {
Date d=new Date();//执行该行代码的当前时间
//时间从1970年0毫秒开始计时, long类型数值每毫秒加一
//方法
long l_time=d.getTime();//获取时间毫秒数
System.out.println(l_time);
//年月日时分秒
int year = d.getYear();
System.out.println(year+1900); //+1900
int month = d.getMonth();
System.out.println(month+1);//月份数从0开始
int day = d.getDate(); //getDay()可返回一周(0~6)的某一天的数字
System.out.println(day);
int hour =d.getHours();
System.out.println(hour);
int minute=d.getMinutes();
System.out.println(minute);
int second=d.getSeconds();
System.out.println(second);
d=new Date(100,1,14,10,10,10);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
String f_date=sdf.format(d);
System.out.println(f_date);//2000年02月14日10时10分10秒
}
static void _calender() {
Calendar c=Calendar.getInstance();
int year=c.get(Calendar.YEAR);
int month=c.get(Calendar.MONTH)+1; //月份从0开始
int day=c.get(Calendar.DAY_OF_MONTH);
int h=c.get(Calendar.HOUR_OF_DAY);
int m=c.get(Calendar.MINUTE);
int s=c.get(Calendar.SECOND);
int w=c.get(Calendar.DAY_OF_WEEK); //从星期天开始是1,星期一是2
System.out.print(year+"年");
System.out.print(month+"月");
System.out.print(day+"日");
System.out.print(h+"时");
System.out.print(m+"分");
System.out.print(s+"秒");
System.out.println(" 星期"+(w-1)); //0代表周天
}
}
几个特别的点
Date d=new Date();//执行该行代码的当前时间
时间从1970年0毫秒开始计时, long类型数值每毫秒加一
int year = d.getYear(); //年份从1900年开始算,1900年为0年
int month = d.getMonth();//月份数从0开始,1月是0
int day = d.getDate(); //getDay()可返回一周(0~6)的某一天的数字
实例化时的格式:yyyy-MM-dd hh:mm:ss
int w=c.get(Calendar.DAY_OF_WEEK); //从星期天开始是1,星期一是2
BigDecimal类
是针对大小数的处理类
BigDecimal BigDecimal(String s); //常用,推荐使用
Math类
System.out.println(Math.abs(-2.0)); //绝对值
System.out.println(Math.sqrt(64.0)); //立方根
System.out.println(Math.max(56,78)); //两者之间较大的
System.out.println(Math.min(56,78)); //两者之间较小的
System.out.println(Math.random()); //随机数
System.out.println(Math.pow(2,10)); //幂
System.out.println(Math.ceil(18.36)); //向上取整
System.out.println(Math.floor(18.66)); //向下取整
System.out.println(Math.round(11.5)); //四舍五入
System.out.println(Math.round(-11.5)); //四舍五入
Random类
用来生成随机数
-
public Random()
该构造方法使用一个和当前系统时间对应的相对时间有关的数字作为种子数,然后使用这个种子数构造Random对象。 -
public Random(long seed)
该构造方法可以通过制定一个种子数进行创建。
System类
是jdk提供的一个工具类,有final修饰,不可继承
Runtime类
Runtime类封装了运行时的环境。每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。每个java程序在运行时相当于启动了一个JVM进程,每个JVM进程都对应一个RunTime实例。此实例是JVM负责实例化的,所以我们不能实例化一个RunTime对象,应用程序也不能创建自己的 Runtime 类实例,但可以通过 getRuntime 方法获取当前Runtime运行时对象的引用。一旦得到了一个当前的Runtime对象的引用,就可以调用Runtime对象的方法去控制Java虚拟机的状态和行为。 当不被信任的代码调用任何Runtime方法时,常常会引起SecurityException异常。
- 内存管理:
Java提供了无用单元自动收集机制。通过totalMemory()和freeMemory()方法可以知道对象的堆内存有多大,还剩多少。Java会周期性的回收垃圾对象(未使用的对象),以便释放内存空间。但是如果想先于收集器的下一次指定周期来收集废弃的对象,可以通过调用gc()方法来根据需要运行无用单元收集器。一个很好的试验方法是先调用gc()方法,然后调用freeMemory()方法来查看基本的内存使用情况,接着执行代码,然后再次调用freeMemory()方法看看分配了多少内存。
- 执行其他程序
在安全的环境中,可以在多任务操作系统中使用Java去执行其他特别大的进程(也就是程序)。ecec()方法有几种形式命名想要运行的程序和它的输入参数。ecec()方法返回一个Process对象,可以使用这个对象控制Java程序与新运行的进程进行交互。ecec()方法本质是依赖于环境。