java之18天 常用的类(一)

System类
import java.util.Properties;

/**
 * System:
 *  out:标准输出,默认是控制台
 *  in:标准输入,默认是键盘
 * 
 *  描述系统的一些信息
 *  获取系统的属性信息:Properties getProperties();
 *  
 * 
 *
 */
public class SystemDemo {

	public static void main(String[] args) {
		Properties prop=System.getProperties();
		
		//因为 Properties 是Hashtable的子类,也就是Map集合的一个子类对象
		//那么可以通过map的方法取出集合中的元素.
		//该集合中存储的都是字符串,没有泛型的定义
		
		for(Object obj:prop.keySet()){
			String value=(String)prop.get(obj);
			System.out.println(obj+":"+value);
		}
		
		//如何在系统中自定义一些特有信息呢?
		System.setProperty("maykey", "myvalue");
		
		//获取指定属性的信息  //安装软件的过程中 下判断 系统的类型
		String value=System.getProperty("os.name");
		System.out.println(value);
		
		//可以不可以在虚拟机启动的时候动态的加载一些信息呢?
		String v=System.getProperty("haha");
		System.out.println(v);//发现没有这个 key 对应的 value
		
		//我们可以在启动虚拟机的时候 加入我们设置的自定义参数  
		//java 命令  
		//java -Dhaha=qqqqq SystemDemo  在运行的时候通过 -D 加入 属性
	}

}

Runtime类

import java.io.IOException;


/**
 * Runtime对象
 * 该类并没有提供构造函数
 * 说明不可以new 对象,那么会直接想到该类中的方法都是静态的
 * 发现该类中还有非静态方法.
 * 说明该类肯定提供了方法获取本类对象,而且该方法是静态,并返回值为本类对象.
 *
 * 又这个特点可以看出该类使用单例设计模式完成
 * 该方法是  static Runtime getRuntime();
 *
 * 98:command  -- cmd
 *
 */
public class RuntimeDemo {
	public static void main(String[] args) throws IOException, InterruptedException {

		Runtime r=Runtime.getRuntime();
		//使用 java 打开扫雷  QQ ,暴风影音, ....
		//Process p= r.exec("c:\\winmin.exe"); //返回打开的一个本地进程
		Process p= r.exec("notepad.exe E:\\workspace4\\exam\\src\\com\\itheima\\day18\\RuntimeDemo.java"); //返回打开的一个本地进程
		
		
		Thread.sleep(4000l);
		p.destroy();  //销毁 上面创建的本地进程
	}

}



Math类
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Random;

public class MathDemo {

	public static void main(String[] args) {
		
		System.out.println("======util中的随机类==========");
		method_Random();
		
		MathDemo md=new MathDemo();
		md.m1();
		md.m2();
		md.m3();
		md.m4();
	}
	//给一个小数,保留两位小数
	double f = 111231.5585;
    public void m1() {
        BigDecimal bg = new BigDecimal(f);
        double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
        System.out.println(f1);
    }
    /**
     * DecimalFormat转换最简便
     */
    public void m2() {
        DecimalFormat df = new DecimalFormat("#.00");
        System.out.println(df.format(f));
    }
    /**
     * String.format打印最简便
     */
    public void m3() {
        System.out.println(String.format("%.2f", f));
    }
    public void m4() {
        NumberFormat nf = NumberFormat.getNumberInstance();
        nf.setMaximumFractionDigits(2);
        System.out.println(nf.format(f));
    }
	
	
	//java.util.Random
	public static void method_Random(){
		Random r=new Random();
		for(int x=0;x<10;x++){
			int d=r.nextInt(10)+1;//10(0-9)+1-->1-10
			sop(d);
		}
		
	}
	//java.lang.Math
	public static void method_Math(){
		double d=Math.ceil(-13.34);  //返回大于这个数的最小整数
		sop(d);
		
		double d1=Math.floor(12.34);//返回小于这个数的最大整数.
		sop(d1);
		
		long l=Math.round(12.54);  //四舍五入
		sop(l);
		
		
		double d2=Math.pow(2, 3); //a 的 3次幂
		sop(d2);
		
		
		for(int x=0;x<10;x++){
			double d3=Math.random();
			sop(d3);
		}
		System.out.println("=======1-10的随机数=====");
		for(int x=0;x<10;x++){
			int d3=(int)(Math.random()*10+1);//*10 (0-9)+1-->(1-10)
			
			//下面的就是骰子 的随机数
			//int d3=(int)(Math.random()*6+1);
			sop(d3);
		}
		
	}
	
	public static void sop(Object obj){
		System.out.println(obj);
	}

}


Date类

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateDemo {

	public static void main(String[] args) {
		Date d=new Date();
		System.out.println(d);
		
		DateFormat df=new SimpleDateFormat("yyyy年MM月dd日E HH:mm:ss");
		String temp=df.format(d);
		System.out.println(temp);
		
		
		Calendar c=Calendar.getInstance();
		pringCalendar(c);
		
		System.out.println("========重新设置时间=======");
		//重新设置 时间的
		Calendar cld=Calendar.getInstance();
		cld.set(2012, 11, 23);
		pringCalendar(cld);
		
		System.out.println("========两天前=======");
		Calendar c1=Calendar.getInstance();
		c1.add(Calendar.DAY_OF_MONTH, -2);
		pringCalendar(c1);
		
		System.out.println("========两年后=======");
		c1.add(Calendar.YEAR, 2);
		pringCalendar(c1);
		
		System.out.println("========获取 2014年2月的天数======");
		sop("2014年2月有"+getTwoMethodDays(2014,2)+"天");
		
		System.out.println("========获取昨天的现在的时刻======");
		getYesterdayTime();

		System.out.println("========获取两时间有效的天数===========");
		sop(getYouxiaoDays());
	}
	
	public static int getYouxiaoDays(){
		Calendar c=Calendar.getInstance();
		c.set(2013, 0, 1);
		c.add(Calendar.DAY_OF_MONTH, -1); //2012-12-12;
		//pringCalendar(c);
		//Calendar c1=Calendar.getInstance();
		return c.get(Calendar.DAY_OF_YEAR);
				
	}
	
	//获取昨天的现在的时刻
	public static void getYesterdayTime(){
		Calendar c=Calendar.getInstance();
		c.add(Calendar.DAY_OF_MONTH, -1);
		pringCalendar(c);
	}
	
	//获取任意年2月的天数
	public static int getTwoMethodDays(int year,int month){
		if(month<0 || month>11)
			throw new RuntimeException("无效的月份异常");
		Calendar c=Calendar.getInstance();
		c.set(year, month, 1);// 表示的是3月1号
		c.add(Calendar.DAY_OF_MONTH, -1);
		return c.get(Calendar.DAY_OF_MONTH);
	}
	
	
	public static void pringCalendar(Calendar c){
		int year=c.get(Calendar.YEAR);
		sop(c.get(Calendar.YEAR)+"年");
		//月份 可以采用 查表法 进行映射成  1月  String[] mons={"一月"....};
		sop((c.get(Calendar.MONTH)+1)+"月");
		sop(c.get(Calendar.DAY_OF_MONTH)+"日");
		//星期 也可以采用查表发 进行 映射 
		sop("星期"+c.get(Calendar.DAY_OF_WEEK));
		sop("第"+c.get(Calendar.DAY_OF_WEEK_IN_MONTH)+"周");
		
	}
	
	public static void sop(Object obj){
		System.out.println(obj);
	}

}

你可能感兴趣的:(Math,Date,System,Runtime,Rundom)