黑马程序员------Java基础(其他对象)

——- android培训java培训、期待与您交流! ———-

1.System类

System是描述系统一些信息的类,类中的属性和方法都是静态的。不能被实例化,没有提供构造函数。
out:标准输出流。默认是控制台。
in:标准输入流。默认是键盘。
1、获取系统的属性信息:getProperties(); 返回值类型为Properties
1)此方法返回的双列集合,即键值对;因为Properties是Hahstable的子类,也就是Map集合的一个子类对象,那么通过Map方法取出该集合中的元素。
2)该集合存储的都是字符串,没有泛型定义
2、获取指定属性信息:getProperty(String key); 返回值类型为String
3、在系统内定义特有信息: setProperty(String key, String value); 返回值类型为String
4、 通过命令:java -D=可以设置特有的系统属性信息
代码记录:

        /**
         * 因为Properties是Hashtable的子类,
         * 也就是Map集合的一个子类对象,
         * 所以可以通过map的方法取出该集合中的元素
         * 该集合中存储都是字符串,没有泛型定义。
         */
        Properties p = System.getProperties();
        /**
         * 在系统中自定义一些特有信息
         */
          System.setProperty("mykey","mavalue");
          /**
           * 获取指定属性信息。
           */
        String value = System.getProperty("os.name");
        System.out.println("os.name:"+value);
        /**
         * 获取全部系统信息
         * 系统信息为  键值对应
         * obj为键,value为值
         */
        for(Object obj : p.keySet()){
            String value = (String)p.get(obj);
            System.out.println(obj+"::"+value);
        }

2.Runtime类

1、获取本类对象
static RuntimegetRuntime();
2、在单独的进程中执行指定字符串命令
Processexec(String command);
3、将exec方法开启的进程结束的方法
void destroy();
代码记录:

/**
 * Runtime类
 * 该类没有提供构造函数
 * 说明不可以new对象,
 * 直接想该类中的方法都是静态的,
 * 说明该类肯定会提供方法获取本类对象,而且该方法是静态的,
 * 并返回值类型是本类类型。
 * 使用了单例设计模式
 * 该方式是static Runtime getRuntime();
 */
public class RuntimeDemo {
    public static void main(String[] args) {
        Runtime r = Runtime.getRuntime();
        try {
            Process p = r.exec("notepad.exe");
            Thread.sleep(4000);//进程等待
            p.destroy();//杀死进程
        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

3.Date类

Date类表示特定的瞬间,精确到毫秒。
java中的默认显示格式为:Mon Jun 10 22:35:21 CST2013
默认显示格式不易于观看,可以通过子类DateFormat的子类SimpleDateFormat来调用format方法来自定义时间格式。
代码记录:

Date d = new Date();
//      System.out.println(d);
//      打印出类似这样“Fri Sep 11 12:19:59 CST 2015”
//      将模式封装到SimpleDateFormat对象中
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 E  hh:mm:ss");
//      调用format方法将模式格式化date对象
        String time = sdf.format(d);
        System.out.println(time);
//      只取其中一部分
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年");
        String year = sdf1.format(d);
        System.out.println(year);

4.Calendar类

Calendar是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH等日历字段之间的转换提供了一些方法。
Calendar可以对年月日等时间进行获取。并提供了相应的子段值。可参阅API文档。
基本获取时间:
1)获取年份:Calendar.YEAR
2)获取月份:Calendar.MONTH
3)获取日期:Calendar.DAY_OF_MONTH
4)获取星期:Calendar.DAY_OF_WEEK
5)获取小时:Calendar.HOUR_OF_DAY
6)获取分钟:Calendar.MINUTE
7)获取秒数:Calendar.SECOND
代码记录:

//  打印方法
    public static void sop(Object o) {
        System.out.println(o);
    }
//  打印日历方法的封装,代码简化,高效实用
    public static void printCalander(Calendar cal) {
//      查表法
        String[] month = {"一月","二月","三月","四月",
                "五月","六月","七月","八月",
                "九月","十月","十一月","十二月"};
        int indexmonth = cal.get(Calendar.MONTH);

        String[] week = {"","星期日","星期一",
                "星期二","星期三","星期四","星期五","星期六"};
        int indexweek = cal.get(Calendar.DAY_OF_WEEK);

        sop(cal.get(Calendar.YEAR)+"年");
        sop(month[indexmonth]);
        sop(cal.get(Calendar.DAY_OF_MONTH)+"号");
        sop(week[indexweek]);
    }

    public static void main(String[] args) {

        Calendar cal =Calendar.getInstance();
/*//        cal.set(2020, 10, 1); 设置时间
        cal.add(Calendar.YEAR, 2);
        cal.add(Calendar.MONTH, 10);*/
/*//        任意年的二月多少天
        Scanner in =new Scanner(System.in);
        System.out.println("输入年份:");
        // 输入年的3月1日
        cal.set(in.nextInt(), 2,1);
        //3月1日往前一天,确定2月最后一天
        cal.add(Calendar.DAY_OF_MONTH, -1);
        printCalander(cal);*/

//      昨天的这个时刻
        cal.add(Calendar.DAY_OF_MONTH, -1);
        printCalander(cal);
    }
}

4.Math类

1、doubleceil(double d);//返回大于指定数据的最小整数
2、doublefloor(double d);//返回小于指定数据的最大整数
3、double pow(doublea,double b);//返回a的b次方
4、long round(doubleb);//返回b四舍五入的值
5、doublerandom();//返回正号的double值,是一个大于等于0.0且小于1.0的随机数
代码记录:

public static void sop(Object o) {
        System.out.println(o);
    }
    public static void show() {
        double d1 = Math.ceil(17.8);//ceil返回大于指定数据的最小整数
        sop(d1);
        double d2 = Math.floor(17.8);//floor返回小于指定数据的最大整数
        sop(d2);
        long l1 = Math.round(17.8);// 四舍五入
        sop(l1);
        double d3 = Math.pow(2, 3);// 2的3次方
        sop(d3);
    }

通过Math类和Random类生成随机数的两种方法:

//      生成10个1到10的随机数。
//      Math类
        for(int i=0;i<10;i++){
            int d = (int) (Math.random()*10+1);
            sop(d);
//      Random类
        Random r = new Random();
        for(int i=0;i<10;i++){
            int d = r.nextInt(10)+1;
            sop(d);
        }

练习:
给定任意一个小数,保留后n位。

        /*给定一个小数,保留n位小数
         * 先把给定小数乘以10的n次方,然后四舍五入取整
         * 得到的整数再除以10的n次方
         */
public static double baoliu(double d,int n) {
        double d1 = d*Math.pow(10, n);
        long l1 = Math.round(d1);
        return l1/Math.pow(10, n);
    }
    Scanner in = new Scanner(System.in);
        sop("小数为:");
        double d = in.nextDouble();
        sop("保留位数:");
        int n = in.nextInt();
        sop(baoliu(d,n));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值