成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

學習 Java 中最困難的部分以及如何克服它們

開發 前端
對于大多數初學者來說,充分學習 Java 的基礎知識都會碰到各種挑戰。

今天,我們將看看 Java 編程基礎中一些最難的領域,試圖了解為什么很多人覺得它們很困難,以及是否有什么需要你做的。

1. 泛型

Java 中的泛型是具有參數的類型。創建泛型類型時,你不僅要指定類型,還要指定它將使用的數據類型。 Java學習者經常提到泛型是Java最難理解的部分之一,當你有帶參數的方法要遵循時,這會容易得多,但當你必須編寫自己的方法時會感到困惑。

提示和建議

Java 泛型做了 C++ 模板不做的一件事——實現類型安全。C++ 模板的實現是一個簡單的預處理器技巧,并不能確保類型安全。Java 中的泛型類似于 C++ 模板,但具有額外的類型安全性。類型安全是任何良好開發環境的基本特征。

2. 多線程

Java中的多線程是同時執行兩個或多個線程以實現應用程序最大利用CPU的過程。多線程解決了非常重要的任務,可以讓我們的程序更快,通常快很多倍。但它被認為是許多新的 Java 學習者往往會陷入困境的主題之一。這一切都是因為多線程也會產生問題而不是解決問題。多線程會產生兩個特定的問題:死鎖和競爭條件。死鎖是指多個線程都在等待彼此占有的資源,并且沒有一個可以繼續運行的情況。競爭條件是多線程系統或應用程序中的設計錯誤,其中系統或應用程序的操作取決于部分代碼的執行順序。

提示和建議

有一個簡單的技巧,那就是使用精心設計的消息隊列(不要自己滾動)在線程之間傳遞數據。困難的部分是嘗試讓多個線程以某種方式神奇地更新共享對象。那是它容易出錯的時候,因為人們不注意存在的競爭條件。許多人不使用消息隊列,而是嘗試更新共享對象并為自己制造問題。變得困難的是設計一種在多個隊列之間傳遞數據時運行良好的算法。這很難。但是共存線程的機制(通過共享隊列)很簡單。”

3. 類路徑問題

類路徑錯誤也被認為是 Java 開發人員在日常工作中面臨的最受抱怨的問題之一。 “類路徑問題的調試可能很耗時,并且往往發生在最糟糕的時間和地點:在發布之前,并且通常在開發團隊幾乎沒有訪問權限的環境中。它們也可能發生在 IDE 級別,并成為降低生產力的根源。

提示和建議

“類路徑問題并不像最初看起來那樣低級或難以解決。這完全是關于某些目錄中存在/不存在的 zip 文件(jar)、如何找到這些目錄以及如何在訪問受限的環境中調試類路徑。通過了解一些有限的概念,例如類加載器、類加載器鏈和父優先/父后模式,可以有效地解決這些問題,”專家解釋說。

4. 多態性和正確使用

談到 OOP 的原理,很多人說他們很難理解多態性。多態性是程序以相同方式處理具有相同接口的對象的能力,而無需有關對象特定類型的信息。盡管多態是一個相當基本的主題,但它相當廣泛,并且構成了 Java 基礎的很大一部分。對于許多學生來說,多態是學習 Java 的第一個難點。這一切都是因為在不同的上下文中使用了不同形式的多態性,這可能會造成混淆。

提示和建議

除了學習它之外,沒有其他方法可以處理多態性。“簡單的重載:+ 可以表示整數加法、浮點加法和(在某些語言中)字符串連接。子類型多態性:如果 B 是(繼承自)A 的子類型,則 B 類型的任何值都可以在需要 A 類型值的上下文中使用。參數多態性:可以使用類型參數對類型進行參數化,這樣你就可以在不同的上下文可以提供不同的類型參數,因此你將參數化類型實例化為不同的具體類型。這也稱為“模板”或“泛型”,在 OO 語言中通常使用尖括號(例如 T)指定。接口多態。這基本上是一種機制,你將子類型多態性限制為實現某個接口的子類型或將參數多態性限制為實現某個接口的類型參數。”

5. 反射

反射是一種在程序運行時探索有關程序數據的機制。反射使你可以探索有關字段、方法和類構造函數的信息。它還允許你使用在編譯時不存在但在運行時可用的類型。反射和用于發布錯誤信息的邏輯一致模型使得創建正確的動態代碼成為可能。但是對于很多人來說,要弄清楚如何使用反射并不那么容易。

提示和建議

“在反射和 Java 的情況下,反射允許設計為靜態類型的 Java 進行動態類型。動態類型本質上并不是邪惡的。它允許程序員打破某些 OOP 原則,但同時它允許許多強大的功能,如運行時代理和依賴注入。Java 讓你可以使用反射擊中自己的腳。但是,你必須非常明確地將槍對準你的腳,取下保險裝置并扣動扳機。”

6. 輸入/輸出流

流允許你使用任何數據源:Internet、計算機的文件系統或其他東西。流是一種通用工具。它們允許程序從任何地方接收數據(輸入流)并將其發送到任何地方(輸出流)。他們的任務是相同的:從一個地方獲取數據并將其發送到另一個地方。流有兩種類型:輸入流(用于接收數據)和輸出流(用于發送數據)。使許多人難以理解使用流的原因是 Java 有多個 I/O 流類。

提示和建議

“Java 有這么多 I/O 流類,主要是由于兩個促成因素。首先是遺產,由于歷史原因,一些類仍然存在,并且由于它們不被認為是有害的,因此它們沒有被棄用。第二,靈活性。不同的應用程序有不同的要求,因此,你有多種選擇,具體取決于你的要求。有用的抽象在你閱讀時會帶來清晰性,并且只需幾行代碼,你就可以做很多事情。”


責任編輯:華軒 來源: 今日頭條
相關推薦

2021-04-16 14:05:32

云計算

2020-09-01 15:57:12

云安全云遷移云計算

2020-07-17 15:57:24

物聯網IoT網絡

2020-11-30 15:11:51

大數據

2020-03-09 22:21:15

物聯網技術操作系統

2013-12-20 09:30:20

桌面云云計算技術桌面云挑戰

2020-04-07 09:59:40

人工智能AI機器學習

2014-02-18 09:33:56

微軟納德拉

2020-10-23 10:18:25

遠程工作

2022-09-14 11:15:33

多云混合云云數據庫

2020-04-26 09:32:13

物聯網安全技術

2020-08-16 08:39:38

數據科學數據數據集

2011-01-19 13:46:17

Scala

2024-12-26 07:41:47

Java類型ArrayList

2023-05-05 14:45:05

2018-03-09 09:53:37

國產內存紫光半導體

2022-03-07 10:23:01

IT服務ITSMIT服務管理

2020-12-03 09:59:43

5G

2018-10-21 15:29:37

2020-03-18 09:03:47

物聯網安全黑客
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品久久久久久亚洲综合网 | 欧美成年人视频在线观看 | aaa天堂 | 在线视频中文字幕 | 黄色三级在线播放 | 中文在线日韩 | 国产精品高潮呻吟久久 | 久久亚洲精品国产精品紫薇 | 亚洲成av人影片在线观看 | 女人牲交视频一级毛片 | 四虎影视一区二区 | 亚洲国产一区二区三区四区 | 成人动慢 | 欧美日一区二区 | 亚洲欧美综合精品久久成人 | 久久久亚洲成人 | 2018国产精品| 中文在线a在线 | 一区二区在线免费观看 | 久久国产精品久久久久久 | 日韩精品免费在线观看 | 久久精品色欧美aⅴ一区二区 | 国产精品免费一区二区三区四区 | 欧美日韩专区 | 国产精品视频免费观看 | www.av在线 | 欧美日韩中文国产一区发布 | 欧美成人免费在线视频 | 久久国产精品一区二区 | 一区二区三区在线观看视频 | 欧美成人高清视频 | 久久久久久久久久一区二区 | a级片播放| 亚洲男女激情 | 欧美一区二区三区在线观看 | 国产精品美女久久久久久免费 | 亚洲国产精品一区二区第一页 | 四虎国产| 免费黄色特级片 | 国产蜜臀 | 亚洲国产黄色av |