常见对象
一、System类
1、特点
不能实例化对象,提供的方法都是静态的。
2、System类中获取本地系统信息的方法
系统属性信息:程序在运行时获取到Jvm以及所在操作系统的一些固有信息,获取了这些信息,能为后面的程序运行提供了数据。
1 public static void systemMethodDemo(){ 2 //获取系统信息并存储到Properties中 3 Properties p = System.getProperties(); 4 //properties是map集合的小弟,可以将其转成set集合获取其中的信息 5 Set<String> set = p.stringPropertyNames(); 6 for (String string : set) { 7 System.out.println(string+p.getProperty(string)); 8 } 9 //获取指定名称的系统信息 10 System.out.println(p.getProperty("os.name")); 11 }
获取不同系统中的换行符:-------->将其定义为一个常量!
1 public class SystemDemo { 2 private static final String LINE_SEPARATOR = System.getProperty("line.separator"); 3 public static void main(String[] args) { 4 systemMethodDemo(); 5 } 6 public static void systemMethodDemo(){ 7 System.out.println("hello"+LINE_SEPARATOR+"world"); 8 } 9 }
static long currentTimeMillis():获取当前时间,以毫秒为单位。
static void exit(int status) :退出当前程序。
static void gc():调用垃圾回收器。
static Properties getProperties():获取当前系统属性。
static String getProperty(String key):根据关键字获取系统属性名称。
static String setProperty(String key, String value):设置属性的键和值。
Properties类
properties集合中存储都是string类型的键和值,最好使用它自己的存储和取出的方法来完成元素的操作。
常用方法:
Properties getProperty(String key):返回指定的属性
Object setProperty(String key,String value):设置属性的键和值
void load(InputStream inStream) :加载输入流
Set<String> stringPropertyNames() :返回属性键的集合。
二、Runtime类
没有构造方法摘要,说明该类不可以创建对象,又发现还有非静态的方法,说明该类应该提供静态的返回该类对象的方法,而且只有一个,说明runtime类使用了单例设计模式。
1、Runtime api查阅时,你看到了什么,想到了什么?
我看到了exec方法返回的是一个进程,想到了系统中的可执行文件可以通过该方法启动一个程序。
Runtime r=Runtime.getRuntime();
r.exec("notepad.exe");//打开记事本程序
//r.exec("baofengyinying.exe" e:\\dianying\\变形金刚);//使用暴风影音播放变形金刚电影。
三、Math类
1、Math中的常见方法使用
提供了操作数学元素的方法,都是静态的
int abs(int a)返回整数的绝对值
int max(int a, int b)返回两个整数的最大值
double random()返回一个伪随机值(0--1之间)
double sqrt(double a)返回一个数的平方根
double ceil():返回大于参数的最小整数
double floor():返回小于参数的最大整数
double round():返回四舍五入的值。
double pow(a,b):a的b次方。
1 public static void main(String[] args) { 2 double d = Math.ceil(12.34); 3 System.out.println(d);//13.0 4 double d1= Math.floor(12.34); 5 System.out.println(d1);//12.0 6 double d2 = Math.round(12.34); 7 System.out.println(d2);//12.0 8 double d3 = Math.round(12.56); 9 System.out.println(d3);//13.0 10 }
四、Date类
Date():将当前日期和时间封装成对象
Date(long time):将指定毫秒值封装成Date对象。
1、日期对和毫秒值之间的转换
u 毫秒值----->日期对象
1.通过Date对象的构造方法new Date(timeMilles)
Date d = new Date(122394272384947)
2.还可以通过setTime方法设置
Date d = new Date( );
d.setTime(122394272384947);
ü 为什么要把毫秒值转成日期对象呢?
因为你可以通过Date对象的方法对该日期中的各个字段(年月日等)进行操作
u 日期对象----->毫秒值long getTime()方法
ü 为什么要把日期对象转成毫秒值呢?
因为可以通过绝缘体的数值进行运算。
2、对日期对象进行格式化
将日期对象----->日期格式的字符串,使用的是DateFormat类中的format方法
获取日期格式对象,具体默认的风格。FULL、LONG等可以指定风格
1 public static void dateFormatDemo(){ 2 Date d = new Date(); 3 //使用默认风格 4 DateFormat df = DateFormat.getDateInstance();//获取DateFormat对象 5 //使用指定风格 6 df = DateFormat.getDateInstance(DateFormat.FULL); 7 //使用指定风格,包含日期和时间 8 df = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); 9 //使用自定义风格 10 df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 11 12 String str_date = df.format(d);//将日期对象----->日期格式的字符串 13 System.out.println(str_date); 14 }
将日期格式的字符串----->日期对象,使用的是DateFormat类中的parse方法
1 public static void dateFormatDemo1() throws ParseException{ 2 //日期字符串 3 String str_date = "2012-8-1"; 4 //定义日期格式化对象 5 DateFormat df = DateFormat.getDateInstance(); 6 Date date = df.parse(str_date); 7 System.out.println(date); 8 } 9 自定义日期格式,使用SimpleDateFormat构造完成 10 练习:2020/8/12和2020/8/2相差多少天? 11 public class DateTest { 12 public static void main(String[] args) throws ParseException { 13 String str1 = "2020/8/12"; 14 String str2 = "2020/8/2"; 15 long day = getDay(str1, str2); 16 System.out.println(day); 17 } 18 public static long getDay(String str1,String str2) throws ParseException{ 19 DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); 20 Date d1 = df.parse(str1); 21 Date d2 = df.parse(str2); 22 long time1 = d1.getTime(); 23 long time2 = d2.getTime(); 24 long time = Math.abs(time1-time2)/1000/60/60/24; 25 return time; 26 } 27 } 28

浙公网安备 33010602011771号