JAVA之旅(二十三)——System,RunTime,Date,Calendar,Math的数学运算


map实在是太难写了,整理得我都晕都转向了,以后看来需要开一个专题来讲这个了,现在我们来时来学习一些新的小东西吧

一.System

翻译过来系统的意思,系统类,里面的方法都是静态的,可以直接调用

我们来演示一下吧,先从获取系统信息开始:

package com.lgl.hellojava;

import java.util.Properties;

public class HelloJJAVA {
    public static void main(String[] args) {
        /**
         * 描述系统的一些信息 获取系统的一些信息 :
         * Properties = getProperties
         * out:标准输出,默认是控制台
         * in:标准输入,默认控制台
         */

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

        for (Object obj : properties.keySet()) {
            String value = (String) properties.get(obj);
            System.out.println(obj + ":" + value);
        }

    }
}

获取到的信息太多了,就不列出来了,可以看到

他把什么都打印出来了,如果你想自定义一些信息,你可以这样做

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

这样就可以用上面的方法获取信息,我们也可以获取单个属性信息,比如获取系统名称

package com.lgl.hellojava;

public class HelloJJAVA {
    public static void main(String[] args) {

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

    }
}

OK,就能获取到系统名字了

二.RunTime

该类是单例设计模式,不提供构造函数,也就是不能new对象,,发现该类还有非静态方法, 那他肯定会提供一个方法获取本类对象,而且该方法是静态并且返回值是本类对象,RunTime翻译过来就是执行的意思,是很强大的,就如cmd一样可以运行linux命令,我们来演示一下,比如我们执行打开gitbash

package com.lgl.hellojava;

import java.io.IOException;

public class HelloJJAVA {
    public static void main(String[] args) {

        Runtime r = Runtime.getRuntime();
        try {
            r.exec("C:\\Program Files\\Git\\git-bash");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

这样,一运行就打开了。杀掉的话返回一个Process,执行destroy就可以了

三.Date

日期的描述类,这个比较实用,也是比较简单的,比如

package com.lgl.hellojava;

import java.util.Date;

public class HelloJJAVA {
    public static void main(String[] args) {
        Date date = new Date();
        System.out.println(date);
    }
}

我们就可以打印出时间了

日期,月份,号,时间,年,不过有点费劲,我们可以按照格式来输出,我们要看这里

我们要使用的就是DateFormat,我们要用的就是他的子类SimpleDateFormat

package com.lgl.hellojava;

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

public class HelloJJAVA {
    public static void main(String[] args) {
        Date date = new Date();
        //将模式封装
        SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");
        //格式化Date对象
        String time = format.format(date);
        System.out.println(time);
    }
}

这样,我们就可以用格式来表示了

四.Calendar

如果我想单独获取一个时间呢?比如年,比如月,这个时候就可以用Calendar了

package com.lgl.hellojava;

import java.util.Calendar;

public class HelloJJAVA {
    public static void main(String[] args) {

        Calendar calendar = Calendar.getInstance();
        String[] mons = { "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月",
                "十月", "十一月", "十二月" };
        int index = calendar.get(Calendar.MONTH);

        //查询当前日期
        sop(calendar.get(Calendar.YEAR) + "年");
        sop((calendar.get(Calendar.MONTH) + 1) + "月");
        sop(mons[index]);
        sop(calendar.get(Calendar.DAY_OF_MONTH) + "日");
        sop("星期:" + calendar.get(Calendar.DAY_OF_WEEK));

    }

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

OK,这样就可以获取到了

他比较灵活,还是有许多的小技巧的,这个我们自行去探索

五.Math

数学类,在特定领域用的是非常多的,里面度是静态的,也就是工具类,我们来认识一下他

1.ceil

返回大于指定数据的最小整数

//返回大于指定数据的最小整数
double ceil = Math.ceil(12.34);

这里输出就是13.0了

2.floor

返回小于指定数据的最小整数

//返回小于指定数据的最小整数
double ceil1 = Math.floor(12.34);
sop(ceil1);

返回就是12.0了

3.round

四舍五入

//四舍五入
long ceil2 = Math.round(12.34);
sop(ceil2);

很明显,输出12

4.pow

幂的运算

// 2的3次方
double ceil3 = Math.pow(2, 3);
sop(ceil3);

得到8

5.random

随机数

/ 随机数
int ceil4 = (int) (Math.random()*10);
sop(ceil4);

这个一定要学会,很好用,也很常用

还可以这样写

Random r = new Random();
sop(r.nextInt(10));

这些大部分是工具类的使用,当然,这些也是比较使实用的类,大家一定要掌握,本篇有点短,因为我下一篇想开一个比较特别的知识类,因为JAVA学习也挺久的了,这个知识点大家一定要掌握,就是I/O,文件流的操作,是非常的重点的,为了知识的终结和归纳,我决定在开新文章来写,这篇博文到这里就结束了,

如果感兴趣,可以加群:555974449,我们一起学技术!

JAVA之旅(二十三)——System,RunTime,Date,Calendar,Math的数学运算的更多相关文章

  1. 黑马程序员——JAVA基础之System,Runtime,Date,Calendar,Math

    ------- android培训.java培训.期待与您交流! ---------- System:  类中的方法和属性都是静态的. out:  标准输出,默认是控制台. in:标准输入,默认是键盘 ...

  2. 常用工具类(System,Runtime,Date,Calendar,Math)

    一.System: 一个java.lang包中的静态工具类. 三大字段: static PrintStream err “标准”错误输出流. static InputStream in “标准”输入流 ...

  3. 黑马程序员_Java其他对象(System,Runtime,Date,Calendar,Marh-Random)

    System System类包含一些有用的类字段和方法(都是静态的).它不能被实例化. 在System类提供的设施中,有标准输入.标准输出和错误输出流:对外部定义的属性和环境变量的访问:加载文件和库的 ...

  4. JAVA之旅(十三)——线程的安全性,synchronized关键字,多线程同步代码块,同步函数,同步函数的锁是this

    JAVA之旅(十三)--线程的安全性,synchronized关键字,多线程同步代码块,同步函数,同步函数的锁是this 我们继续上个篇幅接着讲线程的知识点 一.线程的安全性 当我们开启四个窗口(线程 ...

  5. Object,String,StringBuffer,StringBuilder,System,Runtime,Date,Math介绍及用法(API)

    1       Object对象 面向对象的核心思想:“找合适的对象,做适合的事情”. 合适的对象: 自己描述类,自己创建对象. sun已经描述了好多常用的类,可以使用这些类创建对象. API(App ...

  6. 夯实Java基础(二十三)——Java8新特征之Stream API

    1.Stream简介 Java8中除了引入了好用的Lambda表达式.Date API之外,另外还有一大亮点就是Stream API了,也是最值得所有Java开发人员学习的一个知识点,因为它的功能非常 ...

  7. Java从零开始学二十三(集合Map接口)

    一.Map接口 Collection.Set.List接口都属于单值的操作,即:每次只能操作一个对象,而Map与它们不同的是,每次操作的是一对对象,即二元偶对象,Map中的每个元素都使用key à v ...

  8. Java开发学习(二十三)----SpringMVC入门案例、工作流程解析及设置bean加载控制

    一.SpringMVC概述 SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装.SpringMVC是处于Web层的框架,所以其主要的作用就是用来 ...

  9. Java基础(二十三)GUI图形界面编程(Java基础完)

    这里有我之前上课总结的一些知识点以及代码大部分是老师讲的笔记 个人认为是非常好的,,也是比较经典的内容,真诚的希望这些对于那些想学习的人有所帮助! 由于代码是分模块的上传非常的不便.也比较多,讲的也是 ...

随机推荐

  1. Debugging TensorFlow models 调试 TensorFlow 模型

    Debugging TensorFlow models Symbolic nature of TensorFlow makes it relatively more difficult to debu ...

  2. C++笔记007:易犯错误模型——类中为什么需要成员函数

    先看源码,在VS2010环境下无法编译通过,在VS2013环境下可以编译通过,并且可以运行,只是运行结果并不是我们期待的结果. 最初通过MyCircle类定义对象c1时,为对象分配内存空间,r没有初始 ...

  3. R语言:安装及使用

    http://blog.csdn.net/pipisorry/article/details/53640638 ubuntu下安装 sudo apt-get install -y r-base源码安装 ...

  4. Azkaban-2.5及Plugins的安装配置

    Azkaban是由LinkedIn开发的调度工具,可以用于调度Hadoop中的相互依赖的Job.有时候,在Hadoop集群中运行的Job是相互依赖的,某些任务需要顺序的执行,这种场景下使用Azkaba ...

  5. 前端CSS技术全解(一)

    一.概述 1)用HTML完成样式工作 哪个标签有哪个属性难以记忆 需求变更影响较大(例如像修改成功法则以下的文字颜色需要修改4个地方) <h1 align="center"& ...

  6. 学习TensorFlow,调用预训练好的网络(Alex, VGG, ResNet etc)

    视觉问题引入深度神经网络后,针对端对端的训练和预测网络,可以看是特征的表达和任务的决策问题(分类,回归等).当我们自己的训练数据量过小时,往往借助牛人已经预训练好的网络进行特征的提取,然后在后面加上自 ...

  7. Java异常处理-----finally

    finally 1: 实现方式一: try{ // 可能发生异常的代码 } catch( 异常类的类型 e ){ // 当发生指定异常的时候的处理代码 }catch- 比较适合用于专门的处理异常的代码 ...

  8. Scikit-learn:模型选择Model selection

    http://blog.csdn.net/pipisorry/article/details/52250983 选择合适的estimator 通常机器学习最难的一部分是选择合适的estimator,不 ...

  9. Java 拓展之调用其他语言

    目前而言,编程语言真的是太多了.每一种都是一种智慧的结晶,但是每个都存在其缺点.网上经常能看到一些程序员争论"XX是世界上最好的语言"之类的话题.其实我们大可不必这样.语言本身只是 ...

  10. CUSTOM.PLL的使用

    在开发中对系统标准form的修改一般不建议修改系统原有FORM,对所需要修改的内容一般写在CUSTOM.PLL里即可,应为每个form运行的时候都会调用CUSTOM.PLL具体概念性东西可参考网上资料 ...