#码神心得_13# java基础类库3

来源:互联网 发布:linux修改网络配置 编辑:程序博客网 时间:2024/06/17 01:16

日期时间类

一、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可以重复

        1、声明方式:Map<Object, Object> map = new HashMap<>()

        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语句

         不要忽略捕获到的异常


               

0 0