【Java学习笔记】其他对象API

System类

 1 package p1;
 2
 3 import java.util.Properties;
 4 import java.util.Set;
 5
 6 public class SystemDemo {
 7
 8     private static final String LINE_SEPARATOR = System.getProperty("line.separator");  //设置换行
 9
10     public static void main(String[] args) {
11         /*
12          * System:类中的方法和属性都是静态的。
13          * 常见方法:
14          *         long currentTimeMills();获取当前时间的毫秒值。(返回当前时间与协调世界时间1970年1月1日午夜之间的时间差)
15          */
16 //        demo1();
17         demo2();
18 //        demo3();
19
20     }
21
22     public static void demo3() {
23         System.setProperty("age", "28");
24         System.setProperty("name", "张三");
25
26
27         System.out.println(System.getProperty("age"));
28         System.out.println(System.getProperty("name"));
29
30         System.out.println("hello"+LINE_SEPARATOR+"woorld");
31     }
32     /*
33      * demo3运行结果:
34      *             28
35                 张三
36                 hello
37                 woorld
38
39      */
40
41     public static void demo2() {
42         /*
43          * Properties getProperties() 获取系统的属性信息,并存储到Properties集合中
44          *
45          * Properties集合中存储都是String类型的键和值  //所以定义Properties类型的变量时不必带泛型
46          * 最好使用它自己的存储和取出的方法来完成元素的操作
47          */
48         Properties prop = System.getProperties();
49 //        System.out.println(prop);
50
51         Set<String> nameSet = prop.stringPropertyNames();
52
53         for (String name : nameSet)
54         {
55             String value = prop.getProperty(name);
56
57             System.out.println(name+"::"+value);
58         }
59     }
60
61     public static void demo1() {
62         long l1 = System.currentTimeMillis();
63         System.out.println(l1);//返回1473476846438  毫秒数
64         System.out.println(l1/1000/60/60/24); //返回  17054   天数
65
66         // code...
67         long l2 = System.currentTimeMillis();
68         System.out.println(l2-l1); //返回的是code...代码执行所用时间
69     }
70
71 }

Runtime类

 1 package p1;
 2
 3 import java.io.IOException;
 4
 5 public class RuntimeDemo {
 6
 7     public static void main(String[] args) throws IOException, InterruptedException {
 8         /*
 9          * 每一个Java程序都有一个Runtime类案例,使应用程序能够与其运行的环境相连,可以通过getRuntime方法获取当前运行时。
10          * 应用程序不能创建自己的Runtime类案例。
11          */
12
13         /*
14          * Runtime:没有构造方法摘要,说明该类不可以创建对象
15          * 又发现还有非静态的方法,说明该类应该提供静态的返回该类对象的方法
16          * 而且只有一个,说明Runtime类使用了单列设计模式。
17          */
18
19         Runtime r = Runtime.getRuntime();
20
21 //        Process p = r.exec("notepad.exe");//打开notep
22         Process p = r.exec("notepad.exe D:\\1.txt");//打开notepad,在用notepad打开TXT
23                     //r.exec("软件路径  文件路径");
24         Thread.sleep(5000);
25         p.destroy();//杀掉进程      5s后notepad关闭
26
27
28     }
29
30 }

Math类

 1 package p1;
 2
 3 import java.util.Random;
 4
 5 public class MathDemo {
 6
 7     public static void main(String[] args) {
 8         /*
 9          * Math:提供了操作数学运算的方法。都是静态的。
10          *
11          * 常用方法:
12          *         ceil():返回大于参数的最小整数
13          *         floor():返回小于参数的最大整数
14          *         round():返回四舍五入的整数
15          *         pow(a,b):a的b次方
16          *         random():返回带正号的 double 值,该值大于等于 0.0 且小于 1.0
17          */
18
19 //        demo();
20         RandomDemo();
21
22
23     }
24
25     public static void RandomDemo() {
26         Random r = new Random();
27
28         for (int i=0; i<10; i++)
29         {
30             double d = r.nextDouble();//与Math.random()方法类似
31             System.out.println(d);
32             /*
33              * 0.013546684829438105
34                 0.08058717380462299
35                 0.25156348709107823
36                 0.8149201340850071
37                 0.37986882841498293
38                 0.23718135066250312
39                 0.6348939629694422
40                 0.9508777684076484
41                 0.8231478486704749
42                 0.4605800387044423
43              */
44         }
45
46         for (int i=0; i<10; i++)
47         {
48             int d1 = r.nextInt(10);    //随机返回0~10(不包含)间任意一个int值。
49             System.out.println(d1);
50
51         }
52     }
53
54     public static void demo() {
55         double d1 = Math.ceil(12.53);
56         double d2 = Math.floor(12.53);
57         double d3 = Math.round(12.13);
58         double d4 = Math.pow(10, 3);
59
60         System.out.println(d1); //13.0
61         System.out.println(d2); //12.0
62         System.out.println(d3);//12.0
63         System.out.println(d4);//1000.0
64
65         for (int i=0; i<10; i++)
66         {
67             double d = Math.random();
68             System.out.println(d);
69             /*
70              *  0.3027275615429248
71                 0.5238495879790577
72                 0.987839818675654
73                 0.6749156933585441
74                 0.8474524363649824
75                 0.412124228077851
76                 0.009324944666969759
77                 0.9136918707539762
78                 0.41197917556520036
79                 0.3277617281962496
80              */
81         }
82     }
83
84 }

Date类

 1 package p1;
 2
 3 import java.text.DateFormat;
 4 import java.text.ParseException;
 5 import java.text.SimpleDateFormat;
 6 import java.util.Date;
 7
 8 public class DateDemo {
 9
10     public static void main(String[] args) throws ParseException {
11 //        method_demo1();
12 //        method_demo2();
13         method_demo3();
14
15     }
16
17     public static void method_demo3() throws ParseException {
18
19         /*
20          *将日期格式的字符串-->日起对象
21          *    使用的是DateFormat类中的parse()方法。
22          */
23
24         String str = "2016年9月10日 星期六";
25         String str1 = "2016--09--10  02:22:08";
26
27         DateFormat dateformat =  DateFormat.getDateInstance(DateFormat.FULL);//格式与日期格式要对应
28         DateFormat dateformat1 = new SimpleDateFormat("yyyy--MM--dd  hh:mm:ss");
29
30         Date date = dateformat.parse(str);
31         System.out.println(date);//Sat Sep 10 00:00:00 CST 2016
32
33         Date date1 = dateformat1.parse(str1);
34         System.out.println(date1);//Sat Sep 10 02:22:08 CST 2016
35     }
36
37     public static void method_demo2() {
38         /*
39          * 对日期对象进行格式化
40          * 将日期对象-->日期格式的字符串
41          *     使用DateFormat类中的format方法。
42          */
43
44         Date date = new Date();
45
46         //获取日期格式对象,有FULL,LONG,SHORT,MEDIUM(默认)格式。不标明就是默认格式
47         DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL);
48 //        System.out.println(dateFormat); //[email protected]
49         String str = dateFormat.format(date);
50         System.out.println(str);//2016年9月10日 星期六
51
52         DateFormat dateFormat1 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.LONG);
53         String str1 = dateFormat1.format(date);
54         System.out.println(str1);   //2016年9月10日 星期六 下午02时14分18秒
55
56         //如果风格想要自定义呢?
57         DateFormat dateFormat2 = new SimpleDateFormat("yyyy--MM--dd  hh:mm:ss");
58         String str2 = dateFormat2.format(date);
59         System.out.println(str2);   //2016--09--10  02:22:08
60
61     }
62
63     public static void method_demo1() {
64
65         /*
66          * 日期对象和毫秒值之间的转换
67          *
68          * 毫秒值-->日期对象
69          * 1.通过Date对象的构造方法 new Date(timeMills);
70          * 2.还可以通过Settime设置
71          *
72          * 日期对象-->毫秒值
73          * getTime方法
74          */
75
76         long time = System.currentTimeMillis();
77         System.out.println(time);  //1473485640659
78
79         Date date = new Date(); //将当前日期和时间封装成date对象。
80         System.out.println(date); //Sat Sep 10 13:39:21 CST 2016
81
82         Date date1 = new Date(1473485640659l); //将指定毫秒值封装成date对象。
83         System.out.println(date1);  //Sat Sep 10 13:34:00 CST 2016
84
85         Date date2 = new Date();
86         date2.setTime(1473485640659l);
87         long l = date2.getTime();
88         System.out.println(l);    //1473485640659
89     }
90
91 }
 1 package p1;
 2
 3 import java.text.DateFormat;
 4 import java.text.ParseException;
 5 import java.util.Date;
 6
 7 /*
 8  * “2012-3-17”到“2012-4-6”间有多少天
 9  *
10  * 思路:
11  *         日期格式字符串-->日期对象-->获取毫秒值-->相减
12  */
13 public class DateTest {
14
15     public static void main(String[] args) throws ParseException {
16
17         String str_date1 = "2012-3-17";
18         String str_date2 = "2012-4-6";
19
20         test(str_date1,str_date2);
21
22     }
23
24     public static void test(String str_date1, String str_date2) throws ParseException {
25         DateFormat dateformat = DateFormat.getDateInstance();//对应格式
26
27         Date date1 = dateformat.parse(str_date1);
28         Date date2 = dateformat.parse(str_date2);
29
30         long time1 = date1.getTime();
31         long time2 = date2.getTime();
32
33         long time = Math.abs(time1-time2);
34
35         int day = getDay(time);
36         System.out.println(day);
37
38     }
39
40     public static int getDay(long time) {
41         int day = (int)(time/1000/60/60/24);
42         return day;
43     }
44
45 }

Calendar类

 1 package cn.itcast.p1.otherapi;
 2
 3 import java.util.Calendar;
 4
 5 public class CalendarDemo {
 6
 7     public static void main(String[] args) {
 8         Calendar c = Calendar.getInstance();
 9         System.out.println(c);
10         /*电脑当前时间的日历
11          *
12          * java.util.GregorianCalendar[time=1473493014690,areFieldsSet=true,
13             areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",
14             offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,
15             minimalDaysInFirstWeek=1,ERA=1,YEAR=2016,MONTH=8,WEEK_OF_YEAR=37,WEEK_OF_MONTH=2,DAY_OF_MONTH=10,
16             DAY_OF_YEAR=254,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=3,HOUR_OF_DAY=15,
17             MINUTE=36,SECOND=54,MILLISECOND=690,ZONE_OFFSET=28800000,DST_OFFSET=0]
18
19          */
20
21         showDate(c);
22
23         showDays(2016);//判断2016的二月有多少天
24
25     }
26
27     public static void showDays(int i) {
28         Calendar c = Calendar.getInstance();
29         c.set(i, 2, 1);
30
31         c.add(Calendar.DAY_OF_MONTH, -1);
32         showDate(c);
33     }
34
35     public static void showDate(Calendar c) {
36
37         int year = c.get(Calendar.YEAR);
38         int month = c.get(Calendar.MONTH)+1;
39         int day = c.get(Calendar.DAY_OF_MONTH);
40         int week = c.get(Calendar.DAY_OF_WEEK);
41         int hour = c.get(Calendar.HOUR_OF_DAY);
42         int min = c.get(Calendar.MINUTE);
43         int second = c.get(Calendar.SECOND);
44
45         System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week)+" "+hour+":"+min+":"+second);
46     }
47
48     public static String getWeek(int week) {
49         String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
50
51         return weeks[week];
52     }
53
54 }

时间: 2024-08-04 14:02:02

【Java学习笔记】其他对象API的相关文章

Java学习笔记----面对对象

最近开始着手整理自己学习的东西,把面向对象整理出来 什么是面向对象? 起初,"面向对象"是专指在程序设计中采用封装.继承.多态等设计方法. 面向对象的思想已经涉及到软件开发的各个方面.如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design).以及我们经常说的面向对象的编程实现(OOP,Object Oriented Programming). 什么是多态? 在面向对象语言中,接口的多种不同的实

[Java学习笔记]对象克隆

对象克隆: 浅克隆: 被克隆的对象中的值类型数据被复制一份新值,但是引用的对象只被复制其引用传递给新克隆出来的对象 深克隆: 被克隆的对象中的值类型数据被复制一份新值,并且其中引用的对象会重新创建新的对象,把新对象的引用传递给新克隆出来的对象 Java中实现克隆: Java中Object中定义了clone方法,默认为浅克隆操作,即你只是简单super.clone得到的结果是浅克隆的结果,如果需要深克隆,则需要实现Cloneable接口,并且重写clone方法 查看Java源代码发现Object中

Java学习笔记(Java语言规范,API,JDK,IDE)

Java语言规范:java.sun.com/docs/books/jls 三个版本的API:J2SE J2EE J2ME 1. J2SE 客户端独立应用程序或者applet 2. J2EE 服务端应用程序 [Java Servlets&JavaServer Page] 3. J2ME 移动设备变成 JDK为Java开发提供一个开发环境(IDE) Java学习笔记(Java语言规范,API,JDK,IDE)

Java学习笔记一:对象与存储

1.用引用来操作对象 Java是面向对象的编程语言,一切都能看作是对象,通过引用来完成对对象的操作. // String 是对象,而s对指向这个String对象的引用 String s; 注意:我们是通过对象的引用来操纵对象数据的,如果对象没有关联数据(如没有被初始化),则会出现空引用,报空指针异常:java.lang.NullPointerException 2.数据存储 (1)寄存器:位于CPU内部,是处理最快的区域,但是存储空间有限.Java不能通过程序直接控制. (2)堆栈:位于RAM(

java学习笔记14--多线程编程基础1

本文地址:http://www.cnblogs.com/archimedes/p/java-study-note14.html,转载请注明源地址. 多线程编程基础 多进程 一个独立程序的每一次运行称为一个进程,例如:用字处理软件编辑文稿时,同时打开mp3播放程序听音乐,这两个独立的程序在同时运行,称为两个进程 进程要占用相当一部分处理器时间和内存资源 进程具有独立的内存空间 通信很不方便,编程模型比较复杂 多线程 一个程序中多段代码同时并发执行,称为多线程,线程比进程开销小,协作和数据交换容易

JAVA学习笔记 -- 数据结构

一.数据结构的接口 在Java中所有类的鼻祖是Object类,但是所有有关数据结构处理的鼻祖就是Collection和Iterator接口,也就是集合与遍历. 1.Collection接口 Collection c = new Xx(); // c可以称为Collection接口回调对象,虽然它被声明为Collection类型,但是实例化时实现的是接口的实现类Xx.它的方法也是用来操作实现类的对象. <span style="white-space:pre"> </s

java学习笔记 第二篇 核心技术(二)

第十四章 集合类 集合类用来存放对象的引用.继承关系如下图: 14.1 Collection 接口 是层次结构中的根接口,构成Collection的单位称为元素.Collection接口不能直接使用,但该接口提供了添加元素.删除元素.管理数据的方法. Collection接口常用方法: 14.2 List 集合 包括List接口以及List集合的所有实现类.List集合中的元素允许重复,各元素循序就是对象插入的顺序 1.List接口,两个重要方法: get(int index): 获取指定索引位

java学习笔记 5

随手 看到了这篇关于Java到底哪里出了问题的文章,笑傻了23333 “Java developers just can’t help themselves it seems - give em an inch, and next thing you know you’re looking at a OO hierarchy 15 layers deep and instantiating a hammer hammer factory.” 继承 Java中的继承用extends,所有的继承都是

Java学习笔记(2015.7.27~7.31)

Java学习笔记(2015.7.27~7.31) Java 课堂 Java学习笔记(2015.7.27~7.31) 小技巧 常用方法 1.List另一个子类--LinkedList 2.数组的常用方法 3.排序 1.二分法查找 2.数组转换为List 3.可变参数Type ... param (了解) 1.容器Collection 2.自动拆装箱(了解) 3.JDK增强for循环(了解) 4.泛型(掌握) 5.iterator与for在迭代中的区别 1.概念:保存多个对象的对象. 2.JDk为什

java学习笔记16--I/O流和文件

本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input  Output)流 IO流用来处理设备之间的数据传输,对数据的操作是通过流的方式,Java用于操作流的对象都在IO包中 输入/输出流可以从以下几个方面进行分类 从流的方向划分: 输入流.输出流 从流的分工划分: 节点流.处理流 从流的内容划分: 面向字符的流.面向字节的流 字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对