java快速入手文檔-基礎總結_第1頁
java快速入手文檔-基礎總結_第2頁
java快速入手文檔-基礎總結_第3頁
java快速入手文檔-基礎總結_第4頁
java快速入手文檔-基礎總結_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1 Eclipse相關1.1 常見錯誤eclipse項目紅色感嘆號應該是你的JDK路徑不一致,重新設置下就好了Add library à jre system library1.2 編輯器正則表達式替換刪除空行: s*n刪除2 Java基礎2.1 數組聲明:int s;int s;定義:S= new int5;1. 動態(tài)初始化:數組定義與為數組分配空間和賦值的操作分開進行;2.靜態(tài)初始化:在定義數字的同時就為數組元素分配空間并賦值;3.默認初始化:數組是引用類型,它的元素相當于類的成員變量,因此數組分配空間后,每個元素也被按照成員變量的規(guī)則被隱士初始化.2.2 文件輸入輸出流Inpu

2、t 讀入 output寫出FileOutputStream outputStream = new FileOutputStream(contextRealPath + "/"+fileName);InputStream inputStream = item.getInputStream();inputStream.read();outputStream.write();3 Java類集collection:父接口; Set:接口 -一個實現類: HashSet List:接口-三個實現類: LinkedList,Vector,ArrayList3.1 List(Collec

3、tion的一個子接口允許重復且有序)3.1.1 Arraylist簡單操作List<String> mylist=new ArrayList<String>();/沒有長度限制 /*插入元素*/ mylist.add("hello"); mylist.add(0,"MLDN"); /在位置0插入元素 /*刪除元素*/ mylist.remove(0); /兩種刪除方式 mylist.remove("world"); /此處為string,若為匿名對象,可能無法刪除。 /*輸出元素1*/ for(int i=0;

4、i<mylist.size();i+) System.out.println( mylist.get(i) ); 或 System.out.println(mylist);3.1.2 Linklist簡單操作LinkedList<String> link=new LinkedList<String>(); /*添加數據*/ link.add("A");/ System.out.println(link); link.addFirst("FIRST"); link.addLast("LAST");/ Sys

5、tem.out.println(link); System.out.println("鏈表頭:"+link.getFirst(); System.out.println("鏈表頭:"+link.getLast(); /*讀取數據*/ for (int i=0;i<link.size();i+) System.out.println(link.element(); 3.1.3 Vector and EnumerationVector<String> vec=new Vector<String>();vec.add("

6、a");vec.add("b");vec.add("c");Enumeration<String> enume=vec.elements();while(enume.hasMoreElements()System.out.print(enume.nextElement()+"、");HashMapMap<String,Integer> map=new Hashtable<String,Integer>();/* * Hashtable 和HashMap的區(qū)別: * HashMapJDK1.

7、0時推出,同步,性能低,線程安全 * */map.put("zhangsan",1);map.put("zhangsan",2);map.put("lisi", 3);map.put("wangwu", 4);Integer value=map.get("zhangsan");/根據key取value/*集合返回所有的key*/Set<String> set=map.keySet(); /*取所有value*/Collection<Integer> col=map.val

8、ues();Iterator<Integer> itervalue=col.iterator();/*取所有的鍵值對*/Iterator<String> keyiter=set.iterator();while(keyiter.hasNext()String key=keyiter.next();System.out.println(key+"->"+map.get(key);3.2 Set不允許重復的子接口3.2.1 HashSet(散列存放的子類)Set<String> set=new HashSet<String>

9、(); set.add("A"); set.add("B"); set.add("C"); set.add("C"); /可放入重復元素 ,但是不重復存儲和顯示 System.out.println(set);3.2.2 TreeSet(排序存放的子類) Set<String> set=new TreeSet<String>(); /有序的集合 set.add("B"); set.add("A"); set.add("C"); Sy

10、stem.out.println(set);3.3 集合輸出遍歷的方式有如下四種,它們的使用率是不一樣的:Iterator-95%ListIterator-1%Enumeration-4%foreach-0%3.3.1 Iterator(迭代輸出)List<String> allList=new ArrayList<String>(); allList.add("a"); allList.add("b"); allList.add("c"); Iterator<String> iter=allLis

11、t.iterator(); while(iter.hasNext() String str=iter.next();/取當前元素,指針下移。 if("c".equals(str) / iter.remove(); /正確,但是很少使用 allList.remove(str); /錯誤,不能直接用集合中的remove方法。 3.3.2 ListIterator(雙向迭代輸出)List<String> allList=new ArrayList<String>();allList.add("a");ListIterator<St

12、ring> iter=allList.listIterator();System.out.println("從前向后輸出:");while(iter.hasNext()System.out.print(iter.next()+"、");System.out.println("從后向前輸出:");while(iter.hasPrevious()System.out.print(iter.previous()+"、");3.3.3 Foreach(新的支持)1.     &

13、#160;   List<String> all = new ArrayList<String>();  2.         all.add("hello");  3.         all.add("world");  4.  &

14、#160;      for (String str : all)   5.             System.out.println(str);  6.           3.4 Map接口3.4.1 HashMap/*

15、* Map的輸出: * 1.Set <Map.Entry<K,V>> entrySet()獲取Set集合 * 2.通過Set為Iterator進行初始化 * 3.通過Iterator取出每一個MapEntry * 4.通過Map.Entry進行key與value的分離 * */Map<String,Integer> map=new HashMap<String,Integer>();map.put("zhangsan",1);map.put("zhangsan",2);map.put("lisi&

16、quot;, 3);map.put("wangwu", 4);Integer a=map.get("wangwu");/*遍歷方法1*/Set<Map.Entry<String,Integer>> set=map.entrySet();Iterator<Map.Entry<String,Integer>> iter=set.iterator();while(iter.hasNext()Map.Entry<String, Integer> me=iter.next();System.out.pri

17、ntln(me.getKey()+"->"+me.getValue();/*方法2*/for(Map.Entry<String, Integer> me:map.entrySet() )System.out.println(me.getKey()+"->"+me.getValue();/*keyset*/Set<String> ss = map.keySet(); Iterator<String> it= ss.iterator(); while (it.hasNext() String key = it.

18、next() ; System.out.println(key + " |-> " + map.get(key) ; 3.4.2 TreeMap(有序的存放)/*treemap可以進行排序*/Map<String, Integer> map=new TreeMap<String,Integer>();map.put("zhangsan",1);map.put("zhangsan", 2);map.put("lisi", 3);map.put("wangwu", 4)

19、;Set<String> set=map.keySet();Iterator<String> iter=set.iterator();while(iter.hasNext()String key=iter.next();System.out.println(key+"->"+map.get(key);3.4.3 Hashtable1.  Map<String, String> all = new Hashtable<String, String>();

20、  2.         all.put("BJ", "BeiJing");  3.         all.put("NJ", "NanJing");  4.         Set<Map.

21、Entry<String, String>> set = all.entrySet();  5.         Iterator<Map.Entry<String, String>> iter = set.iterator();  6.         while 

22、(iter.hasNext()   7.             Map.Entry<String, String> me = iter.next();  8.             System.out.println(me.getKey() 

23、+ " -> " + me.getValue();  9.           3.5 Stack類1.   Stack<String> s = new Stack<String>();  2.         s.pu

24、sh("A");  3.         s.push("B");  4.         s.push("C");  5.         System.out.println(s.pop();  6.  &

25、#160;      System.out.println(s.pop();  7.         System.out.println(s.pop();  8.         System.out.println(s.pop(); 3.6 其他3.6.1 collectionsList<String> allL

26、ist=new ArrayList<String> ();Collections.addAll(allList, "e.hello","d.hello");Collections.sort(allList);3.6.2 compareToclass PersonTest implements Comparable<PersonTest> private String name; private int age; public PersonTest(String name, int age) = name; th

27、is.age = age; public String toString() return "姓名:" + + ",年齡:" + this.age; Override public int compareTo(PersonTest o) if (this.age < o.age) return 1; else if (this.age > o.age) return -1; else return pareTo(); public class ComparableTest public static void

28、main(String args) Set<PersonTest> all = new TreeSet<PersonTest>(); PersonTest a= new PersonTest("張三", 20); PersonTest b= new PersonTest("張三", 30); PersonTest c= new PersonTest("張三", 40); all.add(a); all.add(b); all.add(c); System.out.println(all); System.out

29、.println(pareTo(b); 4 正則表達式4.1 正則表達式語法正則表達式符號:句點符號(.):匹配所有字符, 如t.n 方括號(): 定義匹配集合,單字符匹配, 如taeion或符號(|):或運算,如t(a|e|i|o|oo )n$:匹配行結束符。 匹配一行的開始。/轉義符,用來將元字符當作普通的字符來進行匹配。“”符號稱為“否”符號。常用的限定符代碼/語法說明*重復零次或更多次+重復一次或更多次?重復零次或一次n重復n次n,重復n次或更多次n,m重復n到m次常用的元字符:代碼說明.匹配除換行符以外的任意字符w匹配字母或數字或下劃線或漢字s匹配任意的空白符d匹配數字b匹配單詞的開

30、始或結束匹配字符串的開始$匹配字符串的結束常用的反義代碼代碼/語法說明W匹配任意不是字母,數字,下劃線,漢字的字符S匹配任意不是空白符的字符D匹配任意非數字的字符B匹配不是單詞開頭或結束的位置x匹配除了x以外的任意字符aeiou匹配除了aeiou這幾個字母以外的任意字符4.2 常用正則表達式1 正則表達式文本框輸入內容控制 2 整數或者小數:0-9+.0,10-90,2$ 3 只能輸入數字:"0-9*$"。 4 只能輸入n位的數字:"dn$"。 5 只能輸入至少n位的數字:"dn,$"。 6 只能輸入mn位的數字:。"dm,

31、n$" 7 只能輸入零和非零開頭的數字:"(0|1-90-9*)$"。 8 只能輸入有兩位小數的正實數:"0-9+(.0-92)?$"。 9 只能輸入有13位小數的正實數:"0-9+(.0-91,3)?$"。 10 只能輸入非零的正整數:"+?1-90-9*$"。 11 只能輸入非零的負整數:"-1-90-9"*$。 12 只能輸入長度為3的字符:".3$"。 13 只能輸入由26個英文字母組成的字符串:"A-Za-z+$"。 14 只能輸入由2

32、6個大寫英文字母組成的字符串:"A-Z+$"。 15 只能輸入由26個小寫英文字母組成的字符串:"a-z+$"。 16 只能輸入由數字和26個英文字母組成的字符串:"A-Za-z0-9+$"。 17 只能輸入由數字、26個英文字母或者下劃線組成的字符串:"w+$"。 18 驗證用戶密碼:"a-zA-Zw5,17$"正確格式為:以字母開頭,長度在618之間,只能包含字符、數字和下劃線。 19 驗證是否含有%&',;=?$"等字符:"%&',;=?

33、$x22+"。 20 只能輸入漢字:"u4e00-u9fa50,$" 21 驗證Email地址:"w+(-+.w+)*w+(-.w+)*.w+(-.w+)*$"。 22 驗證InternetURL:"http:/(w-+.)+w-+(/w-./?%&=*)?$"。 23 驗證電話號碼:"(d3,4-)|d3.4-)?d7,8$"正確格式為:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"

34、XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。 24 驗證身份證號(15位或18位數字):"d15|d18$"。 25 驗證一年的12個月:"(0?1-9|10-2)$"正確格式為:"01""09"和"1""12"。 26 驗證一個月的31天:"(0?1-9)|(1|2)0-9)|30|31)$"正確格式為;"01""09"和"1&q

35、uot;"31"。 27 匹配中文字符的正則表達式: u4e00-u9fa5 28 匹配雙字節(jié)字符(包括漢字在內):x00-xff 29 應用:計算字符串的長度(一個雙字節(jié)字符長度計2,ASCII字符計1) 30 Stotype.len=function()return this.replace(/x00-xff/g,"aa").length; 31 匹配空行的正則表達式:ns| *r 32 匹配html標簽的正則表達式:<(.*)>(.*)</(.*)>|<(.*)/> 33 匹配首尾空格的正則表達

36、式:(s*)|(s*$)4.3 詳解Pattern類和Matcher類Pattern p=Ppile("w+"); p.pattern();/返回 w+4.3.1 Pattern.split(CharSequence input) Pattern p=Ppile("d+"); String str=p.split("我的QQ是:456456我的電話是:0532214我的郵箱是:aaa"); 結果:str0="我的QQ是:" str1="我的電話是:" str2="我的郵箱是:aaa&q

37、uot;4.3.2 Pattern.matches是一個靜態(tài)方法,用于快速匹配字符串,該方法適合用于只匹配一次,且匹配全部字符串. Java代碼示例: Pattern.matches("d+","2223");/返回truePattern.matcher(CharSequence input)pattern= Ppile("b*g");Matcher matcher = pattern.matcher("bbg");System.out.println(matcher.matches();4.3.3 Matcher

38、.matches()/ Matcher.lookingAt()/ Matcher.find()matches()對整個字符串進行匹配,只有整個字符串都匹配了才返回true Java代碼示例: Pattern p=Ppile("d+"); Matcher m=p.matcher("22bb23"); m.matches();/返回false,因為bb不能被d+匹配,導致整個字符串匹配未成功.lookingAt()對前面的字符串進行匹配,只有匹配到的字符串在最前面才返回true Java代碼示例: Pattern p=Ppile("d+"

39、); Matcher m=p.matcher("22bb23"); m.lookingAt();/返回true,因為d+匹配到了前面的22find()對字符串進行匹配,匹配到的字符串可以在任何位置. Java代碼示例: Pattern p=Ppile("d+"); Matcher m=p.matcher("22bb23"); m.find();/返回true4.3.4 Mathcer.start()/ Matcher.end()/ Matcher.group()start()返回匹配到的子字符串在字符串中的索引位置. end()返回匹

40、配到的子字符串的最后一個字符在字符串中的索引位置. group()返回匹配到的子字符串 Java代碼示例: Pattern p=Ppile("d+"); Matcher m=p.matcher("aaa2223bb"); m.find();/匹配2223 m.start();/返回3 m.end();/返回7,返回的是2223后的索引號 m.group();/返回22235 Dom4jdom4j相關的jar拷貝到WEB-INF/lib下。5.1 解析XML讀取XML文檔:SAXReader saxReader = new SAXReader();Docu

41、ment document = saxReader.read(new File(filename); /讀取XML文件,獲得document對象獲取根節(jié)點:Element root=document.getRootElement();獲取迭代器Iterator i=root.elementIterator();根據迭代器新建節(jié)點:Element b=(Element)i.next();獲取節(jié)點屬性:b.attributeValue("id");獲取子節(jié)點內容:b.elementText("author")5.2 新建XML文件:Document doc=

42、DocumentHelper.createDocument();創(chuàng)建根節(jié)點:Element root=doc.addElement("books");創(chuàng)建子節(jié)點: Element b=root.addElement("book");為節(jié)點添加屬性: b.addAttribute("id",book.getId() );為節(jié)點添加文本: au.setText(book.getAuther();5.3 輸出到xml文件XMLWriter writer = new XMLWriter(new FileOutputStream(outfile

43、,"UTF-8");writer.write(doc);writer.close();輸出特殊格式:OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("gb2312"); XMLWriter writer = new XMLWriter(System.out,format); writer.write(doc);5.4 修改節(jié)點屬性和內容List list = document.selectNodes("/books/book/show"

44、;);/ 用xpath查找節(jié)點book的屬性Iterator iter = list.iterator();while (iter.hasNext() Attribute attribute = (Attribute) iter.next();if (attribute.getValue().equals("yes")     attribute.setValue("no");List list = document.selectNodes("/books/book/title");/ 用xpath查找節(jié)

45、點book的內容Iterator iter = list.iterator();while (iter.hasNext() Element element = (Element) iter.next();element.setText("xxx");/ 設置相應的內容5.5 刪除節(jié)點List list = document.selectNodes("/books/book");/ 用xpath查找對象Iterator iter = list.iterator();while (iter.hasNext() Element bookElement = (E

46、lement) iter.next();/ 創(chuàng)建迭代器,用來查找要刪除的節(jié)點,迭代器相當于指針,指向book下所有的title節(jié)點Iterator iterator = bookElement.elementIterator("title");while (iterator.hasNext() Element titleElement = (Element) iterator.next();if (titleElement.getText().equals("ajax in action") bookElement.remove(titleElement

47、);5.6 字符串與XML的轉換1. 將字符串轉化為XML String text = "<members> <member>sitinspring</member> </members>" Document document = DocumentHelper.parseText(text); 2. 將文檔或節(jié)點的XML轉化為字符串. SAXReader reader = new SAXReader();Document document = reader.read(new File("input.xml"

48、);Element root=document.getRootElement();String docXmlText=document.asXML();String rootXmlText=root.asXML();Element memberElm=root.element("member");String memberXmlText=memberElm.asXML();6 Properties6.1 讀取配置文件Properties prop = new Properties(); FileInputStream fis = new FileInputStream(&q

49、uot;perties"); prop.load(fis); prop.list(System.out); System.out.println("nThe foo property: " + prop.getProperty("foo");getProperty(String key, String defaultValue) /defaultValue為讀取不到值時取的默認值6.2 寫入配置文件Properties properties = new Properties(); OutputStream outputStr

50、eam = new FileOutputStream(filename); properties.setProperty("username", "myname"); properties.setProperty("password", "mypassword"); properties.setProperty("chinese", "中文"); properties.store(outputStream, "author: shixing_11"); o

51、utputStream.close(); 7 環(huán)境配置問題7.1 java web環(huán)境的部署tomcat的安裝:在官網下載 /,安裝時默認8080端口,正式發(fā)布項目時要改成80。用戶名密碼自己設置。安裝完之后啟動bin目錄下的tomcatx.exe。如果網上下載的是壓縮包,安裝步驟如下:1.配置路徑:CATALINA_HOME 路徑為tomcat所在目錄。2.啟動服務:打開startup.bat3.測試然后瀏覽器輸入 http:/localhost:8080 就可以測試是否安裝成功。當然后續(xù)還有在conf/server.xml下的</Host

52、>上配置虛擬目錄,如: <Context path="/demo" docBase="E:demo" > </Context> 注意:虛擬目錄配置錯誤會出現服務器閃退。,也就是本機實際目錄與瀏覽器url目錄之間的一個映射的設置。 然后還有在conf/web.xml將listing設置為true,方便訪問。但是正式發(fā)布之后嚴禁開啟。一個簡單jsp文件的測試:在tomcatWorkspace目錄下新建helloweord.jsp文件,輸入:<html><head><title> Hello w

53、orld!</title></head><body><% out.println("hello world!");%></body></html>保存,開啟tomcat服務器(eclipse中開啟服務器不算),打開瀏覽器,訪問:http:/localhost:8080/demo/helloword.jsp7.2 Tomcat6解壓版的配置方法一:準備:拷貝一份tomcat修改:1. Startup.bat 在第一行前面加入如下兩行SET JAVA_HOME=JDK目錄SET CATALINA_HOME=

54、解壓后Tomcat的目錄Catalina.bat設置 set catalina_home=D:/tomcat_homeservice.bat:REM 添加下面的一行set CATALINA_HOME=(前面解壓后Tomcat的目錄)REM 如果從來沒有安裝過Tomcat,或者保證Services.msc啟動服務管理器檢查沒有Apache Tomcat系統(tǒng)服務,到此你就可以轉到第REM 二步了。2. 安裝tomcat服務Cmd進入tomcat bin目錄: 命令行輸入 service.bat install3. 測試服務是否按照成功Services.msc 4. 運行服務:tomcat7.exe

55、5. 測試tomcat配置:Webapps中放入項目,如FileMgr web.xml注冊了servlet。瀏覽器打開網址:http:/localhost:8080/ FileMgr /servlet 方法二:虛擬機測試有效1. 修改catalina.bat文件中的titile名字:if "%TITLE%" = "" set TITLE=Tomcat 2. 修改startup.bat 添加java和catalina路徑:3. 修改server.xml修改端口號7.3 Eclipse IDE for Java EE Developers應該說下載之后解壓,

56、管理員身份運行eclipse.exe 文件,設置目錄就應該沒有問題了。因為我的電腦上有一個舊版本的eclipse沒有刪,當我把目錄設置為舊版本的eclipse的目錄時,會提示舊版本目錄無效,忽略之,點擊確定,進入eclipse,但是系統(tǒng)一直building workspace. building的進度已經到了無法容忍的地步,解決方法很簡單。在eclipse.exe 所在的這個目錄下有個文件eclipse.ini ,我用editplus打開這個文件,在首行加入 -clean再重啟,問題就解決了。7.4 eclipse中配置tomcat:點擊EclipseEE的菜單欄Windows - show view - servers,下面控制臺那一塊會切換到servers這個頁面,你直接在這部分的空白區(qū)域點右鍵New - Server,在出現的對話框中,選擇Ap

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論