首页 > 其他分享 >其他对象API

其他对象API

时间:2023-02-02 20:34:02浏览次数:32  
标签:String 对象 System println API static 其他 Date Calendar

System类

 API——— java.lang.System: 属性和行为都是静态的。

long currentTimeMillis(); // 返回当前时间毫秒值
//作用演示
long l1 =1335664696656l;//System.currentTimeMillis();

System.out.println(l1/1000/60/60/24);//1335664696656

//code..

long l2 =System.currentTimeMillis();

System.out.println(l2-l1);

//可以看你的程序从开始到结束用了多长时间。

exit(); // 退出虚拟机

System.out.println(System.getProperties("line.separator"));//获取指定键指示的系统属性。 操作系统的换行符。

Properties getProperties() ;// 获取当前系统的属性信息

Properties prop = System.getProperties(); //获取系统的属性信息,并将这些信息存储到Properties集合中。


//方法演示:
public static void demo_1(){
        //获取系统的属性信息,并存储到了Properties集合中。

        /*

         * properties集合中存储都是String类型的键和值。

         * 最好使用它自己的存储和取出的方法来完成元素的操作。

         */

        Properties prop =System.getProperties();

       

        Set<String>nameSet = prop.stringPropertyNames();

       

        for(String name : nameSet){
            String value = prop.getProperty(name);

           

            System.out.println(name+"::"+value);

        }

       

    }

System.setProperty("myclasspath","c:\myclass"); //给系统属性信息集添加具体的属性信息。这些信息是全局,其他程序都可以使用。

/*临时设置方式:运行jvm时,可以通过jvm的参数进行系统属性的临时设置,
可以在java命令的后面加入 –D<name>=<value> 用法:java –Dmyname=小明 类名。*/

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

想要知道该系统是否是该软件所支持的系统中的一个。

  Set<String> hs = new HashSet<String>();

  hs.add("Windows XP");

  hs.add("Windows 7");

  if(hs.contains(name))

  System.out.println("可以支持");

  else

  System.out.println("不支持");

Runtime类

 API——— java.lang.Runtime: 类中没有构造方法,不能创建对象。

    但是有非静态方法。说明该类中应该定义好了对象,并可以通过一个static方法获取这个对象。用这个对象来调用非静态方法。这个方法就是 static Runtime getRuntime();

  这个Runtime其实使用单例设计模式进行设计。

  class RuntimeDemo {

    public static void main(String[] args) throws Exception {

      Runtime r = Runtime.getRuntime();

      Process p = r.exec("notepad.exe SystemDemo.java"); //运行指定的程序

      Thread.sleep(4000);

      p.destroy(); //杀掉进程   java只能杀掉自己开启的进程。

    }

Math类

API****——— java.util.Math: 用于数学运算的工具类,属性和行为都是静态的。该类是final不允许继承。

static double ceil(double a); //返回大于指定数值的最小整数

static double floor(double a); //返回小于指定数值的最大整数

static long round(double a); //四舍五入成整数

static double pow(double a,double b); //a的b次幂

static double random(); //返回0~1的伪随机数



public static void main(String[]args){

Random r=new Random();

for(int x=0;x<10;x++){

	//double d = Math.floor(Math.random()*10+1);

	//int d = (int)(Math.random()*10+1);

	int d=r.nextInt(10)+1;

	System.out.println(d);

}

}

Dath类(★★

 API——— java.util.Date:日期类,月份从0—11;

/**
	这个要求大家必须会了

     * 日期对象和毫秒值之间的转换。

     * 毫秒值-->日期对象 :
     
     * 1,通过Date对象的构造方法 new Date(timeMillis);

     *  2,还可以通过setTime设置。

     *  因为可以通过Date对象的方法对该日期中的各个字段(年月日等)进行操作。

     * 日期对象-->毫秒值:

     * 2,getTime方法。

     * 因为可以通过具体的数值进行运算。
     */

    public static void methodDemo_1() {
        long time = System.currentTimeMillis();//

//      System.out.println(time);//1335671230671

        Date date = new Date();//将当前日期和时间封装成Date对象。

        System.out.println(date);//Sun Apr 29 11:48:02 CST 2012

        Date date2 = new Date(1335664696656l);//将指定毫秒值封装成Date对象。

        System.out.println(date2);

    }

日期对象转成字符串

/**
     * 对日期对象进行格式化。

     * 将日期对象-->日期格式的字符串。

     * 使用的是DateFormat类中的format方法。

     */

    public static void methodDemo_2() {
       
        Date date = new Date();

        //获取日期格式对象。具体着默认的风格。 FULL LONG等可以指定风格。

        DateFormat dateFormat =DateFormat.getDateInstance(DateFormat.LONG);

        dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);

//      System.out.println(dateFormat);

        //如果风格是自定义的如何解决呢?

        dateFormat = new SimpleDateFormat("yyyy--MM--dd");
       
        String str_date = dateFormat.format(date);

        System.out.println(str_date);

    }

字符串转成日期对象

/**
     * 将日期格式的字符串-->日期对象。

     * 使用的是DateFormat类中的parse()方法。

     * @throws ParseException
     
     */

    public  static void methodDemo_3() throws ParseException {
       
        String str_date = "2012年4月19日";

        str_date = "2011---8---17";      

        DateFormat dateFormat =DateFormat.getDateInstance(DateFormat.LONG);

        dateFormat = new SimpleDateFormat("yyyy---MM---dd");

        Date date =dateFormat.parse(str_date);
        
        System.out.println(date);

    }

练习

/* 练习:

 * "2012-3-17"到"2012-4-6"  中间有多少天?

 * 思路:

 * 两个日期相减就哦了。

 * 咋减呢?

 * 必须要有两个可以进行减法运算的数。

 * 能减可以是毫秒值。如何获取毫秒值?通过date对象。

 * 如何获取date对象呢?可以将字符串转成date对象。


 * 1,将日期格式的字符串转成Date对象。

 * 2,将Date对象转成毫秒值。

 * 3,相减,在变成天数

 */

 

public class DateTest {

    /**

     * @param args

     * @throws ParseException

     */

    public static void main(String[] args) throws ParseException {

        String str_date1 = "2012-3-17";

        String str_date2 = "2012-4-18";

        test(str_date1,str_date2);

    }

 

    public static void test(Stringstr_date1,String str_date2) throws ParseException {

        //1,将日期字符串转成日期对象。

        //定义日期格式对象。

        DateFormat dateFormat =DateFormat.getDateInstance();

        dateFormat = new SimpleDateFormat("yyyy-MM-dd");

        Date date1 =dateFormat.parse(str_date1);

        Date date2 =dateFormat.parse(str_date2);

        long time1 = date1.getTime();

        long time2 = date2.getTime();

        long time = Math.abs(time1-time2);

        int day = getDay(time);

        System.out.println(day);

    }

    private static int getDay(long time) {

        int day = (int)(time/1000/60/60/24);

        return day;

    }

Calendar类

   public static void method() {
        Calendar c = Calendar.getInstance();

        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH) + 1;//0-11
        String days = getNum(c.get(Calendar.DAY_OF_MONTH));
        int week = c.get(Calendar.DAY_OF_WEEK);
        System.out.println(year+ "年" + month+ "月"+days+"日" + getWeek(week));

    }

    public static String getNum(int num) {
        return num > 9 ? String.valueOf(num) : "0" + num;

    }

    public static String getWeek(int index) {
/*

    查表法:建立数据的对应关系.

    最好:数据个数是确定的,而且有对应关系。如果对应关系的一方,是数字,而且可以作为角标,那么可以通过数组来作为表。
s
    */

        String[] weeks = {"", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};//国外的第一天是星期日

        return weeks[index];

    }

练习

/*面试题,任何一年中的2月有多少天,这就是Calendar中set()和add,方法的使用,
那我就设置3月一号,然后设置偏移量也就是减一,那就是二月的最后一天*/

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

        Calendar c =Calendar.getInstance();

        int year = 2012;

        showDays(year);

    }

    public static void showDays(int year) {

        Calendar c = Calendar.getInstance();

        c.set(year, 2, 1); //月份0-11

        c.add(Calendar.DAY_OF_MONTH, -1);

        showDate(c);

    }

    private static void showDate(Calendar c) {
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH) + 1;
        int days = c.get(Calendar.DAY_OF_MONTH);
        System.out.println(year+ "年" + month+ "月"+days+"日");

    }
}

标签:String,对象,System,println,API,static,其他,Date,Calendar
From: https://www.cnblogs.com/Nuff5a1d/p/17087305.html

相关文章

  • 常用对象API(String类)
    目录StringBuffer字符串缓冲区特点&添加功能增删改查和可变数组长度StringBuilder类StringBuilder练习:String类String类特点:构造函数字符串常见方法获取转换判断比较inter......
  • drf入门到精通: 序列化类常用字段和字段参数、序列化高级用法之source、 序列化高级用
    目录1序列化类常用字段和字段参数1.1常用字段类1.2常用字段参数2序列化高级用法之source代码演示:2.1序列化定制字段名字3序列化高级用法之定制字段的两种方式3.1Ser......
  • stream操作常用API 示例详解
    简介从JDK8开始,增加了一新特性Stream流式操作,Stream中提供了非常多的API供大家使用,灵活的使用这些API,可以非常的方便且优美的实现我们的代码逻辑。最终型toArraytoArray......
  • 1 序列化类常用字段和字段参数(了解)、 2 序列化高级用法之source(了解) 、3 序列化高
    目录1序列化类常用字段和字段参数(了解)1.1常用字段类1.2常用字段参数2序列化高级用法之source(了解)2.1序列化定制字段名字3序列化高级用法之定制字段的两种方式3.1S......
  • cache API简介
    cacheAPI是一个很强大的API,它可以在window环境和serviceWorker环境使用,配合serviceWorker可以让我们自己来管理缓存。cachescaches是一个全局接口,可以在window和worker......
  • Java判断一个对象是否为指定类的实例
    一.描述instanceof它的作用是判断其左边对象是否为其右边类的实例,也可以判断这个对象是否是这个特定类或者是它的子类的一个实例,返回boolean类型的数据。二.用法booleanr......
  • 常用API大全分享!赶紧收藏起来!
    一、短信发送短信的应用可以说是非常的广泛了,短信API也是当下非常热门的API~短信验证码:可用于登录、注册、找回密码、支付认证等等应用场景。支持三大运营商,3秒可达,99.9......
  • [复习]面向对象之继承
    面向对象之继承一.概念如果有两个或两个以上的类具有相同的属性和方法,我们可以抽取出来,把抽取出来的部分作为各个类的公共部分,我们称抽取出的这部分为基类[BaseClass]......
  • OpenGL ES 2.0编程指导阅读笔记(六)顶点属性、顶点数组和缓冲对象
    顶点数据,又称顶点属性,给定了每个顶点的数据。这类每个顶点的数据可以每个顶点分别给定,也可以给定一个所有顶点共用的常量。在OpenGLES1.1中,顶点属性名称是预定义的,如po......
  • VUE API接口的统一管理
    vue项目对api进行封装统一管理在日常vue项目中或刚接收一个vue项目,如果项目足够大,就需要进行统一管理和规范接口了1.js文件创建先在src目录下新建一个api文件夹,然后......