簡體   English   中英

在Android開發環境中學習.Net開發的高級Java概念,技術,框架,內部等?

[英]Learning advanced Java concepts, techniques, frameworks, internals, etc for a .Net dev in the context of Android development?

我在很多不同的環境中專業地使用.Net,因此我很容易閱讀有關新框架,運行時內部結構,高級技術/設計以及使用和理解它們的內容。 在Java世界中,我的經驗有限,而且我現在真的只在Android開發中使用它。 我已經能夠很好地學習這門語言來構建我正在尋找的功能,但是我想要了解更多關於Java人員所同意的良好實踐和設計,無論每個人使用什么樣的現代框架,還有更多關於VM的內部以及我的編程選擇如何影響我的代碼的編譯和執行方式。

我正在尋找的.Net世界的例子

  1. 有一系列名為Effective C#的書籍,概述了每本書對編程風格進行細微更改的50個項目,以及它們如何在特定場景中使代碼更清晰,更高效。
  2. 實體框架是Microsoft的一個框架,用於直接連接到數據源並自動構建可配置的實體模型
  3. Managed Extensibility Framework是Microsoft的一個新框架,用於通過在兩端公開擴展點來編寫可擴展應用程序和可插入庫
  4. 互聯網上有關於.Net垃圾收集器如何工作以及您的編程選擇如何影響它與您的應用程序交互的文檔

Java世界中有哪些類型的資源,書籍,教程和框架?

還有一本名為Effective Java的書。

Java中有不同類別的數據綁定。 最先進的是Object模型,如JDO,JPA等。它們基本上使用映射將數據從對象移動到表,並且您永遠不會直接觸摸數據庫,因為它們都是透明處理的。 另一種是典型的“對象綁定行”技術,其中JDO就是一個很好的例子。 最后,直接處理數據庫,您使用JDBC。 使用最適合您的代碼邏輯的工具。

通常,您會發現使用Java時,它不是“僅一個解決方案”環境。 一些問題已經以不同的方式多次解決以實現不同的結果。

聽起來像“Managed Extensibility Framework”是J2EE服務器概念的一個微妙副本。 J2EE在過去十年中經歷了至少三次重大修訂。 如果要使用J2EE,請記住它為名為“containers”的包裝器中的項提供服務。 這意味着您必須調整代碼以滿足容器服務協議。 有一些前期學習涉及,但一旦你了解環境,這並不難。 您也不需要使用整個J2EE環境,您可以將自己的解決方案嵌入到J2EE服務器提供的解決方案中。 這是一個挑選類型的安排,珍貴的小強迫你。

J2EE還描述了許多可能獨立於J2EE服務器的企業技術,因此如果您不喜歡J2EE環境(無論出於何種原因),您始終可以包含JAR文件並使用不帶J2EE服務器的庫。

有些人認為最初的J2EE服務器限制性太強,所以你有一個叫做Spring的差不多J2EE服務器。 J2EE Web容器很早就在Java中出現了,因此您可以獲得“僅限Web容器”服務器,如Tomcat或Jetty。

使用Java,可能還有更多關於垃圾收集器的文檔,但是你必須更少地處理它的行為。 Java的垃圾收集器通常表現得更好,並且它不必處理指針支持,它部分地使.net的垃圾收集器不時需要傾向於它。

也就是說,取消引用您想要收集的任何內容。 如果邏輯將HashMap中的項目存儲為緩存,請考慮使用SoftReferences,它不會被視為垃圾收集中的引用。 Java不引用計數,所以不要擔心循環引用,你可以取消引用引用循環,它們都將被收集。

GC使用的算法根據內存可用性而變化。 在低內存利用率情況下,它會將實時對象復制到新頁面並釋放舊頁面(因此幾乎可以免費獲得壓縮。在更高內存的情況下,它使用典型的其他垃圾收集器的標記,掃描和緊湊循環。它還將它的內存分為三代段,以按照當前運行程序中應檢查的頻率對對象進行排序。

所有這些都說,真正的踢球者是Android使用Java語言,但它不運行JVM。 它運行着“我不敢相信它不是Java!” JVM工作類似於對類加載器和類文件格式進行重大更改。 這意味着您需要了解Davlik虛擬機的運行方式以及與JVM的不同之處。

玩得開心! 你可能已經習慣了Java領域的更多選擇; 然而,許多最流行的Java工具已被移植到.net之地,因此您將無法找到整個外部景觀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM