原创 Java經典算法:刪除元素

給定一個數組和一個值,就地刪除該值的所有實例並返回新的長度。(注意:元素的順序可以更改。新長度後剩下的內容都沒有關係。) Java解決方案 可以通過使用兩個索引來解決此問題。 public int removeElement(in

原创 Java中的反應流詳解

什麼是反應流? 在許多應用程序中,不是從固定存儲設備中檢索數據,而是幾乎實時地處理數據,而用戶或其他系統會迅速將信息注入到我們的系統中。多數情況下,此數據注入是異步的,因此我們無法提前知道何時會出現數據。爲了促進這種異步的數據處理

原创 計算機軟件設計原理

軟件設計一直是開發週期中最重要的階段。您花更多的時間設計彈性和靈活的體系結構,將來在發生更改時會節省更多的時間。 需求總是在變化–如果不定期添加或維護任何功能,則軟件將成爲傳統–並且這些變化的成本取決於系統的結構和體系結構。在本文

原创 JDK 15:Java 15中的新功能

隨着Java 14於3月17日全面上市,繼任者Java 15的開發工作將於2020年9月開始。到目前爲止,已經計劃對該發行版進行五項正式更改,最新的更改是隱藏類。先前的建議包括添加文本塊,添加Z和Shenandoah垃圾收集器以及

原创 Java經典算法:citations數組按升序排序

如果citations數組按升序排序怎麼辦?您可以優化算法嗎? 給定數組已排序,我們應該使用二進制搜索。 int hIndex(int[] citations) { int len = citations.length; if (

原创 Java經典算法:解碼方式

使用以下映射將包含來自AZ的字母的消息編碼爲數字: ‘A’-> 1’B’-> 2 … ‘Z’-> 26 給定包含數字的已編碼消息,請確定對其進行解碼的總數。 Java解決方案 通過使用動態編程可以解決此問題。這類似於計算爬樓梯方式

原创 Java中的方差詳解

什麼是方差? 維基百科有關方差的文章說: 差異是指更復雜類型之間的子類型如何與其組件之間的子類型相關。 這裏的“更復雜的類型”指的是更高層次的結構,例如容器和函數。因此,方差是關於容器與通過類型層次結構連接的參數組成的函數之間的分

原创 Java經典算法:組合之和

給定一組候選數(C)和目標數(T),在C中找到所有唯一組合,其中候選數之和等於T。可以從C無限次中選擇相同的重複數。 注意:所有數字(包括目標)將爲正整數。組合中的元素(a1,a2,…,ak)必須按降序排列。(即a1 <= a2

原创 Java類何時以及如何加載和初始化?

在Java中,您首先要編寫一個.java文件,然後在編譯期間將其編譯爲.class文件。Java能夠在運行時加載類。困惑是“負載”和“初始化”之間的區別是什麼。Java類何時以及如何加載和初始化?通過使用下面的簡單示例可以清楚地說

原创 Java集合正在發展

Java 9:集合的便利工廠方法 Java 9引入了創建不可變集合的新方法。在某個時候,我們都編寫了看起來像這樣的代碼: List moods = Arrays.asList(“HAPPY”, “SAD”); 從Java 9開始,

原创 如果用Java代碼刪除文件?

用Java刪除文件非常簡單。您可以只使用File的delete方法。這是一個示例代碼: package file; import java.io.File; public class DeleteFile { public sta

原创 Java經典算法:BST中的有序繼承者

給定二叉搜索樹和其中的一個節點,請在BST中找到該節點的有序後繼。 // Definition for a binary tree node.public class TreeNode { int val; TreeNode le

原创 Java經典算法:單詞模式

給定一個模式和一個字符串str,找出str是否遵循相同的模式。在此跟隨是指完全匹配,因此模式中的字母與str中的非空單詞之間存在雙射。 Java解決方案 public boolean wordPattern(String patt

原创 Java通用子類型如何工作?

泛型類是任何編程語言中的強大工具,但它們也可能帶來很多混亂。例如,爲什麼List不是一個子類List,即使Double是一個亞型Number?在本文中,我們將探討圍繞子類化泛型類型的各種規則,並構建Java提供的泛型繼承機制的內聚

原创 Java可選:正確處理空值

Java 8引入了 Optional該類,以使對null的處理不那麼容易出錯。例如,以下用於選擇幸運名的程序的空檢查爲: public static final List NAMES = Arrays.asList(“Rita”