CodeGym University
學習
課程
任務
問卷及小測驗
遊戲
幫助
學習提醒時程表
社群
使用者
論壇
聊天
文章
成功故事
活動
評論
訂閱
亮色主題
課堂
評論
關於我們
開始
開始學習
現在就開始學習
探索地圖
課堂
所有探索
所有等級
Object 類的所有方法,以及更多關於 toString() 方法的方法
Module 2: Java Nkyem
等級 9,
課堂 0
“嗨,阿米戈!” “你好!” “今天我們要研究的是Object類, 你已經接觸過了,你知道Object是所有類的基類,它幾乎沒有數據,但是它有幾個方法。” “為什麼它需要方法?真的有人創建 Object 類的實例嗎?” “這樣看:Object 類中的方法在所有類中都是通用的。換句話說,Java 的創建者確定了幾種在他們看來每個類都應該擁有的方法,並將它們添加到 Object 類中。” “當與多態性(在派生類中覆蓋 Object 類的方法的能力)結合時,這將成為一個非常強大的工
equals 和 hashCode 方法:使用它們的原因和位置,以及它們的工作原理
Module 2: Java Nkyem
等級 9,
課堂 1
“現在我將告訴您一些同樣有用的方法: equals(Object o) 和 hashCode()。” “您可能已經記得,在 Java 中,比較引用變量時不會比較對象本身,而是比較對對象的引用。” 代碼 解釋 Integer i = new Integer(1);
介紹 wait、notify 和 notifyAll 方法
Module 2: Java Nkyem
等級 9,
課堂 2
“嗨,阿米戈!” “嗨,里希!” “我將向您介紹 Object 類的wait、notify和notifyAll方法。” “今天我們只是熟悉一下它們,但我們稍後會回來,花更多時間在這上面。” “好的。” “這些方法是作為線程同步機制的一部分而發明的。” “讓我提醒你,Java 有一個內置的機制來控制不同線程對共享資源(對象)的訪問。一個線程可以聲明一個對象處於忙碌狀態,其他線程將不得不等待,直到這個忙碌的對像被釋放。 “ “我記得。你用同步關鍵字來做到這一點。” “對。通常,代
clone 方法和 Cloneable 接口
Module 2: Java Nkyem
等級 9,
課堂 3
“嗨,阿米戈!” “嗨,金。” “我將向您介紹 clone() 方法。” “這個方法的要點是克隆一個對象,或者換句話說,創建對象的克隆/副本/複製品。” “調用此方法時,Java 虛擬機創建並返回調用它的對象的副本。 Object 類對克隆方法的實現非常原始:只創建一個新對象,並將原始對象的字段值賦給它的字段。 如果復制的對象包含對其他對象的引用,則將復制這些引用。不會創建這些對象的副本。” “嗯。沒什麼好說的了。” “問題是,Java 虛擬機不知道哪些對象可以或不能被克隆。
finalize 方法、可關閉接口和 try-with-resources 語句 (Java 7)
Module 2: Java Nkyem
等級 9,
課堂 4
“嗨,阿米戈!” “我只是決定和你討論一下finalize ()方法。” “如果你還記得的話,finalize() 是一個特殊的方法,在垃圾收集器銷毀它之前由對象調用。” “此方法的主要目的是通過關閉文件、I/O 流等來釋放已使用的外部非 Java 資源。” “不幸的是,這個方法沒有達到我們的預期。Java 虛擬機可以推遲銷毀對象,也可以推遲調用 finalize 方法,只要它願意。而且,它不保證這個方法會被執行根本沒有被調用。有很多情況下它沒有被調用,都是以 «優化» 的名
getClass() 方法、Class 對象和反射介紹
Module 2: Java Nkyem
等級 9,
課堂 5
“嗨,阿米戈!” “現在是重頭戲了。我們將熟悉 Class 類並接觸反射。 正如您可能已經意識到的那樣,Java 中的一切都是對象。對象需要什麼?每個對象定義了什麼這是怎麼回事?” “一類!” “對!幹得好。每個對像都有一個類。但是回到對象......有些對象完全包含一個實體,而其他對像只是幫助管理它。” “後一種類型包括FileOutputStream和Thread。當您創建Thread對象時,不會創建新線程。線程是在調用 start() 方法後由 Java 虛擬機創建的。
什麼是可變/不可變對象,它們有什麼用?
Module 2: Java Nkyem
等級 9,
課堂 6
“嗨,阿米戈!” “嗨,比拉博!” “今天 Bilaabo 將向您介紹可變對象和不可變對象。 “創建後可以更改的對象稱為可變對象。” “創建後不能更改的對象稱為不可變的。” “是什麼決定了我能否改變一個對象?” “新類的作者可以使該類的對像不可變。例如,如果將所有 setter 設為私有,則對象將只有一個構造函數和 getter;這意味著它在創建後將無法更改” “那有什麼意義呢?” “不可變對像有許多有用的屬性,但我將重點介紹幾乎所有不可變對象共有的兩個屬性:” 1)不可變對
該級別的附加課程
Module 2: Java Nkyem
等級 9,
課堂 7
equals() 和 hashCode() 合同或其他 equals和hashCode方法彼此密切相關,最好以一致的方式重寫這兩種方法。很多人都知道這一點。但並不是每個人都完全理解這條規則的原因以及違反它的後果。 在這篇文章中,我們將了解這些方法背後的想法,回顧它們的目的,並探討它們為何如此相關。 Java 中的不可變性:final、常量和不可變 在本課中,我們將討論特殊的最終修飾符。您可以將其視為一種“凍結”我們程序中需要持續、明確和不變行為的部分的方法。 我們可以將它應用
遞歸
Module 2: Java Nkyem
等級 10,
課堂 0
“嗨,Amigo。今天 Bilaabo 將向您介紹遞歸。” 如您所知,在 Java 中,一些方法會調用其他方法。此外,當一個方法被調用時,特定的參數被傳遞給它,但是方法的局部變量在它運行時採用特定的值。 “嗯。” “正如你所知,不同方法的內部變量是相互獨立的。” “嗯。” “所以想像一下方法調用自身的情況。這稱為遞歸。例如:” 例子 public static void main(String[] args)
退出條件。堆棧溢出錯誤
Module 2: Java Nkyem
等級 10,
課堂 1
沒有退出條件的遞歸代碼示例 讓我們再來看一個遞歸問題。例如,考慮計算斐波那契數列。大家應該都記得,斐波那契數列是一個數列,其中前兩個數字是0和1,後面的每個數字都等於前兩個數字的和。 讓我們編寫代碼來計算和顯示這些數字: public class Fibonacci {
該級別的附加課程
Module 2: Java Nkyem
等級 10,
課堂 2
Java 中的遞歸 在編程中,遞歸一開始會讓很多人感到害怕。但事實是,你只要坐下來好好鑽研,然後通過實踐鞏固所學。您將從本課中受益。它定義了 Java 中的遞歸函數,解釋了遞歸的其他基本定義,當然還有實際實現的示例。 土撥鼠日是關於......現實生活中的遞歸 ......仍然不確定你是否足夠了解遞歸?不要太擔心——幾乎每個程序員都發現自己處於這種微妙的境地。這裡有一篇文章將使用您肯定熟悉的真實示例來解釋什麼是遞歸。
多線程
Module 2: Java Nkyem
等級 11,
課堂 0
“你好,阿米戈!我們有一個新的且非常困難的主題。對不起。它通常被認為是最複雜的主題之一,不僅在 Java 中,而且在一般編程中也是如此。我說的是多線程。 ” 想像一個典型的電腦遊戲,例如太空飛船賽車遊戲。你正在浩瀚的宇宙中飛行,躲避隕石和巡邏巡洋艦。還有兩打人和你一起參加這些非法比賽。 假設您決定編寫這樣的遊戲。您的程序必須跟踪命令(鍵盤輸入)、移動宇宙飛船、計算它們的軌跡、確定任何碰撞的後果,並將所有這些繪製在用戶的屏幕上。這是一項非常複雜的工作。 還記得我們如何在成長中的
顯示更多
1
...
16
17
18
19
20
...
35
Please enable JavaScript to continue using this application.