android轉java
作為一個Android程式猿,現正在Java的道路上砥礪前行 ....
剛入職目前公司不久,領導宣佈Android專案停止,全力投入到對公司主站的改造上,公司主站是Java專案,我也就開始了Java開發。
說實在的,由Android轉Java還是有一定難度的,雖然都是java語言,但編碼思維完全不同。我之前學習過IOS,如果說Android轉IOS的難度是1,那麼Android轉Java的難度應該是5。Android轉IOS只有OC語法的學習,程式碼實現思維幾乎一樣。Android轉Java需要學習的有:1,編碼思維的轉變。2,專案框架的學習。3,資料庫的學習,4,Tomcat及專案部署的學習。5,專案邏輯的複雜度。下面針對每一點詳細說下我的感悟。
一,編碼思維的轉變。
Android開發屬於客戶端開發,在編碼思維上與IOS,WEB網頁類似,主要工作是獲取資料,展示資料,或者對使用者的操作作出響應,歸根來說操作的物件都是view。Java屬於服務端開發,操作的物件是資料,對資料的增刪改查操作,將使用者提交的資料經過處理後儲存到資料庫,或者資料從資料庫中取出來經過處理後傳遞給使用者。
二,專案框架的學習
Android開發的APP執行在Android系統的手機上,Java專案開發的專案需要執行在Tomcat等伺服器容器中,故首先要學習Tomcat的元件Servlet的使用,Servlet的作用是向客戶端提供介面。但實際專案開發中很少會直接使用Servlet,而是使用封裝的框架。我目前學習的框架有兩個,一個是封裝Servlet的SpringMVC,另一個是封裝Filter的Strus2.
Java專案除了對客戶端提供介面外另一個大功能是運算元據庫,運算元據庫的方式有很多,列舉如下:
1,JDBC:JDBC的全稱是Java DataBase Connectivity,即是使用java語言連線資料庫。這個是連線資料庫的最底層使用。
2,DBCP:DBCP的全稱是DataBase connection pool,即是資料庫連線池。由於專案中對資料庫的連線是個頻繁操作,每次都建立連線關閉連線很消耗資源,所以建議使用DBCP。
3,JPA協議框架
JPA的全稱是Java Persistence AP,意思是java持久層API。JPA,並不是一個框架,而是一個協議,實現思想是ORM,即物件關係對映,即把資料庫欄位與業務實體類物件的欄位做一個關係對映,把對資料庫的操作變成物件導向的操作,不需要些sql語句。根據JPA協議實現的資料庫操作框架有:
a,Hibernate
b,Open JPA
c,Spring Data JPA
d,ClipseLink
e,Toplink
4,MyBatis框架:它對JDBC的運算元據庫的過程進行封裝,使開發者只需要關注 SQL 本身,而不需要花費精力去處理例如註冊驅動、建立connection、建立statement、手動設定引數、結果集檢索等jdbc繁雜的過程程式碼。MyBatis是我目前感覺最好用的框架,比起JPA框架它需要些sql語句,但它更隨意,不受太多限制,尤其在多表操作時完全優於JPA框架。
另外一個非常重要的框架是Spring,幾乎在所有的Java專案中都會使用這個框架。Spring是一個容器,可以把註冊的類建立物件,然後放入到Spring容器中,不需要我們再使用new建立物件。並可以給物件的欄位進行物件注入。
最後一個框架是SpringBoot框架,這個框架整合了Spring和SpringMVC,而且讓配置更簡單,是一個很受歡迎的框架,目前我們公司的新專案正在使用的該框架。
三,資料庫的學習
資料庫操作在客戶端很少使用,所以資料庫操作對我是一大弱項。基本的sql語句還好說,多表聯查就有點困難了,然後就各種網上找資料學習。我們公司用的是oracle資料庫,還涉及到觸發器,儲存過程,索引的使用,等等,當時真是遇到很多困難,還好一切都過來了。當你走過之後就會感覺滿滿的成就感。
我們公司的Java專案有6個,這其中不僅用到oracle資料庫,還有mysql,還有非關係型資料庫中的mongodb和Redis。
關於資料庫的另一個難度是表結構設計。今年春節後公司開始一個新專案,前期需要做表結構設計,這個工作真是考察開發經驗的時候。網上有很多關於表結構設計的準則或依據,我個人經驗有限,這兒就不發表看法了。
四,Tomcat及專案部署的學習
Java專案都執行在Tomcat中,所以必須要了解Tomcat,瞭解Tomcat的基本引數配置,啟動和關閉等等操作。
Java專案一般需要執行在Linux系統中,所以要學習Linux基本操作。
Java專案是服務端專案,此時的JVM比Android專案負載大,所以需要JVM的引數配置。
五,專案業務邏輯的複雜度。
在Android專案中以頁面為模組,頁面與頁面之間邏輯關聯較小。而Java專案的業務邏輯複雜度應該是Android專案的10倍以上。Java屬於服務端開發,簡單說是對資料的增刪改查操作,但很少有這麼簡單的邏輯,往往一個操作要呼叫幾十個乃至上百個方法。我們公司的專案是入口網站,小編點選發布文章後會首先將文章儲存到資料庫,然後將文章id加入到釋出佇列,根據文章設定的釋出時間判斷什麼時間釋出。檔案釋出即是生成靜態的文章頁面,首先根據選取的節點獲取節點配置的模版,然後根據模版程式碼和靜態化技術生成html標籤。一個文章網頁除了文章外還需要載入其他模組,比如最新文章列表,最熱文章列表,廣告塊等等。小編的這一個動作我當時看了兩天才把程式碼梳理清楚。
另外我們公司Java專案有6個,有5個都是前後端不分離的,對於這種java專案還需要學習JSP,HTML,CSS,JavaScript等知識。
除以上之外Java開發還需要考慮併發量,叢集,分散式,程式間通訊,服務端穩定性等等方面。要想成為一個合格的Java開發者,仍然任重道遠。作為一個資深Android程式猿,現正在Java的道路上砥礪前行。。。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4662/viewspace-2805804/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 做了5年的Android,我轉Java後臺了!AndroidJava
- Android路由框架AnnoRouter:使用Java介面來定義路由跳轉Android路由框架Java
- Java程式設計師轉Android開發必讀經驗分享Java程式設計師Android
- 從Android到JavaAndroidJava
- 轉Java開發 Java 小寫轉大寫Java
- Android 轉場動畫Android動畫
- android webview 跳轉AndroidWebView
- Java Scoket (轉)Java
- Java Path (轉)Java
- java 方法(轉)Java
- effective java (轉)Java
- java——indexof() (轉)JavaIndex
- java 跳轉語句(轉)Java
- Android 使用js呼叫JavaAndroidJSJava
- Java新特性--Java Web Start (轉)JavaWeb
- [譯]玩轉 Android PathsAndroid
- Android異常分析(轉)Android
- Android面試題(轉載)Android面試題
- android 職業 轉行Android
- [轉] Android 效能分析案例Android
- android WebView總結(轉)AndroidWebView
- Java初探Oracle(轉)JavaOracle
- Java —— 轉換流Java
- java 字串轉intJava字串
- 轉載 Java容器Java
- Qt——轉戰Java?QTJava
- PHP & Java(4) (轉)PHPJava
- PHP & Java(2) (轉)PHPJava
- PHP & Java(3) (轉)PHPJava
- PHP & Java(1) (轉)PHPJava
- Java (原創) (轉)Java
- java 宣告物件(轉)Java物件
- java 陣列(轉)Java陣列
- java 變數(轉)Java變數
- java基本詞彙(轉)Java
- Java常用語(轉)Java
- 【Android面試-Java-V05】Java GC 垃圾回收Android面試JavaGC
- macaca+java+androidMacJavaAndroid