System

System:类中的方法和属性都是静态的。

out:标准输出,默认是控制台。

in:标准输入,默认是键盘。

System描述系统一些信息。获取系统属性信息:Properties getProperties()。

示例代码如下:

import java.util.Properties;

public class SystemDemo {

    public static void main(String[] args) {
Properties prop = System.getProperties(); //因为Properties是HashTable的子类,也就是Map集合的一个子类对象。
//那么可以通过map的方法取出该集合的元素。
//该集合中存储的都是字符串,没有泛型定义。 //如何在系统中自定义一些特有信息呢?
System.setProperty("mykey", "myvalue"); //获取指定属性信息
String value = System.getProperty("os.name");
System.out.println("value = " + value); //可不可以在JVM启动时,动态加载一些属性信息呢?
String v = System.getProperty("haha");
System.out.println("v = " + v);//null /*
获取所有属性信息。
for(Object obj : prop.keySet()) {
String value = (String)prop.get(obj);
System.out.println(obj + "::" + value);
}
*/
} }

在启动JVM时,如何动态加载一些属性信息?(图示说明)

Runtime

该类并没有提供构造函数。说明不可以new对象,那么会直接想到该类中的方法都是静态的。发现该类中还有非静态方法。说明该类肯定会提供方法获取本类对象,而且该方法是静态的,返回值类型是本类类型。

由这个特点可以看出该类使用了单例设计模式。

该方法是static Runtime getRuntime() 。

代码如下:

import java.io.IOException;

public class RuntimeDemo {

    public static void main(String[] args) {
Runtime r = Runtime.getRuntime();
Process p =null;
try {
//p = r.exec("D:\\BaiduYunGuanjia\\BaiduYunGuanjia.exe");//传的命令的路径可能是错误的。
p = r.exec("notepad.exe SystemDemo.java");
} catch (IOException e) {
e.printStackTrace();
}
/*
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
e.printStackTrace();
}
p.destroy();//杀掉进程
*/
} }

Date

示例代码:

import java.text.SimpleDateFormat;
import java.util.Date; public class DateDemo { public static void main(String[] args) {
Date d = new Date();
System.out.println(d);//打印的时间看不懂,希望有些格式。 //将模式封装到SimpleDateFormat对象中
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 E");
//调用format()方法让模式格式化指定Date对象
String time = sdf.format(d);
System.out.println("time = " + time);
} }

Calendar

示例代码:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; public class CalendarDemo { public static void main(String[] args) { Calendar c = Calendar.getInstance(); String[] months = {"一月", "二月", "三月", "四月",
"五月", "六月", "七月", "八月",
"九月", "十月", "十一月", "十二月"}; String[] weeks = {"", "星期日", "星期一", "星期二", "星期三",
"星期四", "星期五", "星期六"}; int index = c.get(Calendar.MONTH);
int index1 = c.get(Calendar.DAY_OF_WEEK); sop(c.get(Calendar.YEAR) + "年");
//sop((c.get(Calendar.MONTH) + 1) + "月");
sop(months[index]);
sop(c.get(Calendar.DAY_OF_MONTH) + "日");
//sop("星期" + c.get(Calendar.DAY_OF_WEEK));
sop(weeks[index1]); /*
Date d = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
String year = sdf.format(d); System.out.println(year);
*/
} public static void sop(Object obj) {
System.out.println(obj);
} }

注意:

  1、add()方法——根据日历的规则,为给定的日历字段添加或减去指定的时间量。

public abstract void add(int field, int amount)

  2、set()方法——设置日历字段 YEARMONTHDAY_OF_MONTH 的值。保留其他日历字段以前的值。

public final void set(int year, int month, int date)

示例代码如下:

import java.util.Calendar;

public class CalendarDemo1 {

    public static void main(String[] args) {
Calendar c = Calendar.getInstance(); //c.set(2012, 2, 23); c.add(Calendar.DAY_OF_MONTH, -18); printCalendar(c); } public static void printCalendar(Calendar c) {
String[] months = { "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月" }; String[] weeks = { "", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; int index = c.get(Calendar.MONTH);
int index1 = c.get(Calendar.DAY_OF_WEEK); sop(c.get(Calendar.YEAR) + "年");
sop(months[index]);
sop(c.get(Calendar.DAY_OF_MONTH) + "日");
sop(weeks[index1]);
} public static void sop(Object obj) {
System.out.println(obj);
}
}

练习1、获取任意年的二月有多少天。

分析:

  1. 根据指定年设置一个时间就是c.set(year, 2, 1);//某一年的3月1日。
  2. c.add(Calendar.DAY_OF_MONTH, -1);//3月1日,往前推一天,就是2月最后一天。

代码:

import java.util.Calendar;

public class CalendarTest {

    public static void main(String[] args) {
System.out.println("二月有" + getDays(2016) + "天");
} public static int getDays(int year) {
Calendar c = Calendar.getInstance();
c.set(year, 2, 1);
c.add(Calendar.DAY_OF_MONTH, -1);
return c.get(Calendar.DAY_OF_MONTH);
} }

练习2、获取昨天的现在这个时刻。

代码:

import java.util.Calendar;

public class CalendarTest1 {

    public static void main(String[] args) {
System.out.println(getYesterdayTime());
} public static String printCalendar(Calendar c) {
String[] months = { "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月" }; String[] weeks = { "", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; int index = c.get(Calendar.MONTH);
int index1 = c.get(Calendar.DAY_OF_WEEK); StringBuilder sb = new StringBuilder();
sb.append(c.get(Calendar.YEAR)).append("年");
sb.append(months[index]);
sb.append(c.get(Calendar.DAY_OF_MONTH)).append("日");
sb.append(weeks[index1]).append(" ");
sb.append(c.get(Calendar.HOUR)).append("时");
sb.append(c.get(Calendar.MINUTE)).append("分");
sb.append(c.get(Calendar.SECOND)).append("秒");
sb.append(c.get(Calendar.MILLISECOND)).append("毫秒"); return sb.toString(); } public static String getYesterdayTime() {
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -1);
return printCalendar(c);
} }

Math

示例代码如下:

import java.util.Random;

public class MathDemo {

    public static void main(String[] args) {
Random r = new Random(); //生产1~10的伪随机数
for(int x = 0; x < 10; x++) {
//int d = (int)(Math.random() * 10) + 1;
int d = r.nextInt(10) + 1;
sop(d);
}
} public static void show() {
double d = Math.ceil(-16.34);//返回大于指定数据的最小整数
double d1 = Math.floor(12.34);//返回小于指定数据的最大整数 long l = Math.round(12.54);//四舍五入 sop("d = " + d);
sop("d1 = " + d1);
sop("l = " + l); double d2 = Math.pow(2, 3);
sop("d2 = " + d2);
} public static void sop(Object obj) {
System.out.println(obj);
} }

练习、给定一个小数,保留该小数的后两位。

代码:

import java.text.DecimalFormat;

public class MathTest {

    public static void main(String[] args) {
System.out.println(getNumber(0.9));
} public static String getNumber(double num) {
DecimalFormat df = new DecimalFormat("#0.00");//模式不能写成"#.00"
return df.format(num);
} }

Java常用类库的更多相关文章

  1. Google的Java常用类库 Guava资料

    java的人应该都知道Apache commons的java常用类库吧,这个Guava和commons一样,封装出一套比jdk本身提供的常用类库强大.既然有了这个这么强大的类库,我们就没必要重复造轮子 ...

  2. JAVA(三)JAVA常用类库/JAVA IO

    成鹏致远 | lcw.cnblog.com |2014-02-01 JAVA常用类库 1.StringBuffer StringBuffer是使用缓冲区的,本身也是操作字符串的,但是与String类不 ...

  3. Java 常用类库与技巧【笔记】

    Java 常用类库与技巧[笔记] Java异常体系 Java异常相关知识 Java在其创立的时候就设置了比较有效的处理机制,其异常处理机制主要回答了三个问题:what,where,why what表示 ...

  4. JAVA常用类库简介(转)

    Java编程语言中为方便学习者学习,编制了许多类,这些类已经经过测试,都是我们编程的基础.如果不利用这些已存在的类,我们的编程工作将变得异常复杂并且效率低下.所以我们应尽可能多的掌握Java基本类库的 ...

  5. Java常用类库API之MD5简单使用

    常用类库--MD5简单使用 MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash v ...

  6. Java常用类库2

    1.java.util.Date类 package LESSON9; import java.util.Date; public class demo1 { public static void ma ...

  7. 菜鸡的Java笔记 - java 常用类库

    CommonClassLibrary 常用类库        定时调度            定时调度指的是每到一个时刻,都会自动的产生某些特定的操作形式                    con ...

  8. 谈谈Java常用类库中的设计模式 - Part Ⅰ

    背景 最近一口气看完了Joshua Bloch大神的Effective Java(下文简称EJ).书中以tips的形式罗列了Java开发中的最佳实践,每个tip都将其意图和要点压缩在了标题里,这种做法 ...

  9. Java常用类库(一) : Object 和日期类的简单使用

    顶哥说:Java是世界的,但项目不是! Java有非常多的类库,而我们不会也不用都去学习,毕竟你也仅仅掌握了你手机20%的功能却足够你使用,不是吗? 今天介绍以下类: l  Object l  Dat ...

  10. Java常用类库 读书笔记 二

    1.Date类 常用操作方法: public Date ()                         构造方法,实例化Date类对象 public Data(long Date)       ...

随机推荐

  1. 如何快速重置OUTLOOK2013,2016到初始配置状态,outlook 修改数据文件位置

    适用范围: 安装OUTLOOK的机器 知识点分析: 快速清除当前OUTLOOK所有账户,回归到初始配置状态. 操作步骤: WIN+R调出运行 输入: C:\Program Files (x86)\Mi ...

  2. iOS学习之Object-C语言简单的通讯录管理系统

    用这几天学的OC的知识,写了一个实现简单功能的通讯录管理系统,在这里分享给大家: 通讯录管理系统 *  需求: 1.定义联系人类Contact.实例变量:姓名(拼音,首字母大写).性别.电话号码.住址 ...

  3. [转]VC的DDK编译环境构建

    [转]VC的DDK编译环境构建 http://blog.csdn.net/skdev/article/details/1336935   1 环境状况 Windows XP SP1 NTDDK(win ...

  4. R语言实战读书笔记2—创建数据集(上)

    第二章 创建数据集 2.1 数据集的概念 不同的行业对于数据集的行和列叫法不同.统计学家称它们为观测(observation)和变量(variable) ,数据库分析师则称其为记录(record)和字 ...

  5. FPGA内部信号避免高阻态

    RT,否则警告Warning: Tri-state node(s) do not directly drive top-level pin(s),会利用或门代替中间的扇出fan-out. 原因:在进行 ...

  6. Notes of the scrum meeting(11/4)

    meeting time:20:00~20:30p.m.,November 4th,2013 meeting place:20号公寓楼前 attendees: 顾育豪                  ...

  7. openfire插件开发之完美开发

    http://redhacker.iteye.com/blog/1919329 一.说在前面 在继上篇Openfire3.8.2在eclipse中Debug方式启动最简单的方式后,我研究了openfi ...

  8. ACK

    ACK (Acknowledgement),即确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符.表示发来的数据已确认接收无误. 目录 1基本介绍 2详细释义     1基本介绍编辑 英文缩 ...

  9. BZOJ2879 [Noi2012]美食节

    AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=2879 这题codevs上也有,不过数据不同:http://codevs.cn/proble ...

  10. Android系统Recovery工作原理

    Android系统Recovery工作原理之使用update.zip升级过程分析(一)---update.zip包的制作 http://blog.csdn.net/mu0206mu/article/d ...