android轉java

westwolf發表於2021-09-09

作為一個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的道路上砥礪前行。。。

原文連結:http://www.apkbus.com/blog-892197-78365.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4662/viewspace-2805804/,如需轉載,請註明出處,否則將追究法律責任。

相關文章