Java常用类库
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()方法——设置日历字段 YEAR、MONTH 和 DAY_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、获取任意年的二月有多少天。
分析:
- 根据指定年设置一个时间就是c.set(year, 2, 1);//某一年的3月1日。
- 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常用类库的更多相关文章
- Google的Java常用类库 Guava资料
java的人应该都知道Apache commons的java常用类库吧,这个Guava和commons一样,封装出一套比jdk本身提供的常用类库强大.既然有了这个这么强大的类库,我们就没必要重复造轮子 ...
- JAVA(三)JAVA常用类库/JAVA IO
成鹏致远 | lcw.cnblog.com |2014-02-01 JAVA常用类库 1.StringBuffer StringBuffer是使用缓冲区的,本身也是操作字符串的,但是与String类不 ...
- Java 常用类库与技巧【笔记】
Java 常用类库与技巧[笔记] Java异常体系 Java异常相关知识 Java在其创立的时候就设置了比较有效的处理机制,其异常处理机制主要回答了三个问题:what,where,why what表示 ...
- JAVA常用类库简介(转)
Java编程语言中为方便学习者学习,编制了许多类,这些类已经经过测试,都是我们编程的基础.如果不利用这些已存在的类,我们的编程工作将变得异常复杂并且效率低下.所以我们应尽可能多的掌握Java基本类库的 ...
- Java常用类库API之MD5简单使用
常用类库--MD5简单使用 MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash v ...
- Java常用类库2
1.java.util.Date类 package LESSON9; import java.util.Date; public class demo1 { public static void ma ...
- 菜鸡的Java笔记 - java 常用类库
CommonClassLibrary 常用类库 定时调度 定时调度指的是每到一个时刻,都会自动的产生某些特定的操作形式 con ...
- 谈谈Java常用类库中的设计模式 - Part Ⅰ
背景 最近一口气看完了Joshua Bloch大神的Effective Java(下文简称EJ).书中以tips的形式罗列了Java开发中的最佳实践,每个tip都将其意图和要点压缩在了标题里,这种做法 ...
- Java常用类库(一) : Object 和日期类的简单使用
顶哥说:Java是世界的,但项目不是! Java有非常多的类库,而我们不会也不用都去学习,毕竟你也仅仅掌握了你手机20%的功能却足够你使用,不是吗? 今天介绍以下类: l Object l Dat ...
- Java常用类库 读书笔记 二
1.Date类 常用操作方法: public Date () 构造方法,实例化Date类对象 public Data(long Date) ...
随机推荐
- Mysql海量数据存储和解决方案之一—分布式DB方案
1) 分布式DB水平切分中用到的主要关键技术:分库,分表,M-S,集群,负载均衡 2) 需求分析:一个大型互联网应用每天几十亿的PV对DB造成了相当高的负载,对系统的稳定性的扩展性带来极大挑战. 3 ...
- hive hwi使用
hwi(hive web interface)是hive命令行接口的补充. 使用方法: 1.配置: 在配置文件hive-site.xml 中,默认有hwi的配置 <property> &l ...
- [转]"error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
[转]"error while loading shared libraries: xxx.so.x" 错误的原因和解决办法 http://blog.csdn.net/sahuso ...
- springboot快速搭建
环境 spring-boot-starter-parent 是一个特殊的starter,它提供了有用的Maven默认设置.同时,它也提供了一个 dependency-management 节点,这样对 ...
- Java BigDecimal大数字操作
在java中提供了大数字的操作类,即java.math.BinInteger类和java.math.BigDecimal类.这两个类用于高精度计算,其中BigInteger类是针对大整数的处理类,而B ...
- JS中的forEach、$.each、map方法
forEach是ECMA5中Array新方法中最基本的一个,就是遍历,循环.例如下面这个例子: [1, 2 ,3, 4].forEach(alert); 等同于下面这个for循环 var array ...
- Careercup - Microsoft面试题 - 6543214668414976
2014-05-11 02:56 题目链接 原题: Write a function called FooBar that takes input integer n and prints all t ...
- DiskFileItemFactory类---分析及运用
DiskFileItemFactory类 将请求消息实体中的每一个项目封装成单独的DiskFileItem (FileItem接口的实现) 对象的任务由 org.apache.commons.file ...
- linux设备驱动第五篇:驱动中的并发与竟态
综述 在上一篇介绍了linux驱动的调试方法,这一篇介绍一下在驱动编程中会遇到的并发和竟态以及如何处理并发和竞争. 首先什么是并发与竟态呢?并发(concurrency)指的是多个执行单元同时.并行被 ...
- printf的一个常用技巧
acm 的题目经常要求输出最后面一位不能有空格: 用if语句显得代码难看: 实现如下: int a[5]={1,2,3,4,5}; for(int i=0;i<=4;i++) printf(&q ...