黑马程序员__JAVA基础__其他对象

------------android培训java培训、java学习型技术博客、期待与您交流! ------------

1.System类

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

    in:标准输入,默认是键盘。

    err:标准错误输出流。

    操作方法:

        void exit(int status)

        终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止

public static void main(String[] args) 
{
	//直接终止虚拟机的运行
	System.exit(0);
}
        Properties getProperties()
        获取系统属性信息

import java.util.*;
class SystemDemo 
{
	public static void main(String[] args) 
	{

		Properties prop = System.getProperties();
		
		//因为Properties是Hashtable的子类,也就是Map集合的一个子类对象。
		//那么可以通过map的方法取出该集合中的元素。
		//该集合中存储都是字符串。没有泛型定义。

		//在系统中自定义一些特有信息
		System.setProperty("mykey","myvalue");

		//获取指定属性信息。
		String value = System.getProperty("os.name");
		System.out.println("value="+value);

		/*
		//获取所有属性信息。
		for(Object obj : prop.keySet())
		{
			String value = (String)prop.get(obj);

			System.out.println(obj+"::"+value);
		}
		*/
	}
}

        long currentTimeMillis()

        返回以毫秒为单位的当前时间

class SystemDemo
{
	public static void main(String[] args) 
	{
		long start = System.currentTimeMillis();
		for(int i = 0;i<1000;i++)
		{
			System.out.print("");
		}
		long end = System.currentTimeMillis();
		System.out.println(end-start);
	}
}

2.Runtime类

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

    特点:没有构造方法,不能通过new对象,但类中有非静态的方法,并且提供了一个静态方法获取本类对象,说明该类使用单例设计模式,并且返回值是本类类型,该方法是:static Runtime getRuntime();

    方法:
    Process exec(String command) 在单独的进程中执行指定的字符串命令(调用外部程序可用到)
    void gc() 运行垃圾回收器。
    static Runtime getRuntime() 返回与当前 Java 应用程序相关的运行时对象

class RuntimeDemo {
	public static void main(String[] args) throws IOException,InterruptedException
	{
		// 获取Runtime类的对象
		Runtime r = Runtime.getRuntime();
		Process p = r.exec("notepad");
		Thread.sleep(3000);//等待3秒  
		p.destroy();//杀掉子进程  
		
	}
}


3.Date类

    Date类是日期类,用于日期数据的操作,参数为毫秒值.(位于java中的util包中)

    此类中大部分方法都从jdk1.1开始被Calendar类中的方法所代替,本类方法过时。

        long getTime():日期到毫秒的转换
        void setTime(long time):毫秒到日期的转换

    DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。

    我们在创建一个Date类的对象的时候,将对象打印出来之后是不利于我们辨认的时间,这个时候就需要用到DateFornat类中的方法来解析这个时间。

示例代码如下:

import java.text.SimpleDateFormat;
import java.util.*;
public class ArraysDemo
{
	public static void main(String[] args) 
	{
		Date d=new Date();//创建打印的对象
		System.out.println(d);//打印结果:Sat Jun 08 00:20:18 CST 2013
		//打印的时间看不懂.希望能有些格式

		//想让打印的有年月日.这样看起来很好.方法是在Date类中另请参见中  
		SimpleDateFormat sdf=new SimpleDateFormat("yyy年MM月dd日 hh:mm:ss");
		//调用format方法让模式格式化指定的Date对象.  
		String time =sdf.format(d);
		System.out.println(time);//打印结果:13年06月08日 12:20:18
	}
}

4.Calendar类

    Calendar类是日历类,用于替代Date类的使用,它里面提供了很多功能来单独获取日历的某个数据。
    Calendar类是抽象类,但是提供方法用于获取子类对象

    重要方法:

        int get(int field) 根据给定的日历字段,获取对应的值
        void set(int year,int month,int date) 设置对应的时间
        void add(int field,int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量

测试代码示例:

import java.util.*;
import java.text.*;
class  CalendarDemo
{
	public static void main(String[] args) 
	{

		getDays(2014);

	}

	public static void method()
	{
		Calendar c = Calendar.getInstance();
		String[] mons = {"一月","二月","三月","四月"
					,"五月","六月","七月","八月"
					,"九月","十月","十一月","十二月"};


		String[] weeks = {
						"","星期日","星期一","星期二","星期三","星期四","星期五","星期六",
							};		
		int index = c.get(Calendar.MONTH);
		int index1 = c.get(Calendar.DAY_OF_WEEK);


		sop(c.get(Calendar.YEAR)+"年");
		//sop((c.get(Calendar.MONTH)+1)+"月");打印月份另一种方式
		sop(mons[index]);//打印月份
		sop(c.get(Calendar.DAY_OF_MONTH)+"日");
		//sop("星期"+c.get(Calendar.DAY_OF_WEEK));
		sop(weeks[index1]);
	}

	//获取任意一年的2月份的天数
	public static void getDays(int year)
	{
		Calendar c = Calendar.getInstance();  
		c.set(year, 2, 1); // 表示任意一年的3月1日
		c.add(Calendar.DAY_OF_MONTH,-1);//3月1日,往前推一天,就是2月最后一天。
		System.out.println("days:" + c.get(Calendar.DATE));
	}

	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}

5.Math类

    Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数,是数学操作常用的类。(注:java.lang.Math)

    特点:沒有构造方法,都是静态的成员

    成员:

        PI:比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值。

        E:比任何其他值都更接近 e(即自然对数的底数)的 double 值。

    操作方法:

        abs:绝对值

        ceil:大于等于参数的最小整数
        floor:小与等于参数的最大整数

        round:四舍五入

        pow:获取x的y次方的值

        sqrt:平方根

        random:产生一个大于等于0小于1的随机数

    在java.util包中,有一个Random类,他是一个产生随机数的类

    构造方法:
        Random()默认以系统时间作为随机数生成器的种子
        Random(long seed):以固定的seed参数作为随机数生成器的种子

    它和Math类中的随机方法大同小异,其随机输出1到50之间的数值代码为:

Random r=new Random();
r.nextInt(50)+1;
Math类常见方法示例:

import java.util.*;

class  MathDemo
{
	public static void main(String[] args) 
	{
		show();
	}

	public static void show()
	{
		double d = Math.ceil(16.34);//ceil返回大于指定数据的最小整数。
		double d1 = Math.floor(12.34);//floor返回小于指定数据的最大整数。

		long l = Math.round(12.54);//四舍五入
		sop("d="+d);//打印结果:d=17.0
		sop("d1="+d1);//打印结果:d1=12.0
		sop("l="+l);//打印结果:l=13

		double d2 = Math.pow(2,3);
		sop("d2="+d2);//打印结果:d2=8.0
	}
	
	//给定一个小数,保留该小数的后两位。
	public static void saveTwo(double d,int scale,boolean isRound)
	{
			
		double base = Math.pow(10,scale);//10的scale次方
		double num = isRound?Math.round(d*base)/base:((int)(d*base))/base;

		sop("num="+num);
	}
	
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}

个人总结

    JAVA中的一个工具类给我们在编写代码的过程中提供了不少的方便,各种方法较多不用强记,在实际使用中可以查找API文档。还有我们不仅要明白这个功能可以实现什么效果,还要明白这些方法是怎么去实现的这些效果。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值