久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

JAVA學習路線

時間:2019-05-13 17:57:14下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《JAVA學習路線》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《JAVA學習路線》。

第一篇:JAVA學習路線

Java是一個通用的編程語言,其實可以干很多事,怎么學Java就看怎么用了。

但有一些一般的步驟:

1.熟悉一種文本編輯器,比如vim, eclipse, notepad++, textmate等。知道哪些是開源的,哪些是閉源的,哪些要收費。養成不用盜版軟件的習慣。

2.安裝JDK(建議用你的Linux發行版自帶的軟件包管理器安裝openjdk,過程中可能需要讀發行版特定的文檔)

3.寫一個Java的Hello world程序,并用命令行工具javac編譯,再用java命令運行這個程序。過程中熟悉源代碼、字節碼、虛擬機這些東西,以及Java的包(package)對.class文件所在的路徑的影響。

3.5.如果這兩個命令行工具使用熟練了,可以開始選一個喜歡的集成開發環境,比如Eclipse。當然,養成不用盜版軟件的習慣。熟悉一下如何建立“工程”,以及快捷鍵的使用。

4.學習Java的面向過程編程,包括基本數據結構、表達式、語句、控制流、函數調用。

5.學習Java的面向對象編程,包括類、引用類型和值類型的區別、成員、方法、訪問控制、繼承、多態、接口、接口實現。順便學習一下面向對象的基本思想,即對象、消息、封裝、繼承、多態等,這些通用的內容不是Java特有的。

5.5 這時候應該已經涉及了Java的垃圾回收。要留意即使有垃圾回收的情況下也會發生的內存泄露(如自己設計數組容器,元素是引用,邏輯上刪除了元素,但并沒有清成null)。

6.學習Java的異常處理,但更重要的是學習什么時候用特殊返回值而不使用異常,什么時候應該拋出異常而不處理異常,知道什么是pokemon catch及其危害,了解為什么Java的checked exception是一個糟糕的特性。如果愿意,同時學習一下Java1.7的try-with-resource語句和AutoCloseable接口。

7.熟悉Java常用的數據結構,如基本的數組類型,以及泛型容器(java.util.*),尤其是java.util.List接口和java.util.ArrayList實現;以及java.util.Map接口和java.util.HashMap實現。(java1.5以前的沒有泛型參數的就不用碰了)同時留意一下基本類型int, double等和裝箱類型Integer和Double的區別,以及它們是如何自動轉換的。

8.熟悉Java標準庫里的各種工具,包括日期時間、字符串格式化、IO等。知道文件要自己在finally子句中close(),或者用Java1.7的try-with-resource,不要妄想垃圾回收器會幫你關掉文件。

9.學習一下Java的命名習慣,以及JavaBeans的常規,知道為什么getter/setter比直接操作成員變量好。按這種方式給Java的變量、方法命名。同時看看你的IDE能不能自動幫你生成getter和setter。

10.使用一個第三方的庫(比如Apache Commons Lang通用工具庫),讓你的程序依賴于它的二進制jar包(而不是直接拷貝源代碼),用命令行編譯、運行(注意classpath等);也熟悉一下如何用你的集成開發環境添加第三方依賴。感受一下手動管理依賴關系的麻煩。

11.學習Maven的使用,試著讓Maven幫你解決依賴關系,再試著讓Maven幫你創建一個Eclipse工程。再試試用Maven打包發布。

12.學習軟件測試,以及JUnit的使用,以及怎么在IDE中使用JUnit。有空看一下coverage工具。

13.讀讀四人幫寫的《設計模式》(這本書是用C++和Smalltalk語言為例子的,但仍然適合Java)。具體的是這本書,http:///Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612 圖書館應該能還借到英文原版,因為我借到過。

接下來就看具體要做哪方面的應用了,看需求。比如(下面的沒有順序)

【....】如果學Java學得不舒服了,學Python。

* 如果對面向對象編程的概念有點不習慣,學Smalltalk。(Ruby也行,但不如Smalltalk經典。Ruby的文檔是一大硬傷。)

* 如果嫌Java太啰嗦,學Python

* 如果嫌Java太啰嗦,又想用JVM,自己又有精力,學Scala

* 如果對對象之間的關系有點暈,學一學UML,以及它的一些圖,可以對程序和運行進行直觀的建模。你的IDE也許有插件可以生成UML圖。但是不要太沉迷于這些方法論。

【調試和輔助工具】學習一下你的集成開發環境提供的調試工具,加一些斷點試試

* 試試用jconsole或者VisualVM監控另一個jvm的狀態。

* 用profiling工具尋找程序中慢的地方。Eclipse有profiling工具。VisualVM也有這樣的功能。(如果不介意使用閉源軟件的話,也試試JProfiler和YourKit)

* 有的JVM允許在運行時更新代碼。Eclipse可以和某些JVM集成。這樣你可以頻繁修改代碼而不用頻繁重啟JVM。對于某些“重型”工程很有用。(如果不介意使用閉源軟件的話,也試試jRebel)

【多線程】學習Java的多線程編程以及lock、condition的用法(包括傳統Java的synchronized語句以及新加的java.util.concurrent.*),學習一下如何讓線程停下來,以及為什么要頻繁確認isInterrupted()而不要用Thread.stop()。了解一下多核處理器、緩存、內存的關系,以及為什么多線程編程這么難。

* 如果還舒服,學習一下Runnable的用法,以及自帶的Executer等基本多線程工具。* 應該已經留意到java.util里面的很多容器不是線程安全的,但是java.util.Collections可以幫你創建一些安全的版本。另外關注一下java.util.concurrent里面有ConcurrentMap等容器可供使用。

* 如果有空的話,看看memory model(內存一致性模型)和無鎖同步(見java memory model和java.util.concurrent.atomic)。

* 如果還有空,再了解一下除了“共享內存多線程編程”以外有沒有別的模型(多進程multi-processing、消息傳遞message passing等)。

【反射、元編程】學習Java的反射機制,以及Annotation的用法。

* 如果還舒服,試試java.lang.reflect.Proxy的用法。

* 如果仍然還舒服,玩一玩CGLib(一個第三方的庫)。

【網絡編程】學習一下IP, TCP協議(計算機專業的應該學過,復習一下),學習Socket編程(注意垃圾回收器不會幫你關掉Socket)。

1.如果不是很關心HTTP,看看java.nio,學習單線程輪詢式IO復用(Selector)。

* 如果有點不明白nio的意圖的話,了解一下c10k問題。

* 如果身體沒有異樣的話,大概了解一下操作系統(包括C語言)提供的select, poll, epoll, kqueue等接口。

* 如果身體仍然沒有異樣的話,試著用java.nio寫一個文件服務器。

* 如果還有精力的話,上網扒一扒有沒有其他的通信庫,如netty等。

2.如果關心Web還有HTTP,就學習一下HTTP協議,以及用Java進行HTTP的客戶端編程。

* 如果還舒服,學學HTML,寫寫HTML的靜態網頁(不需要Java)

* 如果還舒服,用Java寫一個基于DOM、XPath或者CSS Selector的網頁解析器(爬網頁)。

* 如果還舒服,學學Java的Servlet接口(先別學jsp)進行Web服務器端編程。學學標準的Servlet容器怎么用,包括web.xml的用法以及listener、filter等概念。以及某個Servlet容器(如Jetty或者Tomcat)的具體用法。

* 如果仍然還舒服,試著學一種模板語言(如haml, velocity, freemarker,【還有其他更好的框架嗎?我不知道】, String.format,如果真的想學JSP的話JSP倒是也行,但不推薦)。* 如果仍然覺得舒服,學學Spring框架中的Web框架,或者Struts,看你的口味。* 如果還舒服,看看Spring Bean Container以及里面各種亂七八糟的工具。

* 如果還舒服,或者有需求,了解一下什么是RESTful Web Service,復習一下HTTP,找找適合的Java工具。

* 你可能會覺得Jackson是一個解析JSON用的好用的東西。

【數據庫】學習一下關系數據庫(計算機專業的應該學過,復習一下),包括SQL。選一個數據庫管理系統熟悉一下(比如MariaDB,或者(如果你不討厭Oracle的話)用被Oracle收購了的MySQL。先脫離Java單獨學學)。然后看它們的官方文檔教你怎么用Java連接這種數據庫。這中間會涉及到JDBC接口。同時一定要知道SQL注入安全漏洞,以及掌握如何用PreparedStatement防止注入!。建議看 http://bobby-tables.com/

* 可能中間會涉及“事務”問題,讓你不知不覺地開始去了解java transaction api(JTA)。* 如果還舒服,學一學對象關系轉換(如Hibernate)。

* 也可以學學非關系數據庫,以及如何用Java訪問它們。

【日志記錄】學習一下slf4j和logback的用法。

* 如果有精力的話,以及大概知道世界上有多少種Java日志框架,以及slf4j是怎么橋接這些框架的。

【構建(build)系統】學習一下Ant的用法。

* 如果還舒服的話,學習一下用Ivy從Maven的倉庫里下載軟件包,解決依賴關系。

【版本控制】學習一種分布式版本控制器(如Git、Mercurial、Bzr、Darcs等,推薦Git)的基本用法,以及如何用它管理Java工程。希望你已經開始使用Maven了。然后了解一下如何在IDE中使用(Eclipse自帶Git插件)。

* 如果感覺很舒服的話,為你們實驗室搭建一個Linux+SSH+Git服務器,裝個GitLab(一種Web界面)。并說服同事們不要再用SVN、CVS或者SourceSafe等老舊的“集中式版本控制器”了。

* 開設一個GitHub賬戶。如果你不喜歡Git,就用BitBucket等。

【持續集成】自己(或者為你們實驗室)搭建一個持續集成(Continuous Integration)服務器,定期編譯你的程序。

【零碎工具】淘一淘java.nio.files里面有什么好用的東東,然后再淘一淘Apache Commons Lang和Commons IO里有什么好用的工具。Commons Logging就不要再用了,用SLF4j和Logback。

【XML】學學XML、DOM、XPath。XML這東西到處都可能用到。也可以用它寫自己的配置文件。

* 如果覺得不舒服了,就學學JSON和YAML。

* 如果還是不舒服,就學學文本文件解析。

【語法分析和編譯器】學學Antlr或者別的Parser Generator的用法

* 如果覺得舒服,自己寫一個計算器。

* 如果還覺得舒服,自己寫一種Domain-Specific Language(DSL)。

【高效容器】學學FastUtil或者Trove,如果你需要進行大量數值運算的話。

【分布式計算】學學MapReduce的思想以及它的實現。

* 如果還舒服,學學Scala語言以及號稱比MapReduce快得多的Apache Spark。

【進程間通信】看看ActiveMQ、MINA和RMI。

【其他語言(JVM)】學習另一門跑在JVM上的語言或者實現(如Groovy、Scala、Clojure、JRuby、Jython、JavaScript……)

* 如果還舒服,學一學Java Scripting API(注意不是JavaScript。給個鏈接: http://docs.oracle.com/javase/6/docs/technotes/guides/scripting/programmer_guide/),然后試著在自己的Java程序里嵌入腳本。

【其他語言(非JVM)】學習另一門通用腳本語言(如Python、Ruby,其實perl也行,但不推薦),知道什么時候Java不是最好的選擇。

【Java語言和Java虛擬機】通讀一遍(一目十行地讀,不用細讀)Java Language Specification,以及Java Virtual Machine Specification。

* 了解以下解釋器(interpreter)、編譯器(compiler)、即時編譯器(just-in-time compiler)和優化器(optimiser)的概念。

* 如果對編譯器的話題不感到畏懼,了解一下method JIT和tracing JIT的概念和區別。

【內存管理】學學垃圾回收的幾種基本算法,包括mark-sweep、mark-compact、semi-space、generational、mark-region等,各自的性能,以及為什么樸素的reference counting是不完整的。知道為什么finalizer性能很糟糕,而且標準并不要求finalizer在程序退出前一定會執行。* 如果還舒服,了解一下如何設置Java虛擬機的堆大小限制(如HotSpot虛擬機的-Xmx選項等)。

* 了解一下Java里的WeakReference以及SoftReference和PhantomReference,以及它們什么時候有用,以及為什么它們實現起來有些困難。

* 如果有精力,了解一下Hotspot虛擬機的內存管理算法是什么樣的。

【動態裝載】學學Java的動態裝載(class loading)

* 如果還舒服的話,學學OSGI以及它的一種實現(如Felix或者Equinox)

* 如果仍然很舒服的話,學學寫基于Eclipse平臺的程序。不是Eclipse集成開發環境,只是利用他們的圖形框架,寫自己的應用程序。

* 如果還覺得舒服的話,寫Eclipse集成開發環境的插件。

【本地/外語接口】學習一下Java Native Interface(JNI),試著寫一個Java和C語言混合編程的程序。

* 如果覺得不舒服了或者覺得欲仙欲死,就學一學Java Native Access(JNA),試一試不用任何膠水代碼而從Java直接裝載C庫,直接調用C函數。

* 如果連JNA也懶得學,就學一學SWIG,自動生成綁定。

* 如果覺得舒服,就學一學Java Virtual Machine Tooling Interface(JVMTI),用C程序來監視JVM的狀態。

【密碼學】學一學密碼學,包括編碼、密碼分析、攻擊、對稱密鑰、公鑰系統、數字簽名、哈希算法等,看看Java有沒有實現。

* 如果覺得有點不舒服(你應該不會覺得舒服吧,除非你是學密碼學的,要不然總會覺得自己寫的程序有安全漏洞),就寫一個“人品計算器”來放松一下,要求每次輸入同一個姓名,得到的人品值是固定的,但又要讓人無法用別人的人品值猜自己的人品值。

【移動終端】學一學Android開發。

* 如果有精力的話,看看Dalvik虛擬機是怎么回事。

* 建議買一個iPhone或者iPad,或許你再也不想用Android手機或者平板了。

【歷史】如果覺得有些無聊,就去挖一挖歷史上比較火的可能和Java相關技術,比如:* Applet,想想它比起html5+css3+javascript的缺點在哪里。

* AWT、Swing,想想為什么很少有人用Java寫圖形界面程序。你覺得Swing的程序看上去舒服嗎?中國人和殘疾人喜歡用Swing程序嗎?

* JNDI,想想它比起Spring Bean Container的缺點在哪里。

* JSP,想想它比起MVC結構的缺點在哪里。

* WSDL/SOAP,把它們和XML-RPC、RESTful Web Service比較一下。

* XSLT,以及為什么它是圖靈完備的。可是它真的比Java本身更好用嗎?

* Log4j、java.util.logging、Apache Commons Logging,各自有什么問題,以及Log4j的作者本人為什么又開發了SLF4j和Logback?

* Java最早是為什么設計的?

* Type erasure是怎么回事?為什么ArrayList不行但ArrayList就可以?挖一挖歷史。

第二篇:Java學習路線

怎么學習Java,這是很多新手經常會問我的問題,現在我簡單描述下一個Java初學者到就業要學到的一些東西:

首先要明白Java體系設計到得三個方面:J2SE,J2EE,J2ME(KJAVA)。J2SE,Java 2 Platform Standard Edition,我們經常說到的JDK,就主要指的這個,它是三者的基礎,屬于桌面級應用開發,這部分如果學得好很容易拓展J2EE和J2ME。J2ME,The Micro Edition of the Java 2 Platform。主要用于嵌入式Java,如手機,PDA等等。J2EE,Java 2 Platform,Enterprise Edition,就是所謂的企業級Java,適合企業的大型應用開發。

J2SE:

新手最初學習的時候先要從J2SE開始學起,所包含的內容主要分為:面向對象概念的理解、Java基本語法的學習,Java桌面圖形界面應用程序的開發,掌握常用的Java API等(關鍵是要學會怎樣查閱)。

重點:Java基本語法(循環結構,數據類型,數組,運算符等)、Swing,awt,事件機制、文件輸入輸出流處理等

難點:面向對象思想的理解(接口、類等)、線程、socket網絡編程等

視頻教程推薦:孫鑫的Java基礎視頻教程、張孝祥的Java基礎視頻教程,講的都很細,而且這兩位老師在教學方面都有很好的經驗。

J2EE:

在學習了J2SE之后,你可以嘗試著慢慢過渡到J2EE,當然,學習J2EE海需要很多非JAVA技術的支撐,比如數據庫技術,網頁編程技術等等,待會我會詳細介紹這兩方面的內容。J2EE有三個必學的框架,如果你說你學了J2EE,但又不會這三個框架的話,那會讓人笑掉大牙,這三個框架分別是Struts、Spring和Hibernate,雖然這三個框架應用很廣,但不代表這三個框架就代表了J2EE,J2EE還有很多其他的東西,比如EJB,作為一款重量級(此重量級不是指重量級選手那個意思,此重量級非彼重量級)框架,雖然這個應用慢慢的再被其他框架所取代,但EJB3.0的出現也給它帶回一些生機,作為一個分布式應用的框架,也是大家要去學習和了解的知識。

當然,剛才說到J2EE包含的范圍很廣,即使我把我所了解的所有技術說出來,也并不能代表J2EE,這是一個很深很廣的學問,需要大家以后再工作的時候慢慢去發現了。我所了解的還包括:

JDBC:Java數據庫連接對象,基礎中的基礎,Hibernate也只是對它的封裝而已 JNDI: Java 命名與目錄接口,J2EE重要規范之一 EJBS: 上面已經提到過了

RMI: 提供遠程調用方法的支持,主要用于程序分布式開發 JMS: Java消息服務,中間件技術

JAVA IDL: 提供J2EE平臺與CORBA交互能力和互聯能力的技術 JTS: 組件事務監視器 JTA: 事務劃分的一個技術 JAVAMAIL: Java中的郵件技術 JAF: Java啟動框架,沒研究過 Log4j,一款日志處理的框架應用

Junit:單元測試的好幫手

freemarker、velocity:兩款不錯的模板引擎

與Flash的交互Flex:目前很多的SNS應用就是使用到了這個技術

Web services:想知道我們論壇天氣預報的效果是怎么做的嗎?請關注這個技術 SOA:面向服務架構,未來技術發展的趨勢之一 ……

不過前面介紹到得這些都不是J2EE的基礎,是屬于框架應用級別的.要真正把上面說到的知識掌握好,還是的學習J2EE最核心的東西:JDBC、JSP、servlet和JavaBean,后面三個也是學習SSH的基礎(StrutsSpringHibernate的簡稱).鑒于J2EE的內容太過復雜,建議大家最初只學習: JSP, servlet和JavaBean,等這個基礎掌握好再把SSH學習了,再對其他J2EE技術有個大致的了解就可以出去找工作了。當然,找工作的前提除了把Java學習好,還會有一些其他的技術也是必須要掌握的。數據庫技術:

數據庫幾乎是程序中不可或缺的一部分,在整個軟件開發中更是占據了重要作用.數據庫在整個軟件中扮演的是地基的角色,你要修房子,就要先打好地基,你要做軟件,就要先設計好的數據庫.目前數據庫幾乎都是關系型數據庫,代表的有: SQL Server,目前最新的好像是2008,我不是很喜歡追趕時髦,用的還是2005,不過也很不錯了,在此之前還有2000.MySQL,最知名的開源數據庫之一,我很喜歡它的小巧耐用,學過SQL SERVER數據庫再學它,無師自通,易如反掌.ORACLE.甲骨文公司的產品,大型數據庫,正版的一般公司買不起.只有看看了,不過現在Java開發60%都是會使用到這個數據庫,再加上現在甲骨文已經把sun公司收購了,JAVA和ORACLE得關系更加曖昧,各位得多花些時間在這上面了.除了這些,你還應該了解一些桌面應用軟件開發用到的數據庫,比如說sqlite。你在制作安裝程序的時候可以把這個數據庫打包進你的安裝程序。

網頁編程基礎:

網頁編程基礎要學的內容也比較多,但主要集中在以下這三個技術之上,大家每天看的各種樣式的網頁都是它們呈現的: HTML:超文本標記語言 CSS:層疊樣式表

Javascript:瀏覽器客戶端腳本語言

現在更是流行各種JavaScript庫,比如:Jquery、ExtJs等,你要是會其中的某一個庫的使用,找工作so easy。

J2ME:

如果你在學習了以上技術還不過癮,可以再學習手機程序的開發,就我個人看來,開發手機程序技術其實蠻簡單的,難點在于優化,比如怎么讓你寫的程序盡量的節約手機資源,“代碼誠可貴,手機價更高“,所以不得不比PC機多考慮很多成本和實用性問題。J2ME的學習的話,切忌不要單純的再模擬器上測試,一定要找真機測試,真機和模擬器的效果之間差別是很大的。更多手機開發技術,有興趣的朋友可以和我一起探討。

開發工具:

開發工具的選擇主要還是看大家的習慣,我個人比較喜歡使用eclispe,功能很強大,也很好拓展其他的功能。當讓初學你也可以選擇JCreator,或者最好就直接用記事本。等你熟悉了Java代碼之后,就可以使用JBuilder、eclispe或者netbeans這一類的工具了。

先說到這里先,以后大家一起完善這個帖子。盡量再給大家整理一些學習的資源在這里。也歡迎大家一起整理我文章中提到的一些技術資源和開發工具。最后,再和大家分享一句話:生命欣欣向榮,唯奮斗不息。也和大家分享一幅Java學習路線圖:

第三篇:JAVA學習路線

1.JAVA學習路線

1.1 基礎語法及JAVA原理

基礎語法和JAVA原理是地基,地基不牢靠,猶如沙地上建摩天大廈,是相當危險的。學習JAVA也是如此,必須要有扎實的基礎,你才能在J2EE、J2ME領域游刃有余。參加SCJP(SUN公司認證的JAVA程序員)考試不失為一個好方法,原因之一是為了對得起你交的1200大洋考試費,你會更努力學習,原因之二是SCJP考試能夠讓你把基礎打得很牢靠,它要求你跟JDK一樣熟悉JAVA基礎知識;但是你千萬不要認為考過了SCJP就有多了不起,就能夠獲得軟件公司的青睞,就能夠獲取高薪,這樣的想法也是很危險的。獲得“真正”的SCJP只能證明你的基礎還過得去,但離實際開發還有很長的一段路要走。

1.2 OO思想的領悟

掌握了基礎語法和JAVA程序運行原理后,我們就可以用JAVA語言實現面向對象的思想了。面向對象,是一種方法學;是獨立于語言之外的編程思想;是CBD基于組件開發的基礎;屬于強勢技術之一。當以后因工作需要轉到別的面向對象語言的時候,你會感到特別的熟悉親切,學起來像喝涼水這么簡單。

使用面向對象的思想進行開發的基本過程是:

●調查收集需求。

●建立用例模型。

●從用例模型中識別分析類及類與類之間的靜態動態關系,從而建立分析模型。

●細化分析模型到設計模型。

●用具體的技術去實現。

●測試、部署、總結。

1.3 基本API的學習

進行軟件開發的時候,并不是什么功能都需要我們去實現,也就是經典名言所說的“不需要重新發明輪子”。我們可以利用現成的類、組件、框架來搭建我們的應用,如SUN公司編寫好了眾多類實現一些底層功能,以及我們下載過來的JAR文件中包含的類,我們可以調用類中的方法來完成某些功能或繼承它。那么這些類中究竟提供了哪些方法給我們使用?方法的參數個數及類型是?類的構造器需不需要參數?總不可能SUN公司的工程師打國際長途甚至飄洋過海來告訴你他編寫的類該如何使用吧。他們只能提供文檔給我們查看,JAVA DOC文檔(參考文獻4.4)就是這樣的文檔,它可以說是程序員與程序員交流的文檔。

基本API指的是實現了一些底層功能的類,通用性較強的API,如字符串處理/輸入輸

出等等。我們又把它成為類庫。熟悉API的方法一是多查JAVA DOC文檔(參考文獻4.4),二是使用JBuilder/Eclipse等IDE的代碼提示功能。

1.4 特定API的學習

JAVA介入的領域很廣泛,不同的領域有不同的API,沒有人熟悉所有的API,對一般人而言只是熟悉工作中要用到的API。如果你做界面開發,那么你需要學習Swing/AWT/SWT等API;如果你進行網絡游戲開發,你需要深入了解網絡API/多媒體API/2D3D等;如果你做WEB開發,就需要熟悉Servlet等API啦。總之,需要根據工作的需要或你的興趣發展方向去選擇學習特定的API。

1.5 開發工具的用法

在學習基礎語法與基本的面向對象概念時,從鍛煉語言熟練程度的角度考慮,我們推薦使用的工具是Editplus/JCreator+JDK,這時候不要急于上手JBuilder/Eclipse等集成開發環境,以免過于關注IDE的強大功能而分散對JAVA技術本身的注意力。過了這一階段你就可以開始熟悉IDE了。

程序員日常工作包括很多活動,編輯、編譯及構建、調試、單元測試、版本控制、維持模型與代碼同步、文檔的更新等等,幾乎每一項活動都有專門的工具,如果獨立使用這些工具的話,你將會很痛苦,你需要在堆滿工具的任務欄上不斷的切換,效率很低下,也很容易出錯。在JBuilder、Eclipse等IDE中已經自動集成編輯器、編譯器、調試器、單元測試工具JUnit、自動構建工具ANT、版本控制工具CVS、DOC文檔生成與更新等等,甚至可以把UML建模工具也集成進去,又提供了豐富的向導幫助生成框架代碼,讓我們的開發變得更輕松。應該說IDE發展的趨勢就是集成軟件開發中要用到的幾乎所有工具。

從開發效率的角度考慮,使用IDE是必經之路,也是從一個學生到一個職業程序員轉變的里程碑。

JAVA開發使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等幾種;而Eclipse、JBuilder占有的市場份額是最大的。JBuilder在近幾年來一直是JAVA集成開發環境中的霸主,它是由備受程序員尊敬的Borland公司開發,在硝煙彌漫的JAVA IDE大戰中,以其快速的版本更新擊敗IBM的Visual Age for JAVA等而成就一番偉業。IBM在Visual Age for JAVA上已經無利可圖之下,干脆將之貢獻給開源社區,成為Eclipse的前身,真所謂“柳暗花明又一村”。浴火重生的Eclipse以其開放式的插件擴展機制、免費開源獲得廣大程序員(包括幾乎所有的骨灰級程序員)的青睞,極具發展潛力。

2.學習要點

確立的學習路線之后,我們還需要總結一下JAVA的學習要點,這些要點在前文多多少少提到過,只是筆者覺得這些地方特別要注意才對它們進行匯總,不要嫌我婆婆媽媽啊。

2.1勤查API文檔

當程序員編寫好某些類,覺得很有成就感,想把它貢獻給各位苦難的同行。這時候你要使用“javadoc”工具(包含在JDK中)生成標準的JAVA DOC文檔,供同行使用。

J2SE/J2EE/J2ME的DOC文檔是程序員與程序員交流的工具,幾乎人手一份,除了菜鳥之外。J2SE DOC文檔官方下載地址:。

對待DOC文檔要像毛主席語錄,早上起床念一遍,吃飯睡覺前念一遍。

當需要某項功能的時候,你應該先查相應的DOC文檔看看有沒有現成的實現,有的話就不必勞神費心了直接用就可以了,找不到的時候才考慮自己實現。使用步驟一般如下:

●找特定的包,包一般根據功能組織。

●找需要使用類,類命名規范的話我們由類的名字可猜出一二。

●選擇構造器,大多數使用類的方式是創建對象。

●選擇你需要的方法。

2.2 查書/google->寫代碼測試->查看源代碼->請教別人

當我們遇到問題的時候該如何解決?

這時候不要急著問別人,太簡單的問題,沒經過思考的問題,別人會因此而瞧不起你。可以先找找書,到google中搜一下看看,絕大部分問題基本就解決了。而像“某些類/方法如何使用的問題”,DOC文檔就是答案。對某些知識點有疑惑是,寫代碼測試一下,會給你留下深刻的印象。而有的問題,你可能需要直接看API的源代碼驗證你的想法。萬不得已才去請教別人。

2.3學習開源軟件的設計思想

JAVA領域有許多源代碼開放的工具、組件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive論壇、PetStore寵物店等等多如牛毛。這些可是前輩給我們留下的瑰寶呀。入寶山而空手歸,你心甘嗎?對這些工具、框架進行分析,領會其中的設計思想,有朝一日說不定你也能寫一個XXX框架什么的,風光一把。分析開源軟件其實是你提高技術、提高實戰能力的便捷方法。

2.4 規范的重要性

沒有規矩,不成方圓。這里的規范有兩層含義。第一層含義是技術規范,多到

http:///docs/codeconv/,中文的也有,啊,還要問我在哪,請參考3.2.2節。

2.5 不局限于JAVA

很不幸,很幸運,要學習的東西還有很多。不幸的是因為要學的東西太多且多變,沒時間陪老婆家人或女朋友,導致身心疲憊,嚴重者甚至導致抑郁癥。幸運的是別人要搶你飯碗絕非易事,他們或她們需要付出很多才能達成心愿。

JAVA不要孤立地去學習,需要綜合學習數據結構、OOP、軟件工程、UML、網絡編程、數據庫技術等知識。

軟件工程的由來

據說上個世紀60年代的程序員都是天才,寫程式就像寫日記一樣,吃過晚飯沒事干隨手就可以寫幾個出來玩,第二天還可以拿去賣錢。所以那時候程序員在大家眼中,跟那些搞美術,音樂的是一類的,被稱為“藝術家”。

但事過境遷,就像任何人都不會嫌錢多一樣,永遠都不會有人嫌CPU快的。于是,隨之而來的就是硬件的迅猛發展和越來越變態的軟件。記得以前常去同學家拷游戲,通常幾張軟盤就可以搞定,而現在的游戲,兩三張CD-ROM都算少的了。像如此龐大復雜的怪物,就算你是如何的天才,一個人肯定是搞不定的,否則,等你把程式寫出來,人家Intel連奔騰N都開發出來了。既要開發大型的軟件還要追求速度(這樣才能賺錢),于是很自然地,合作的概念被提了出來。

在開始合作的初期,由于大家都習慣了當很有個性的“藝術家”,結果可想而知,一個是畢加索派的,而另一個是意大利印象派的,再加上一個畫潑墨山水畫的,要是像這樣湊出來的東西都能不出問題的話,那么Bill早就轉行了。所以,那時侯的大型軟件,據說“藍屏”比WINDOWS 98還多。

馬克思告訴我們,萬物都是從量變到質變的。隨著問題的不斷涌現,一些master們開始嘗試去總結經驗,并歸納了一些規范去指導軟件的分析,設計,實現,測試,維護,人員交流協作,項目預算及時限控制等方方面面,這就是軟件工程的前身。

軟件工程到現在已發展了30多年,可以說是相當成熟的了。現在開發軟件,據說都是一大幫人排排坐,按著一整套的規章制度來干活。于是,軟件開發成了“工程”,程序員也就淪為“工人”了。

最初提出問題的是Dijkstra。他于1968年寫給ACM的一封題為Goto Statement

Considered Harmful 的信中,指出了GOTO語句的負面作用,并提出了解決之道,其引發的一系列效應最終帶來了軟件工程的誕生。(信的原文可在www.tmdps.cn/classics/oct95 上看到,不過,當你看到本文的時候,天知道它還在不在那里!)

軟件工程的核心

無論是在上個世紀還是在現在,軟件開發所涉及的工作基本上都沒有變化,它們都起始于一個實際需要或某個靈感,然后就是分析,設計,編碼,調試,維護。這些任務以某種方式動態地結合起來就構成了軟件開發的整個過程,這就是所謂的“軟件開發周期”。

但對于這些工作,具體怎樣做,什么時候做,每個人都有自己的一套方式,甚至有的人有幾套方式。這樣,當幾個人合在一起干活的時候,最終的結果就只能是一片混亂。所以就需要一套規則,大家都按規則來辦事,問題就會少得多。好的規則就叫做規范,規范都是由一些master們根據經驗總結的,又經過長時間的歷練,不斷地被補充修正,可以說都是精華,按照規范來干活,對于提高軟件質量和工作效率自然大有幫助。

而軟件工程,說白了,就是這樣一套用于軟件的團隊開發,以提高軟件質量和程序員工作效率為目的的規范。其核心就是,對于軟件開發的5個重要組成部分:需求分析,設計,編碼,調試,維護,如何組織這5個部分的工作,以及如何完成每一個工作。簡單來說,就是對于總體的組織和對于局部的實現。

規范只是提供一個好的例子,以描述一種思想,具體到每一個環節怎樣實現,對于不同的公司或團體則是各有千秋,因為根本就不可能存在一套放之天下皆可行的標準。就像C++,也只是提供了一套標準,不同的編譯器都有各自的實現,對標準的支持程度也互不相同。所以,在不同的公司或團體中,盡管核心思想都是大同小異,但具體到每一個步驟,往往都是不相同的。我手上就有一份GB8567-88的文檔模板,對于那些頂多只有幾千行的小程序來說,假如真按上面的要求全寫上了,簡直就是一種折磨!據說,當前業界最權威的標準是CMM。

軟件開發過程的組織

如何組織軟件開發過程中的每一個步驟,就是軟件開發周期模型要解決的問題。其實開發軟件,就像是解決一個邏輯問題。想想自己平時是怎樣寫程序的。首先是要有一個想法,即我寫的這個程序是要干什么的;然后就是對要實現的核心功能大概構思一種或多種實現方法,并從中選出一種自認為是較好的;接下來就是將涉及的各種主要或次要功能分成各個模塊;最后就是分模塊來編碼和DEBUG。在我看來,除了第一步外,其余的步驟應該是一個循環的過程。在編碼的過程中,你總是需要不斷地回過頭來修改原先的模塊設計,甚至最初選定的實現算法。例如,最簡單的情況是,你通常都會突然發現在兩個成員函數中有相同的代碼,這時,程序員的直覺告訴你,你應該為你的類再添加一個private成員函數并將公共的代碼放于其中;又或者是,你突然發現一個模塊中的某個功能具有很高的通用性,完全可以提取出來作為一個獨立的功能組件,而你也確實應該這樣做;要是倒霉一點的話,你很有可能會在最后調試的時候突然發現,你的程序跑得太慢了,連你自己都無法忍受。于是你找呀找,終于找到了80/20中的那段可惡的20,原來是用了一個O(N)的算法,這時你就得老老實實地換一個更好的算法。

總之,除非你是先知,否則,對于一個具有一定規模和復雜度的軟件來說,在“設計—編碼”這個過程中,實在有太多的不可預知性和變化性,你根本不可能全盤地把握住每一個細節。當然,這是建立在我現時的水平之上的觀點。我不知道是否成為高手以后會有所不同,因為我身邊沒有那樣的人。

既然軟件開發是一個具有不可預知性和變化性的動態的過程,那么,對其每一個步驟的組織,即周期模型,就必須包容它的這種性質。

現在來看一下最古老,最經典,同時也是最倍受批評的瀑布模型。

瀑布模型是一種線性模型,其最大的特點就是簡單直觀。它將軟件開發過程規劃為“分析—設計—編碼—測試—維護”的線性過程,也就是說,你必須首先把你的軟件要干的每一件工作都分析得徹徹底底,再對每一個模塊,每一個接口,事無巨細,都設計得非常完美,然后才開始編碼的工作,并且在編碼的時候就像在對著圖紙砌模型,根本不用再回頭作任何修改,當然,是在把所有的代碼都寫完以后才開始測試的。

整個過程,光想一下就覺得冒冷汗!

瀑布模型完全忽視了軟件開發過程的動態變化。恐怕只有那些已經發展得非常成熟,且規模不大的系統,例如:用Access做后臺,用VB畫前端的數據庫應用程序,才有瀑布模型一展拳腳的地方。

相比之下,現在常用的一些周期模型則更接近于人的自然思維,例如螺旋模型就是一種我比較喜歡的模型。

軟件開發過程的實現

具體到每一步的工作要怎樣完成,我前面已提到過,是非常靈活的,只要把握住大體的方向就行。在進行分析,設計,編碼,調試,維護這幾部分的工作的時候,最核心的就是文檔的編寫。文檔的作用在于以下3個方面:一是可以幫助整理思路。把要完成的目標,系統的結構,每一個模塊的功能等整理一下,然后分門別類地寫下來,這樣在開發的過程中,就有據可依,在需要回過頭來修改設計的時候,也有證可考。二是便于交流。想象一下開會時的情形。一大幫子人爭先恐后,激烈辯論,然后會終人散,思想靈感也就隨之散了,結果是開了半天會,什么也沒討論出來。這就是后來會議記錄被發明出來的原因。在腦子里的東西一多,就會散而且亂,用語言表達的時候,很容易會丟三落四,別人也很難把握住你的思想。但經過整理寫在紙上以后,則會清晰得多,無論是別人還是自己,看起來都可以一目了然。三是可以作為以后維護時的參考資料。有一句名言:“筆和紙永遠都比大腦可靠”,意思就是說,放在大腦里的東西說不準哪天就忘了,但寫在紙上的東西,只要不發生什么意外,一般是丟不了的。當過了一段時間,你需要再回過頭來修改你的程序的時候,你就會發現,你以前寫下的文檔實在太有價值了。別指望你的源代碼,對于復雜一點的程序來說,單純的源代碼幾乎會扼殺掉你所有的時間。

至于文檔怎樣寫,教科書上大多都是一條一條列得滿滿的,就像一些地方政府的規章制度一樣,其實大可不必,只要能滿足需要就行。如果是在公司,則每個公司大多都有一套自己內部的文檔模板,個人沒有選擇的余地。而對于像我這種業余的,寫個程序除了練練手藝,無非就是供自己和親朋好友玩玩,則根本沒必要搞得過于復雜。以下就是我自己的一份文檔模板的概要,麻雀雖小,但五臟俱全。

可行性分析 就是關于當前項目能不能干的分析結果。主要考慮的方面包括:是否能把這個項目開發出來;假如可以的話,預計需要多少時間,能否滿足客人的時間要求;需要多少人力和資金的投入;最重要的是,這個項目能否賺錢,能賺多少。還要對可能存在的風險進行評估,例如,萬一項目主管被車撞了要怎么辦。當然,這對于我來說毫無意義,我在這里寫上只是為了保持完整而已。

項目描述 這是在決定立項以后,對當前項目的一份扼要說明。必須包括以下幾個方面:

(1)項目的名稱或編號;(2)對客戶方的描述;(3)對開發人員的描述;(4)工程任務的描述;(5)工程的輸入和輸出;(6)開發環境;(7)其他的附加條件。在這里,對工程任務的描述是從整體的角度來說的,例如:能對當前的象棋棋局進行分析并作出最優決策的人工智能系統。而工程的輸入輸出則可以這樣寫:輸入當前的象棋棋局的數據描述;輸出最優的棋步,包括選擇行動的棋子和步法。

需求分析 就是對客戶要求的功能的定義。注意這里用了“定義”這個詞,這就意味著對客戶需求的說明,盡管不一定要是形式定義,但也必須是精確,無歧義的。同時,還要列

出程序的功能模塊和邏輯流程,即與客戶的每一項功能要求對應的程序功能模塊有哪些以及這些功能模塊是按照怎樣的邏輯步驟來逐項完成客戶的要求的。注意這里所說的功能模塊與編碼時所說的程序模塊的區別。對于客戶的一個復雜的功能要求,一般可以用分治法分為一個或多個子功能,每一個子功能對應一個功能模塊,而每一個功能模塊則可以由一個或多個程序模塊來實現。功能模塊是建立在設計邏輯上的,而程序模塊則是直接面向實現的。在用OO編程的時候,我通常以類作為程序模塊劃分的基本單元。綜上所述,這個部分的文檔必須包括3個部分:(1)客戶需求的詳細描述;(2)程序功能模塊的劃分以及其與客戶需求的對應關系;(3)功能模塊的邏輯流程。

軟件設計 這就是對程序的每一個模塊的詳細設計的說明文檔。其由以下幾部分組成:

(1)程序模塊與功能模塊的對應關系和相關描述;(2)實現每個功能模塊的程序模塊的邏輯流程和組織結構;(3)對每一個程序模塊的詳細描述。這個部分的文檔是改動得最多的,如果與螺旋周期模型結合,甚至需要循環地對每一個模塊進行深入設計和細化,所以,為了便于管理,我通常都對每一個較復雜的模塊都單獨立一份文檔。至于模塊的流程圖或結構圖,一直都是我最頭疼的問題,那一大堆琳瑯滿目的畫法和符號往往令人無所適從。其實對于個人來說,只要能把意思表達出來,想怎樣畫都無所謂,關鍵是自己要有一套標準,別在這個圖中,矩形表示過程,而在另一個圖中,則是表示I/O。對每個符號表示的意思進行說明那是必須的,不然別人看起來會一頭霧水。假如嫌麻煩的話,就干脆使用那些被大多數人認可的標準,例如UML圖。但以后如果進到公司,還是老老實實地按公司規矩辦事吧。

開發日志 我一直都認為這是文檔中最有趣的部分。開發日志相當于編碼階段的文檔,它的形式可以很隨意,主要是記錄一些在寫程序時突然萌發的靈感,或對代碼的一些微小的修改,或對程序結構的一些微小變動等,還要對上述這些修改變動作些說明,例如,為什么要改成現在的這個樣子。別小看這些記錄,它往往會成為你以后對程序進行維護時的重要依據。要知道,人的IQ,EQ等,是會隨著人的生理和心理狀態的不同而變化的。在某個時刻,你可能會靈光一閃,做出了一個非常偉大的改動,但過了一段時間,當你再回過頭來重新閱讀同一段代碼的時候,你很有可能只記得在這里的改動是非常明智的,可是卻無論如何也想不起其明智在哪里。這時,一份日志就會省卻你不少的麻煩。

測試分析 用于指出程序存在或潛在的缺陷和錯誤,以及程序性能的數字描述。其包括幾個部分:(1)對被測模塊的描述;(2)測試人員;(3)對該模塊每個功能的測試的詳細描述;(4)指出當前存在或潛在的問題。在測試描述中應該包括輸入的數據集和輸出的結果,還有運行的時間等。對于公司來說,對測試分析的要求是非常嚴格的。但對于我個人來說,我只是將其作為一份模塊測試的文字記錄,以防會忽略掉某些已知的缺陷和錯誤,以及對一些核心模塊的時間和空間效率進行簡單的測試,以便日后翻查。

第四篇:java學習的路線

1、要學java,肯定首先得把Java語言本身給掌握了,萬事開頭難,學java最難的也是java的入門,學習順序是先掌握java的語法(多練就行),再掌握java面向對象的思想(封裝、繼承、多態、接口這些東西是重點,要多理解),接下來就是熟悉java常用的API(集合、IO等,主要是跟著書多寫多練),這些東西掌握后,Java語言就算入門了。入門java推薦大家下載張孝祥的《java就業培訓教程》視頻教程,學java的沒有不知道這套視頻的,我們宿舍當時都是學這套視頻入門的。這套視頻最大的好處簡單易懂,并引用了很多實用案例,并且還有配套書(書名好像也是java就業培訓教程,新華書店有),省得忘了的地方,動不動對著電腦翻視頻了。還有一些視頻也比較好,例如孫鑫的java視頻,馬士兵的java視頻等。不過對初學者而言,選中一套視頻了就跟著好好學,不要下很多視頻,東抓一把、西抓一把,最后啥也沒學到。

2、有java基礎了想馬上從事實際開發還是不夠的,接下來就需要掌握1-2門數據庫技術了,對java來說數據庫當然是oracle和mysql。oracle數據庫現在還沒發現好的視頻,不過現在大學都學了數據庫,有了數據庫基礎后,找本好書學oracle也就不難了。這里推薦何明的《從實踐中學習Oracle/SQL》,作者來頭很大,有非常深的oracle功底,書寫得由淺入深,相當不錯。對程序員來講,學數據庫關鍵是把增刪改查的sql語句學好了就OK了,不要去摳什么數據庫管理方面的東西。學了oracle后,要把數據庫和java程序聯系起來,這時候就要學jdbc了,jdbc不難,網上很多資料,大概一周時間就可以掌握了。

3、有了上面的基礎后,恭喜你已經具備用java開發企業級應用的基礎了。這時候你可以學習javaweb試著做點小項目玩了。不過學javaweb需要很多雜七雜八的知識點,比如xml、html、javascript、tomcat服務器等,學了這些后,大家才可以學servlet、jsp。學javaweb推薦大家買《深入體驗Javaweb開發內幕-核心基礎》這本書,還是張孝祥寫的,這本書寫的書很有特點,很細很深入,書上還帶大量的實驗案例,一步步講得非常清晰,非常適合初學者。學javaweb這本書絕對是首選,并且這本書也有配套視頻,在網上有下,不過視頻只有前4章,比較可惜,希望張孝祥老師能早日錄制全套視頻。還有些視頻和書也不錯,比如李興華的JSP視頻教程、孫鑫的JAVA WEB 開發詳解等,這些也不錯,在網上都有免費下的。

4、接下來為找工作就要學strutshibernatespringajax這些流行技術了。這些技術我學習的時候沒有視頻,買的孫衛琴的書學,花了我大半年時間才學明白。現在幸福多了,網上有很多視頻,個人推薦大家下傳智播客的視頻看。這個機構的老師很牛課程很有深度,真正能學到技術,不會誤了大家。不過他們的視頻里老打廣告,很煩。書籍推薦struts看孫衛琴的,hibernate看夏昕的,spring看林信良的,具體書名叫什么忘了,大家google一下就清楚了。

學完上面這些就可以試著找工作了,我找了40天找著了。順便再說一句,自學不可能不碰到問題,CSDN的論壇很不錯,有問題上去問,一般都會有人回答你。要找培訓班的話北京的傳智播客還不錯,我宿舍的2個就在那里,教學質量高,學完后很輕松都上班了,這家機構就是在外地沒有分部,想培訓要去北京,生活費用高,花費大。北京還有一些培訓也不錯,達內什么的,可以看看。

第五篇:java學習路線

1.學習路線

首先是JAVA基礎JAVA SE 之后是JAVA EE,先學習Servlet、JSP,然后再學習Struts、Hibernate、Spring等框架。

JAVA SE是JAVA EE的基礎,Servlet、JSP是框架的基礎。

還有數據庫,個人建議學習oracle,當然其它的像MySQL,MS SQL,都可以,只要會一個,再學其它的就會發現很類似。

另外就是html,css,javascript,xml,這些是JAVA WEB編程要用到的。

建議學習順序:

1、html,css,javascript,xml

2、JAVA SE

3、JAVA EE,包括Servlet、JSP、框架

至于數據庫的學習,在JAVA之前,之中,之后都可以,建議在JAVA之前,至少在JAVA EE之前。

推薦資料:

尚學堂JAVA視頻,其中較為推薦馬士兵的,在verycd上很容易就能搜到; 孫衛琴的《JAVA面向對象編程》,很不錯的一本書,可以用來入門; Bruce Eckel的《Thinking in Java》,可以用來當作參考資料。

2.學習路線

本人今年畢業,在去年的時候,就在北京軟件公司工作。簡單介紹一下學習經驗:

1、從大三開始全心學習Java

2、先是學習JAVA基礎,對于Java的學習,感覺一點非常重要,就是對于Java的入門,Java不入門,你會感覺很難,但是一旦入門,你將會感覺很簡單,只不過,很多都沒有學習而已,自己可以多花時間進行學習。所以Java基礎部門是學習Java的重點。

3、學習完Java的語法,開始學習j2EE

4、接著學習Javaweb部門,懂的如何制作web工程,這部分要學習的包括Html,JSP都是基本要學習的。

5、此時就開始接觸一些簡單的數據庫。

6、這些都完畢之后,就是學習一些簡單的框架,像經典的SSH等等。總之,學習Java不要圖快,把Java的基礎學習好,同時學習到一定基礎的時候,推薦看一下Thinking in Java,只要你能夠理解Java的編程思想,你會很快的入門,一旦入了門。

你就知道如何去學習,就是你自己豐富自己了。就不需要別人帶了,非常期望你也能起來,呵呵。

3.學習路線

怎么學習Java,這是很多新手經常會問我的問題,現在我簡單描述下一個Java初學者到就業要學到的一些東西:

首先要明白Java體系設計到得三個方面:J2SE,J2EE,J2ME(KJAVA)。J2SE,Java 2 Platform Standard Edition,我們經常說到的JDK,就主要指的這個,它是三者的基礎,屬于桌面級應用開發,這部分如果學得好很容易拓展J2EE和J2ME。J2ME,The Micro Edition of the Java 2 Platform。主要用于嵌入式Java,如手機,PDA等等。J2EE,Java 2 Platform,Enterprise Edition,就是所謂的企業級Java,適合企業的大型應用開發。

J2SE:

新手最初學習的時候先要從J2SE開始學起,所包含的內容主要分為:面向對象概念的理解、Java基本語法的學習,Java桌面圖形界面應用程序的開發,掌握常用的Java API等(關鍵是要學會怎樣查閱)。

重點:Java基本語法(循環結構,數據類型,數組,運算符等)、Swing,awt,事件機制、文件輸入輸出流處理等

難點:面向對象思想的理解(接口、類等)、線程、socket網絡編程等

視頻教程推薦:孫鑫的Java基礎視頻教程、張孝祥的Java基礎視頻教程,講的都很細,而且這兩位老師在教學方面都有很好的經驗。

J2EE:

在學習了J2SE之后,你可以嘗試著慢慢過渡到J2EE,當然,學習J2EE海需要很多非JAVA技術的支撐,比如數據庫技術,網頁編程技術等等,待會我會詳細介紹這兩方面的內容。J2EE有三個必學的框架,如果你說你學了J2EE,但又不會這三個框架的話,那會讓人笑掉大牙,這三個框架分別是Struts、Spring和Hibernate,雖然這三個框架應用很廣,但不代表這三個框架就代表了J2EE,J2EE還有很多其他的東西,比如EJB,作為一款重量級(此重量級不是指重量級選手那個意思,此重量級非彼重量級)框架,雖然這個應用慢慢的再被其他框架所取代,但EJB3.0的出現也給它帶回一些生機,作為一個分布式應用的框架,也是大家要去學習和了解的知識。

當然,剛才說到J2EE包含的范圍很廣,即使我把我所了解的所有技術說出來,也并不能代表J2EE,這是一個很深很廣的學問,需要大家以后再工作的時候慢慢去發現了。我所了解的還包括:

JDBC:Java數據庫連接對象,基礎中的基礎,Hibernate也只是對它的封裝而已 JNDI: Java 命名與目錄接口,J2EE重要規范之一 EJBS: 上面已經提到過了

RMI: 提供遠程調用方法的支持,主要用于程序分布式開發 JMS: Java消息服務,中間件技術

JAVA IDL: 提供J2EE平臺與CORBA交互能力和互聯能力的技術 JTS: 組件事務監視器

JTA: 事務劃分的一個技術 JAVAMAIL: Java中的郵件技術 JAF: Java啟動框架,沒研究過

Log4j,一款日志處理的框架應用 Junit:單元測試的好幫手

freemarker、velocity:兩款不錯的模板引擎

與Flash的交互Flex:目前很多的SNS應用就是使用到了這個技術

Web services:想知道我們論壇天氣預報的效果是怎么做的嗎?請關注這個技術 SOA:面向服務架構,未來技術發展的趨勢之一 ……

不過前面介紹到得這些都不是J2EE的基礎,是屬于框架應用級別的.要真正把上面說到的知識掌握好,還是的學習J2EE最核心的東西:JDBC、JSP、servlet和JavaBean,后面三個也是學習SSH的基礎(StrutsSpringHibernate的簡稱).鑒于J2EE的內容太過復雜,建議大家最初只學習: JSP, servlet和JavaBean,等這個基礎掌握好再把SSH學習了,再對其他J2EE技術有個大致的了解就可以出去找工作了。當然,找工作的前提除了把Java學習好,還會有一些其他的技術也是必須要掌握的

-_-我很簡單,Java卻要求我學這么多復雜的東西。除了這些技術的東西,在這階段,大家更多的是會接觸到比如設計模式的東西,比如工廠模式、橋梁模式、單例模式等等,還要學習建模思想(比如UML建模等等)和軟件生命周期等等。這些是升華大家編程思想的手段和途徑。

數據庫技術:

數據庫幾乎是程序中不可或缺的一部分,在整個軟件開發中更是占據了重要作用.數據庫在整個軟件中扮演的是地基的角色,你要修房子,就要先打好地基,你要做軟件,就要先設計好的數據庫.目前數據庫幾乎都是關系型數據庫,代表的有: SQL Server,目前最新的好像是2008,我不是很喜歡追趕時髦,用的還是2005,不過也很不錯了,在此之前還有2000.MySQL,最知名的開源數據庫之一,我很喜歡它的小巧耐用,學過SQL SERVER數據庫再學它,無師自通,易如反掌.ORACLE.甲骨文公司的產品,大型數據庫,正版的一般公司買不起.只有看看了,不過現在Java開發60%都是會使用到這個數據庫,再加上現在甲骨文已經把sun公司收購了,JAVA和ORACLE得關系更加曖昧,各位得多花些時間在這上面了.除了這些,你還應該了解一些桌面應用軟件開發用到的數據庫,比如說sqlite。你在制作安裝程序的時候可以把這個數據庫打包進你的安裝程序。

網頁編程基礎:

網頁編程基礎要學的內容也比較多,但主要集中在以下這三個技術之上,大家每天看的各種樣式的網頁都是它們呈現的: HTML:超文本標記語言 CSS:層疊樣式表

Javascript:瀏覽器客戶端腳本語言

現在更是流行各種JavaScript庫,比如:Jquery、ExtJs等,你要是會其中的某一個庫的使用,找工作so easy。

J2ME:

如果你在學習了以上技術還不過癮,可以再學習手機程序的開發,就我個人看來,開發手機程序技術其實蠻簡單的,難點在于優化,比如怎么讓你寫的程序盡量的節約手機資源,“代碼誠可貴,手機價更高“,所以不得不比PC機多考慮很多成本和實用性問題。J2ME的學習的話,切忌不要單純的再模擬器上測試,一定要找真機測試,真機和模擬器的效果之間差別是很大的。更多手機開發技術,有興趣的朋友可以和我一起探討。

開發工具:

開發工具的選擇主要還是看大家的習慣,我個人比較喜歡使用eclispe,功能很強大,也很好拓展其他的功能。當讓初學你也可以選擇JCreator,或者最好就直接用記事本。等你熟悉了Java代碼之后,就可以使用JBuilder、eclispe或者netbeans這一類的工具了。

先說到這里先,以后大家一起完善這個帖子。盡量再給大家整理一些學習的資源在這里。也歡迎大家一起整理我文章中提到的一些技術資源和開發工具。最后,再和大家分享一句話:生命欣欣向榮,唯奮斗不息。也和大家分享一幅Java學習路線圖:

學習路線

Java學習的路線 重點 與目標

2008-01-02 19:05:59| 分類: 計算機 | 標簽: |字號大中小 訂閱

本文將告訴你學習Java需要達到的30個目標,學習過程中可能遇到的問題,及學習路線。希望能夠對你的學習有所幫助。對比一下自己,你已經掌握了這30條中的多少條了呢?

路線

Java發展到現在,按應用來分主要分為三大塊:J2SE,J2ME和J2EE。

這三塊相互補充,應用范圍不同。

J2SE就是Java2的標準版,主要用于桌面應用軟件的編程;

J2ME主要應用于嵌入是系統開發,如手機和PDA的編程;

J2EE是Java2的企業版,主要用于分布式的網絡程序的開發,如電子商務網站和ERP系統。

先學習j2se

要學習j2ee就要先學習j2se,剛開始學習j2se先建議不要使用IDE,然后漸漸的過渡到使用IDE開發,畢竟用它方便嘛。學習j2se推薦兩本書,《java2核心技術一二卷》,《java編程思想》,《java模式》。其中《java編程思想》要研讀,精讀。這一段時間是基本功學習,時間會很長,也可能很短,這要看學習者自身水平而定。

不要被IDE糾纏

在學習java和j2ee過程中,你會遇到五花八門的IDE,不要被他們迷惑,學JAVA的時候,要學語言本身的東西,不要太在意IDE的附加功能,JAVA編程在不同IDE之間的轉換是很容易的,過于的在意IDE的功能反而容易耽誤對語言本身的理解。目前流行的IDE有jbuilder,eclipse和eclipse的加強版WSAD。用好其中一個就可以了,推薦從eclipse入手j2ee。因為Jbuilder更適合于寫j2se程序。

選擇和學習服務器使用配置

當你有了j2se和IDE的經驗時,可以開始j2ee的學習了,web服務器:tomcat,勿庸置疑,tomcat為學習web服務首選。而應用服務器目前主要有三個:jboss、weblogic、websphere。有很多項目開始采用jboss,并且有大量的公司開始做websphere或weblogic向jboss應用服務器的移植(節省成本),這里要說的是,學習tomcat和jboss我認為是首選,也是最容易上手的。學習服務器使用配置最好去詢問有經驗的人(有條件的話),因為他們或許一句話就能解決問題,你自己上網摸索可能要一兩天(我就干過這種傻事),我們應該把主要時間放在學習原理和理論上,一項特定技術的使用永遠代替不了一個人的知識和學問。

學習web知識

如果你是在做電子商務網站等時,你可能要充當幾個角色,這是你還要學習:

html,可能要用到dreamwave等IDE。Javascript,學會簡單的數據校驗,數據聯動顯示等等。

J2eeAPI學習

學習j2eeAPI和學習服務器應該是一個迭代的過程。

先學習jsp和servlet編程,這方面的書很多,我建立看oreilly公司的兩本《jsp設計》和《java servlet編程》,oreilly出的書總是那本優秀,不得不佩服。

學習jdbc數據庫編程,j2ee項目大多都是MIS系統,訪問數據庫是核心。這本應屬于j2se學習中,這里拿出來強調一下。

學習jndi api,它和學習ejb可以結合起來。

學習ejb api,推薦書《精通ejb》

經過上面的這些的學習,大概可以對付一般的應用了。

有人說跟著sun公司的《j2ee tutorial》一路學下來,當然也可以。

學習ejb設計模式和看代碼(最重要)

設計模式是練內功,其重要性可以這么說吧,如果你不會用設計模式的話,你將寫出一堆使用了ejb的垃圾,有慢又是一堆bug,其結果不如不用ejb實現(ejb不等于j2ee)

無論學習什么語言,都應該看大量代碼,你看的代碼量不到一定數量,是學不好j2ee的。

目前有很多開源的工程可以作為教材:

jive論壇

petstore sun公司

dune sun公司

等等,研讀一個,并把它用到自己的工程中來。

J2ee其他學習

當你漸漸對j2ee了解到一定深度時,你要開始關注當前領域中的一些技術變化,J2ee是一塊百家爭鳴的領域,大家都在這里提出自己的解決方案,例如structs,hiberate,ofbiz等等,學習這些東西要你的項目和目標而定,預先補充一下未嘗不可,但不用涉及太深,畢竟學習原理和理論是最最重要的事。

目前常見j2eeAPI

JavaServer Pages(JSP)技術1.2 Java Servlet技術2.3 JDBC API 2.0

Java XML處理API(JAXP)1.1 Enterprise JavaBeans技術2.0 Java消息服務(JMS)1.0 Java命名目錄接口(JNDI)1.2 Java事務API(JTA)1.0 JavaMail API 1.2

JavaBeans激活架構(JAF)1.0 J2EE連接器體系結構(JCA)1.0 Java認證和授權服務(JAAS)1.0

學習上面的某些API要以你的項目而定,了解所有他們總之是有好處的。

上面印證了大家說的一句話,java語言本身不難學,但是技術太多,所以學java很費勁。回想一下,基本上每個初學者,在剛學習java的時候可能都會問別人這么一句話,你怎么知道的哪個方法(api)在哪個包里的?呵呵,無他,唯手熟爾。基礎是王道。我們的基礎要扎實扎實再扎實。

以上面的整個流程來看java的技術分支很多,要想完全掌握是絕對不可能的。我們只有從中精通1到2個部分。但是java也是有通性的,所謂萬變不離其宗。java的所有編程思路都是“面向對象”的編程。所以大家在往更高境界發展以前一定要打好基礎,這樣不管以后是jree還是j3d都有應刃而解的感覺。在這里強烈推薦“java編程思想”.所謂打好基礎并不是說要熟悉所有的java代碼。我說的意思是要了解java的結構。class,methode,object,各種套用import,extend 讓自己在結構上對java有個立體而且整體的了解即刻。其實java的學習不用固執于對代碼的熟悉,1來java本身帶有很多demo,java2d的所有問題幾乎都有demo的樣例。2來java是開放代碼,即使沒有demo網絡上也有很多高手把自己的代碼分享。所以不要怕沒有參考,參考是到處都有的。最后還有1點經驗和大家分享,對sun的api一定要學會活用,不論是學習還是作為參考api都有很大的幫助,在完全了解java的結構的基礎上,不論什么方法都是可以通過api來找到的.所以不要怕找不到方法,了解結構,了解api就能找到方法。

重點

精通:能夠掌握此技術的85%技術要點以上,使用此技術時間超過兩年,并使用此技術成功實施5個以上的項目。能使用此技術優化性能或代碼,做到最大可能的重用。

熟練:能夠掌握此技術的60%技術要點以上,使用此技術時間超過一年,并使用此技術成功實施3個以上的項目。能使用此技術實現軟件需求并有經驗的積累在實現之前能做優化設計盡可能的實現模塊或代碼的重用。

熟悉:能夠掌握此技術的50%技術要點以上,使用此技術時間超過半年上,并使用此技術成功實施1個以上的項目。能使用此技術實現軟件需求。

了解:可以在實際需要時參考技術文檔或幫助文件滿足你的需要,基本知道此項技術在你運用是所起的作用,能夠調用或者使用其根據規定提供給你的調用方式。

二:基本要求

1:html 掌握程度:熟練。原因:不會html你可能寫JSP?

2:javascript/jscript:掌握程度:熟悉。原因:client端的數據校驗、一些頁面處理需要你使用腳本。

3:CSS 掌握程度:熟悉。原因:實現頁面風格的統一通常會使用css去實現。

4:java基礎編程 掌握程度:熟練。原因:不會java你能寫JSP?開玩笑吧。還有你必須非常熟悉以下幾個包java.lang;java.io;java.sql;java.util;java.text;javax.sevrlet;javax.servlet.http;javax.mail;等。

5:sql 掌握程度:熟練。原因:如果你不使用數據庫的話你也許不需要掌握sql。同時你必須對以下幾種數據庫中的一種以上的sql比較熟悉。Oracle,DB2,Mysql,Postgresql.6:xml 掌握程度:了解 原因:AppServer的配置一般是使用XML來實現的。

7:ejb 掌握程度:了解 原因:很多項目中商業邏輯是由ejb來實現的,所以呢……

8:以下幾種AppServer(engnier)你需要了解一個以上。

a:)Tomcat

b:)WebLogic

c:)WebSphere

d:)JRun

e:)Resin

原因:你的jsp跑在什么上面啊!

三:選擇要求(因項目而定)

1:LDAP 掌握程度:了解 原因:LADP越來越多的運用在權限控制上面。

2:Struts 掌握程度:熟練 原因:如果符合MVC設計通常會使用Struts實現C。

3:Xsp 掌握程度:根據需要而定很多時候是不使用的,但在不需要使用ejb但jsp+servlet+bean實現不了的時候Xsp是一個非常不錯的選擇。

4:Linux 掌握程度:熟悉 原因:如果你的運用跑在Linux/Unix上你最少要知道rm ,mv,cp,vi,tar gzip/gunzip 是用來做什么的吧。

四:工具的使用

1:UltraEdit(EditPlus)+jakarta-ant+jakarta-log4j;

2:Jubilder4-6

3:Visual Age For Java

4:VCafe

以上的工具你選擇你自己熟悉的吧。不過強烈建議你用log4j做調試工具。

五:成長之路

1:html 學習時間,如果你的智商在80以上,15天時間應該夠用了。至少你能手寫出一個頁面來。

2:jacascript/jscript學習時間,這真的不好說,比較深奧的東西,夠用的話一個禮拜可以學寫皮毛。

3:css 學習時間,三天的時間你應該知道如何使用css了,不要求你寫,一般是美工來寫css。

4:java 學習時間,天才也的三個月吧。慢滿學吧。如果要精通,那我不知道需要多少時間了。用來寫

jsp,四個月應該夠了。

5:sql 學習時間,只需要知道insert ,delete ,update ,select,create/drop table的話一天你應該知道了。

6:xml 學習時間,我不知道我還沒有學會呢。呵呵。不過我知道DTD是用來做什么的。

7:ejb 學習時間,基本的調用看3天你會調用了。不過是建立在你學會java的基礎上的。

8:熟悉AppServer,Tomcat四天你可以掌握安裝,配置。把jsp跑起來了。如果是WebLogic也夠了,但要使用ejb那不關你的事情吧。SA做什么去了。

9:熟悉Linux那可得需要不少時間。慢慢看man吧。

10:Struts如果需要你再學習。

目標

1.你需要精通面向對象分析與設計(OOA/OOD)、涉及模式(GOF,J2EEDP)以及綜合模式。你應該十分了解UML,尤其是class,object,interaction以及statediagrams。

2.你需要學習JAVA語言的基礎知識以及它的核心類庫(collections,serialization,streams,networking,multithreading,reflection,event,handling,NIO,localization,以及其他)。

3.你應該了解JVM,classloaders,classreflect,以及垃圾回收的基本工作機制等。你應該有能力反編譯一個類文件并且明白一些基本的匯編指令。

4.如果你將要寫客戶端程序,你需要學習WEB的小應用程序(applet),必需掌握GUI設計的思想和方法,以及桌面程序的SWING,AWT,SWT。你還應該對UI部件的JAVABEAN組件模式有所了解。JAVABEANS也被應用在JSP中以把業務邏輯從表現層中分離出來。

5.你需要學習java數據庫技術,如JDBCAPI并且會使用至少一種persistence/ORM構架,例如Hibernate,JDO,CocoBase,TopLink,InsideLiberator(國產JDO紅工廠軟件)或者iBatis。

6.你還應該了解對象關系的阻抗失配的含義,以及它是如何影響業務對象的與關系型數據庫的交互,和它的運行結果,還需要掌握不同的數據庫產品運茫熱?oracle,mysql,mssqlserver。

7.你需要學習JAVA的沙盒安全模式(classloaders,bytecodeverification,managers,policyandpermissions,codesigning,digitalsignatures,cryptography,certification,Kerberos,以及其他)還有不同的安全/認證 API,例如JAAS(JavaAuthenticationandAuthorizationService),JCE(JavaCryptographyExtension),JSSE(JavaSecureSocketExtension),以及JGSS(JavaGeneralSecurityService)。

8.你需要學習Servlets,JSP,以及JSTL(StandardTagLibraries)和可以選擇的第三方TagLibraries。

9.你需要熟悉主流的網頁框架,例如JSF,Struts,Tapestry,Cocoon,WebWork,以及他們下面的涉及模式,如MVC/MODEL2。

10.你需要學習如何使用及管理WEB服務器,例如tomcat,resin,Jrun,并且知道如何在其基礎上擴展和維護WEB程序。

11.你需要學習分布式對象以及遠程API,例如RMI和RMI/IIOP。

12.你需要掌握各種流行中間件技術標準和與java結合實現,比如Tuxedo、CROBA,當然也包括javaEE本身。

13.你需要學習最少一種的XMLAPI,例如JAXP(JavaAPIforXMLProcessing),JDOM(JavaforXMLDocumentObjectModel),DOM4J,或JAXR(JavaAPIforXMLRegistries)。

14.你應該學習如何利用JAVAAPI和工具來構建WebService。例如JAX-RPC(JavaAPIforXML/RPC),SAAJ(SOAPwithAttachmentsAPIforJava),JAXB(JavaArchitectureforXMLBinding),JAXM(JavaAPIforXMLMessaging),JAXR(JavaAPIforXMLRegistries),或者JWSDP(JavaWebServicesDeveloperPack)。

15.你需要學習一門輕量級應用程序框架,例如Spring,PicoContainer,Avalon,以及它們的IoC/DI風格(setter,constructor,interfaceinjection)。

16.你需要熟悉不同的J2EE技術,例如JNDI(JavaNamingandDirectoryInterface),JMS(JavaMessageService),JTA/JTS(JavaTransactionAPI/JavaTransactionService),JMX(JavaManagementeXtensions),以及JavaMail。

17.你需要學習企業級 JavaBeans(EJB)以及它們的不同組件模式:Stateless/StatefulSessionBeans,EntityBeans(包含 Bean-ManagedPersistence[BMP]或者Container-ManagedPersistence[CMP]和它的EJB-QL),或者 Message-DrivenBeans(MDB)。

18.你需要學習如何管理與配置一個J2EE應用程序服務器,如WebLogic,JBoss等,并且利用它的附加服務,例如簇類,連接池以及分布式處理支援。你還需要了解如何在它上面封裝和配置應用程序并且能夠監控、調整它的性能。

19.你需要熟悉面向方面的程序設計以及面向屬性的程序設計(這兩個都被很容易混淆的縮寫為AOP),以及他們的主流JAVA規格和執行。例如AspectJ和AspectWerkz。

20.你需要熟悉對不同有用的API和frame work等來為你服務。例如Log4J(logging/tracing),Quartz(scheduling),JGroups(networkgroupcommunication),JCache(distributedcaching),Lucene(full-textsearch),JakartaCommons等等。

21.如果你將要對接或者正和舊的系統或者本地平臺,你需要學習JNI(JavaNativeInterface)and JCA(JavaConnectorArchitecture)。

22.你需要熟悉JINI技術以及與它相關的分布式系統,比如掌握CROBA。

23.你需要JavaCommunityProcess(JCP)以及他的不同JavaSpecificationRequests(JSRs),例如Portlets(168),JOLAP(69),DataMiningAPI(73),等等。

24.你應該熟練掌握一種JAVAIDE例如sunOne,netBeans,IntelliJIDEA或者Eclipse。(有些人更喜歡VI或EMACS來編寫文件。隨便你用什么了:)

25.JAVA(精確的說是有些配置)是冗長的,它需要很多的人工代碼(例如EJB),所以你需要熟悉代碼生成工具,例如XDoclet。

26.你需要熟悉一種單元測試體系(JNunit),并且學習不同的生成、部署工具(Ant,Maven)。

27.你需要熟悉一些在JAVA開發中經常用到的軟件工程過程。例如RUP(RationalUnifiedProcess)andAgilemethodologies。

28.你需要能夠深入了解加熟練操作和配置不同的操作系統,比如GNU/linux,sunsolaris,macOS等,做為跨平臺軟件的開發者。

29.你還需要緊跟java發展的步伐,比如現在可以深入的學習javaME,以及各種java新規范,技術的運用,如新起的web富客戶端技術。

30.你必需要對opensource有所了解,因為至少java的很多技術直接是靠開源來驅動發展的,如java3D技術。(BlogJava-Topquan's Blog)

下載JAVA學習路線word格式文檔
下載JAVA學習路線.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    java WEB 學習路線 v0.1

    1. J2SE 和Eclipse工具的使用 ? 集合類 * List / Set / Map / Iterator ? Java反射機制 ? 正則表達 2. 數據庫 Mysql ? 什么是數據庫 ? 基本語法: 建表刪表、Mysql 字段類型、單......

    Java程序員成長路線

    www.tmdps.cn Java程序員成長路線 Java程序員 高級特性 反射、泛型、注釋符、自動裝箱和拆箱、枚舉類、可變 參數、可變返回類型、增強循環、靜態導入 核心編程......

    Java自學成長路線

    Java自學成長路線 JAVA自學之路 一:學會選擇 決心做軟件的,大多數人選的是java,或是.net,也有一些選擇了手機、嵌入式、游戲、3G、測試等。 JAVA是一種平臺,也是一種程序設計語......

    給予Java初學者的學習路線建議(范文大全)

    給Java初學者的學習路線建議 在校學生,務必要在學好基礎(比如計算機系統、算法、編譯原理等等)的前提下,再考慮去進行下面的學習。第一部分:對于尚未做過Java工作的同學,包括一些......

    java學習

    .如何學習Java? 3.1 Java學習路線 3.1.1 基礎語法及Java原理基礎語法和Java原理是地基,地基不牢靠,猶如沙地上建摩天大廈,是相當危險的。學習Java也是如此,必須要有扎實的基礎,你......

    JAVA學習

    1 買本《java瘋狂講義》 或者 在網上下載下來看看2 主要看java語法部分和面向對象編程部分3 這些要速度過 接下來開始寫一些小例子 從例子里面學習會更快4 例子差不多了就開......

    如何深入學習java

    在開發領域的技術人員,只有不斷地充電提高才能夠讓自己始終處于不敗之地。技術日新月異,推陳出新,讓技術人員目不暇接。我們都知道,java技術是目前最流行的編程語言,java入門很難......

    嵌入式學習路線

    語言基礎 1.C 與 C++ A. 《c reference》 B. 《c++ 編程思想》 C. 《effective c++》 D. 《more effective c++》 E. 《effective c++ stl》 2. 軟件設計 A. 《UML 2.0 Refe......

主站蜘蛛池模板: 丁香五月激情综合国产| 狠狠躁夜夜躁av网站中文字幕| 亚洲国产精品成人午夜在线观看| 国产av无码专区亚洲精品| 国产乱人激情h在线观看| 92国产精品午夜福利无毒不卡| 亚洲区欧美日韩综合| 久久国产精品久久久久久| 国产69精品久久久久9999apgf| 国产成人无码a在线观看不卡| 欧美成人精品第一区二区三区| 人妻丰满熟妇av无码区| 国产午夜亚洲精品午夜鲁丝片| 日本中文字幕在线| 18禁区美女免费观看网站| 麻麻张开腿让我爽了一夜| 久久精品夜夜夜夜夜久久| 精品国产一区二区三区2021| 精品久久久久久无码人妻| 67pao国产成视频永久免费| 激情综合色五月丁香六月欧美| 国产成人av一区二区三区不卡| 女人和拘做受全程看视频| 亚洲国产果冻传媒av在线观看| 免费无码va一区二区三区| 精品一区二区av天堂| 国产一区二区三区怡红院| 麻豆亚洲一区| 乱人伦中文字幕成人网站在线| 久久99国产综合精品免费| 国产成人午夜福利在线观看| 亚洲成a∨人片在无码2023| 强辱丰满人妻hd中文字幕| 国产熟妇另类久久久久| 热久久99这里有精品综合久久| 国内精品久久久久久中文字幕| 亚洲熟女中文字幕男人总站| 无码人妻久久一区二区三区免费丨| 亚洲熟妇自偷自拍另欧美| 亚洲欧美激情四射在线日| 亚洲欧美另类久久久精品能播放的|