您的位置:首页 > 其它

本周总结

2015-08-30 11:48 267 查看
本周所学包括三个部分,常用类的使用,线程,以及集合和流常用类包括字符类,Calendar,SimpleDate和Date,这三个是获取日期常用的类,其中Date类是获取当前日期的对象,用该方法获得的年份需要加上1900才是正确的年份,Calendar类是一个抽象的类,不能直接获取对象,只有通过Calendar.getInstance();获取一个当前时区的日历对象,以上两种方法获取到的月份都需要加上1,SimpleDate类是一种规范日期格式的类。除此之外,常用类还有System类,String类,包装类等包装类中主要需要掌握自动装箱和自动拆箱。所谓自动装箱就是在某些需要引用类型例如Integer类的对象的时候,这是输入int型,会自动转换成new Integer(int a)使用。自动拆箱的意思是说在进行运算的时候,Integer的对象中的数据会被取出来进行运算。String类主要掌握正则表达式和String类的基本方法Indexof是返回指定子字符串在此字符串中第一次出现处的索引。LastindexOf返回指定子字符串在此字符串中最右边出现处的索引。length()是求此字符串的长度。replace(old,new)是用新的字符串替代老的字符串,replaceAll(String rull,String replacement),将满足rull这个正则表达式的字符串全部替换成replacement这个字符串。trim()返回该字符串,忽略开头和结尾的空白。charAt(int index)返回该下标的字符。split(),根据指定的正则表达式来划分该字符串,切割出来的部分用一个String[]保存。
汉字的正则表达式——\u4e00-\u9fa5;
另外String类型在new String()的时候可能会产生两个对象,并且String类型在进行删除,添加,等操作时,会在数据段中产生一个新的字符串常量,这样会加大内存的消耗,而StringBuffer在缓冲区产生对象,并且对其进行更改不会产生新对象。
——————————————————————————————————————————————————————————————————线程:
多个线程共享一个进程的空间。
主线程在main方法中,线程启动需要用start()方法。
线程的创建有两种方法,一是创建一个类继承Thread类,在其中改写run()方法。二是创建一个类实现Runnable接口,在其中改写run方法,在方法中通过Thread th  = new Thread(Runnable run),th.start()启动。
线程同步的概念:当有两个或两个以上的线程同时访问同一个资源的时候,需要使用同步来防止资源被破坏。同步的方法有两种,关键词是synchronized,一种是同步方法,一种是同步块。
在同步中被使用的还有wait()和notify();
当线程需要被暂停的时候使用wait();但是该方法必须在对象被notify之后才能继续使用。
——————————————————————————————————————————————————————————————————
集合:
集合的框架:集合有三种,Collection是List和Set的父接口,还有一个单独的Map集合。List集合和Set集合都是只需存储一个对象,而Map需要存储两个对象,一个是键对象,一个是值对象。
List集合是线性的,元素可以重复,Set集合元素不可重复,Map集合键对象不可重复。
List的实现类有三个:ArrayList,LinkedList,Vector。ArrayList和Vector都是基于数组来实现的,是一个连续的空间,所以其遍历速度快,删除和插入速度慢。LinkedList空间不连续,遍历速度慢,插入和删除的速度快。
Set的实现类也有三个HashSet,LinkedHashSet,TreeSet, HashSet和LinkedHashSet的区别在于,HashSet输出的顺序是按照Hash码来的,而LinkedSet输出的顺序是按照添加的顺序来输出的。TreeSet()的顺序是按照自然顺序来排的,如果不能按照自然顺序来排,则需要添加比较器,Comparator接口,新建一个类,重写其中方法,TreeSet(Comparator comp)。
Map的实现类有三个,HashMap,HashTable,TreeMap,HashMap允许键对象和值对象为null,HashTable不允许,Properties是HashTable的一个子类。
集中遍历方式,第一种是for循环(只适用于List集合,因为Set没有get()方法,Map的get()是根据键获取值),第二种是for each循环。第三种是建立一个迭代器,Iterator。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
流:
流的分类:流按方向分可分为读取流和写入流。按类型分,可分为字节流,字符流和对象流
建立流————>操作流——————>关闭流
字节流有InputStrame 和OutputStrame两类,Input是读取流,FileInputStrame是它的子类,作用是读取文件,read()是读取的方法,简单的read()是按字节读取,如果没有下一个字节,则返回-1。否则返回该字节的asc码。如果Byte[] by = new Byte[1024]; read(by)则是按照1024个字节来读,返回的是字节总数。Ouput是写入流,字节流只能写入字符型和整形,如果是字符串则只能.getByte();
字符流有Reader和Writer,由于FileReader中没有重写Reader的方法,所以用BufferedReader(Reader r),其中readLine()是按文本中的行来读取,如果下行没有则返回null。

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: