日期时间类
一、Date类
1、位于java.util包下,用于表示当前的日期和时间
2、具体实现代码如下:
<pre name="code" class="java">import java.util.Date;
public class DateText {
public static void main(String[] args) {
Date date = new Date();
System.out.println("当前毫秒数:"+date.getTime());
System.out.println("当前年份:"+(date.getYear()+1900));
System.out.println("当天月份:"+date.getMonth()+1);
System.out.println("当天星期:"+date.getDay());
System.out.println("当天日子:"+date.getDate());
System.out.println("当前小时:"+date.getHours());
System.out.println("当前分钟:"+date.getMinutes());
System.out.println("当前秒钟:"+date.getSeconds());
System.out.println(date.toGMTString());
}
}
3、需要注意的是,Date.getYear()方法是获取1900年到今年的年数差,Date.getMonth()方法是从0开始算起,即一月为0,依次类推
4、由于Date类的方法多数被废弃,并不推荐使用。因此对于日期和时间的类更推荐使用Calendar类
5、GMT: 格林威治时间标准时间; UTC:世界统一时间
二、Calendar类
1、Calendar为抽象类,不能被实例化,可以同过Calendar c = Calendar.getInstance()获取当前实例
2、Calendar类可以与Date类进行转换,如:
Calendar c = Calendar.getInstance();
Date d = new Date();
Calendar c1 = d.getTime();//Date对象转化为Calendar对象
Date d1 = c1.setTime();//Calendar对象转化为Date对象
3、具体代码如下:
public class CalendarText {
public static void main(String[] args) {
Calendar rightNow = Calendar.getInstance();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("");
System.out.println("当前毫秒数:"+rightNow.getTimeInMillis());
System.out.println("当前年份:"+rightNow.get(Calendar.YEAR));
System.out.println("当前月份:"+(rightNow.get(Calendar.MONTH)+1));
System.out.println("当前日期:"+rightNow.get(Calendar.DATE));
System.out.println("当前小时:"+rightNow.get(Calendar.HOUR_OF_DAY));
System.out.println("当前分钟:"+rightNow.get(Calendar.MINUTE));
System.out.println("当前秒数:"+rightNow.get(Calendar.SECOND));
System.out.println("完整日期:"+rightNow.getTime());
}
}
4、注意::①HOUR 和 HOUR_OF_DAY前者12小时制后者24小时制
②rightNow.get(Calendar.DAY_OF_WEEK)方法:周日为1,依次类推
③rightNow.get(Calendar.MONTH)方法:从0开始,即一号为0
三、SimpleDateFormat 类
1、SimpleDateFormat类是用来对日期格式化输出的类
2、日期表示格式通常有如下几种:yyyy/MM/ddHH:mm:ss 如 2016/01/0117:55:00'
yyyy/MM/ddHH:mm:ss a 如 2016/01/0117:55:00 pm'
yyyy-MM-ddHH:mm:ss 如 2016-01-0117:55:00'
yyyy-MM-ddHH:mm:ss a 如 '2016-01-0117:55:00 am'
yyyy年MM月dd日 HH时mm分ss秒 如'2016年01月01日 17时55分00秒'
3、具体实现:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
System.out.println(simpleDateFormat.format(new Date()));
运行结果:
2016/07/18 11:06:09 下午
集合
集合与数组的区别:前者为动态,可以改变集合大小;后者为静态,一旦声明不可改变数组长度。
集合类存放与java.util包中,主要包括set(集)、list(列表)、map(映射)
一、Collection类
1、Collection是集合类的上级接口,继承与他的接口主要有Set 和List.
2、Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
3、常用方法:
boolean add(E e):向集合中添加元素
boolean addAll(Collection<? extends E> c):将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。
void clear():移除此 collection 中的所有元素
boolean contains(Object o):如果此 collection 包含指定的元素,则返回 true。
boolean containsAll(Collection<?> c):如果此 collection 包含指定 collection 中的所有元素,则返回 true。
boolean isEmpty():如果此 collection 不包含元素,则返回 true。
Iterator<E> iterator():返回在此 collection 的元素上进行迭代的迭代器。
boolean remove(Object o):从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。
int size():返回此 collection 中的元素数。 toArray():返回包含此 collection 中所有元素的数组。
二、Set集合之HashSet
1、HashSet集合是无序的,不重复的
2、hashCode()方法:判断两个对象是否相等
3、HashSet集合判断重复的标准是:①两个对象的hashCode()返回值相同; ②equals()为true
4、HashSet实现方式是基于HashMap类的。
三、List集合之ArrayList
1、与Set相似,但相对于Set,List集合是有序的,可重复的
四、Map类之HashMap
HashMap是最常用的Map集合,无序的,为key + value的形式存储元素,而且key是唯一的,value可以重复
2、常用方法:
put(key,value);添加元素
get(key):获取key对应的value
containsKey(key):判断是否存在key
3、遍历方法:
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
}
泛型
1、泛型可以指定参数的类型,通常与集合同时出现
2、泛型的好处:加强了类型安全以及减少类型转换的次数:如下代码
public static void main(String[] args) {
//创建一个指向保存字符串的List集合
List strList = new ArrayList();
strList.add("速度");
strList.add("呵呵哒");
//不小心把一个Integer对象丢进了集合
//strList.add(100);
//遍历集合
for(int i = 0 ; i<strList.size();i++){
//强制转换
String string = (String)strList.get(i);//在这里程序将会出错,但是在编译期并不会发现错误
System.out.println(string.length());
}
}
以上代码在运行时将会报错,若添加了泛型,则可以在编译期尽早发现问题,提高了程序的安全性
即
List strList = new ArrayList();
改为
List<String> strList = new ArrayList<String>();
异常
异常是一个事件,发生在程序运行期间,干扰了正常的指令流程;
以下为异常类型结构图:
1、通常使用try{}catch{}来捕获异常
try {
int a = 3/0;
} catch (ArithmeticException e) {
System.err.println("除数不能为零");
e.printStackTrace();
}
2、如果一个方法可能会出现异常,而自身又无法解决这个异常,也可以通过throws来主动抛出异常
public static void createArray() throws NegativeArraySizeException{
//定义方法并抛出异常
//创建数组
int[] arr = new int[-1];
}
3、Exception.printStackTrace()方法:打印异常信息
4、注意事项:
不要过度使用异常
不要使用过于庞大的try块
避免使用Catch All语句
不要忽略捕获到的异常