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

时间:2023-11-23 14:37:26

System类

 package p1;

 import java.util.Properties;
import java.util.Set; public class SystemDemo { private static final String LINE_SEPARATOR = System.getProperty("line.separator"); //设置换行 public static void main(String[] args) {
/*
* System:类中的方法和属性都是静态的。
* 常见方法:
* long currentTimeMills();获取当前时间的毫秒值。(返回当前时间与协调世界时间1970年1月1日午夜之间的时间差)
*/
// demo1();
demo2();
// demo3(); } public static void demo3() {
System.setProperty("age", "28");
System.setProperty("name", "张三"); System.out.println(System.getProperty("age"));
System.out.println(System.getProperty("name")); System.out.println("hello"+LINE_SEPARATOR+"woorld");
}
/*
* demo3运行结果:
* 28
张三
hello
woorld */ public static void demo2() {
/*
* Properties getProperties() 获取系统的属性信息,并存储到Properties集合中
*
* Properties集合中存储都是String类型的键和值 //所以定义Properties类型的变量时不必带泛型
* 最好使用它自己的存储和取出的方法来完成元素的操作
*/
Properties prop = System.getProperties();
// System.out.println(prop); Set<String> nameSet = prop.stringPropertyNames(); for (String name : nameSet)
{
String value = prop.getProperty(name); System.out.println(name+"::"+value);
}
} public static void demo1() {
long l1 = System.currentTimeMillis();
System.out.println(l1);//返回1473476846438 毫秒数
System.out.println(l1/1000/60/60/24); //返回 17054 天数 // code...
long l2 = System.currentTimeMillis();
System.out.println(l2-l1); //返回的是code...代码执行所用时间
} }

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

Runtime类

 package p1;

 import java.io.IOException;

 public class RuntimeDemo {

     public static void main(String[] args) throws IOException, InterruptedException {
/*
* 每一个Java程序都有一个Runtime类案例,使应用程序能够与其运行的环境相连,可以通过getRuntime方法获取当前运行时。
* 应用程序不能创建自己的Runtime类案例。
*/ /*
* Runtime:没有构造方法摘要,说明该类不可以创建对象
* 又发现还有非静态的方法,说明该类应该提供静态的返回该类对象的方法
* 而且只有一个,说明Runtime类使用了单列设计模式。
*/ Runtime r = Runtime.getRuntime(); // Process p = r.exec("notepad.exe");//打开notep
Process p = r.exec("notepad.exe D:\\1.txt");//打开notepad,在用notepad打开TXT
//r.exec("软件路径 文件路径");
Thread.sleep(5000);
p.destroy();//杀掉进程 5s后notepad关闭 } }

Math类

 package p1;

 import java.util.Random;

 public class MathDemo {

     public static void main(String[] args) {
/*
* Math:提供了操作数学运算的方法。都是静态的。
*
* 常用方法:
* ceil():返回大于参数的最小整数
* floor():返回小于参数的最大整数
* round():返回四舍五入的整数
* pow(a,b):a的b次方
* random():返回带正号的 double 值,该值大于等于 0.0 且小于 1.0
*/ // demo();
RandomDemo(); } public static void RandomDemo() {
Random r = new Random(); for (int i=0; i<10; i++)
{
double d = r.nextDouble();//与Math.random()方法类似
System.out.println(d);
/*
* 0.013546684829438105
0.08058717380462299
0.25156348709107823
0.8149201340850071
0.37986882841498293
0.23718135066250312
0.6348939629694422
0.9508777684076484
0.8231478486704749
0.4605800387044423
*/
} for (int i=0; i<10; i++)
{
int d1 = r.nextInt(10); //随机返回0~10(不包含)间任意一个int值。
System.out.println(d1); }
} public static void demo() {
double d1 = Math.ceil(12.53);
double d2 = Math.floor(12.53);
double d3 = Math.round(12.13);
double d4 = Math.pow(10, 3); System.out.println(d1); //13.0
System.out.println(d2); //12.0
System.out.println(d3);//12.0
System.out.println(d4);//1000.0 for (int i=0; i<10; i++)
{
double d = Math.random();
System.out.println(d);
/*
* 0.3027275615429248
0.5238495879790577
0.987839818675654
0.6749156933585441
0.8474524363649824
0.412124228077851
0.009324944666969759
0.9136918707539762
0.41197917556520036
0.3277617281962496
*/
}
} }

Date类

 package p1;

 import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; public class DateDemo { public static void main(String[] args) throws ParseException {
// method_demo1();
// method_demo2();
method_demo3(); } public static void method_demo3() throws ParseException { /*
*将日期格式的字符串-->日起对象
* 使用的是DateFormat类中的parse()方法。
*/ String str = "2016年9月10日 星期六";
String str1 = "2016--09--10 02:22:08"; DateFormat dateformat = DateFormat.getDateInstance(DateFormat.FULL);//格式与日期格式要对应
DateFormat dateformat1 = new SimpleDateFormat("yyyy--MM--dd hh:mm:ss"); Date date = dateformat.parse(str);
System.out.println(date);//Sat Sep 10 00:00:00 CST 2016 Date date1 = dateformat1.parse(str1);
System.out.println(date1);//Sat Sep 10 02:22:08 CST 2016
} public static void method_demo2() {
/*
* 对日期对象进行格式化
* 将日期对象-->日期格式的字符串
* 使用DateFormat类中的format方法。
*/ Date date = new Date(); //获取日期格式对象,有FULL,LONG,SHORT,MEDIUM(默认)格式。不标明就是默认格式
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL);
// System.out.println(dateFormat); //java.text.SimpleDateFormat@ef7951d7
String str = dateFormat.format(date);
System.out.println(str);//2016年9月10日 星期六 DateFormat dateFormat1 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.LONG);
String str1 = dateFormat1.format(date);
System.out.println(str1); //2016年9月10日 星期六 下午02时14分18秒 //如果风格想要自定义呢?
DateFormat dateFormat2 = new SimpleDateFormat("yyyy--MM--dd hh:mm:ss");
String str2 = dateFormat2.format(date);
System.out.println(str2); //2016--09--10 02:22:08 } public static void method_demo1() { /*
* 日期对象和毫秒值之间的转换
*
* 毫秒值-->日期对象
* 1.通过Date对象的构造方法 new Date(timeMills);
* 2.还可以通过Settime设置
*
* 日期对象-->毫秒值
* getTime方法
*/ long time = System.currentTimeMillis();
System.out.println(time); // Date date = new Date(); //将当前日期和时间封装成date对象。
System.out.println(date); //Sat Sep 10 13:39:21 CST 2016 Date date1 = new Date(1473485640659l); //将指定毫秒值封装成date对象。
System.out.println(date1); //Sat Sep 10 13:34:00 CST 2016 Date date2 = new Date();
date2.setTime(1473485640659l);
long l = date2.getTime();
System.out.println(l); //
} }
 package p1;

 import java.text.DateFormat;
import java.text.ParseException;
import java.util.Date; /*
* “2012-3-17”到“2012-4-6”间有多少天
*
* 思路:
* 日期格式字符串-->日期对象-->获取毫秒值-->相减
*/
public class DateTest { public static void main(String[] args) throws ParseException { String str_date1 = "2012-3-17";
String str_date2 = "2012-4-6"; test(str_date1,str_date2); } public static void test(String str_date1, String str_date2) throws ParseException {
DateFormat dateformat = DateFormat.getDateInstance();//对应格式 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); } public static int getDay(long time) {
int day = (int)(time/1000/60/60/24);
return day;
} }

Calendar类

 package cn.itcast.p1.otherapi;

 import java.util.Calendar;

 public class CalendarDemo {

     public static void main(String[] args) {
Calendar c = Calendar.getInstance();
System.out.println(c);
/*电脑当前时间的日历
*
* java.util.GregorianCalendar[time=1473493014690,areFieldsSet=true,
areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",
offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,
minimalDaysInFirstWeek=1,ERA=1,YEAR=2016,MONTH=8,WEEK_OF_YEAR=37,WEEK_OF_MONTH=2,DAY_OF_MONTH=10,
DAY_OF_YEAR=254,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=3,HOUR_OF_DAY=15,
MINUTE=36,SECOND=54,MILLISECOND=690,ZONE_OFFSET=28800000,DST_OFFSET=0] */ showDate(c); showDays(2016);//判断2016的二月有多少天 } public static void showDays(int i) {
Calendar c = Calendar.getInstance();
c.set(i, 2, 1); c.add(Calendar.DAY_OF_MONTH, -1);
showDate(c);
} public static void showDate(Calendar c) { int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1;
int day = c.get(Calendar.DAY_OF_MONTH);
int week = c.get(Calendar.DAY_OF_WEEK);
int hour = c.get(Calendar.HOUR_OF_DAY);
int min = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND); System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week)+" "+hour+":"+min+":"+second);
} public static String getWeek(int week) {
String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"}; return weeks[week];
} }

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