菜鳥教程java,菜鳥教程javafx

本文目錄一覽:

新手java應該怎麼學?

零基礎小白學習JAVA要懂得一個道理,學習和掌握java相關技術也非一朝一夕之事,不可能一蹴而就,除了知識理論的學習,還需要後續更深入的學習和大量的實踐,所以需要你一個良好的學習規劃。

隨着社會信息的發展,Java技術已經無處不在,無論是手機軟件、手機Java遊戲還是電腦軟件等,只要你使用到電子產品就會碰到和Java有關的東西,更多的企業正採用Java語言開發網站,而在所有程序員中,Java開發工程師就佔據20%的比例,不可否認,Java語言有着廣泛的行業發展前景,它在行業中的影響力已是不可避免的。

那新手java應該怎麼學?學java無非就是自學和報班這兩種方式,至於java自學還是報班好,這個還是需要根據您自身的條件來判斷的。如果您自控能力、自學能力且有基礎那自學好。反之報班好。下面跟您說一下java自學與報java培訓班學的不同之處,供您參考。

Java自學:好的地方是省錢,不太好的就是學習時間不確定,學習周期很容易拉長,學習不夠系統,對於沒有基礎的或者自控力不強的人來說,也容易導致半途而廢。遇到不懂的問題沒有人解答,難以往下進行學習,而且容易學的半知半解。

Java培訓:學習時間相對較短,整體學習比較全面,學習內容也比較集中。專業老師按照大綱進行系統授課,在學習中遇到技術問題能夠快速得到解決,同時還有專項的練習相對於自學,學習氣氛更加濃厚,跟同期學員對問題的探討,對拓展思路有很大的幫助。並且像一些專業的培訓機構,培訓完後有相應的就業課程和就業指導,比起自學來說求職勝算更大。

如果您學Java是因為單純的興趣愛好,自學是一個很不錯的選擇。但如果您想通過學Java技術轉行的話,那麼最好是選擇參加Java培訓班。當然,可能現在的您感覺參加Java培訓班學費很貴,但是對於可以通過學習找到工作,還是比較值得的。

總之,決定了要學習Java技術就不要猶豫,要行動起來,時間可不等人。不管是自學也好還是參加Java培訓也罷,都要進行實際了解才行。

java初學者怎麼入門

學習JAVA應該從哪一部開始很多人都很迷茫,下面是我整理的學習路線和方向一共四點。希望對你有幫助!

①【學習語言基礎】

很顯然,掌握語言基礎是第一步。如果你不了解基礎知識,那麼你就不知道自己是否做錯了或者接下來該怎麼做。當然,這並不是要求你把所有的基礎知識都記住,比如所有的 Java關鍵字、核心概念或者基本編碼技術等。

②【開始編寫一些小程序】

如果你確信自己對大多數的基礎知識和概念足夠熟悉,並且能夠以某種方式將它們聯繫起來,那麼你就可以進行下一步了,你可以開始嘗試編寫一些非常基本的 Java 程序,比如打印 hello world、實現簡單的加減法,等等。

③【 使用 Java API 編寫高級程序】

當你完成了大部分的基礎程序編寫,並且掌握了基本的編程技巧之後,就可以進行下一步了。我會建議你努力學習 Java 集合和 Java IO 內部的 API。你需要熟悉這些 API 提供的各種類和接口,並利用它們來創建程序。需要注意的是,你應該查找已經存在的 API 和方法來實現功能,而不是自己實現這些邏輯。你的任務是熟悉這些 API,因此你只能夠在這些已有的 API 中尋求解決方案。

④【編寫桌面程序和 Web 應用】

通過這一步的學習,面對任何 Java 面試你都能夠信心滿滿,當你討論 Java 相關的話題時也能夠充滿自信。你需要至少編寫一個 Java 桌面或者 GUI 應用程序,比如計算器,然後再編寫一個 Web 應用程序,比如醫院管理程序。在前面的學習中,你已經掌握了最基本的 Java 知識,現在你需要去探索,然後編寫出這兩個應用程序。

重要的是,它可以幫助你養成不惜一切代價完成一項任務的好習慣。這種持之以恆的態度對你職業生涯的長遠發展是非常重要的。

最後,也是最關鍵的一點,就是要多看視頻教程,這一類的資料很多,可以自己搜索看一下,B站上面很多有關java的學習資料,我冒昧的推薦一個可以參考一下:網頁鏈接

ArrayDeque

寫cs61b題目時驚嘆為什麼會有這種東西,於是搜索了一番,發現這容器還是很有意思的,於是搬運了一下。

參考: ArrayDeque – (jianshu.com)

Java ArrayDeque – Java教程 – 菜鳥教程 (cainiaojc.com)

在ArrayDeque類實現這兩個接口:Java Queue和Java Deque

使用了數組來存儲數據,同時用兩個int值 head 和 tail 來表示頭部和尾部。不過需要注意的是 tail 並不是尾部元素的索引,而是尾部元素的 下一位 ,即下一個將要被加入的元素的索引。

ArrayDeque 有三個構造函數來初始化,除了無參的構造函數使用了默認容量,其它兩個構造函數會通過 allocateElements 函數來計算初始容量

數組的大小很特殊,大小必為2的n次方(2^n)。下面我們看看 allocateElements 方法

(1)對於一個小於2^30的值,經過五次右移和位或操作後,可以得到一個 2^k – 1 的值。最後再將這個值 +1 ,得到 2^k 。通過這個方法,可以將一個任意的初始值轉化為2^n的值.

(2)不過有一點不足在於,如果本身傳進來的值就是 2^n 的值,那麼經過轉化會變成 2^(n+1) ,所以我們在不用刻意去傳入 2^n 的值。

(3)如果傳入的值大於等於 2^30 ,那麼經過轉化會變成負值,即 0,此時會把初始值設置為 2^30 ,即最大的容量只有 2^30

在ArrayDeque中,數組是作為環形來使用的,正常情況下在末尾添加元素後,tail=tail+1是要判斷是否越界,如果越界,會變為從索引0開始。參考如下圖片,當H添加到索引7後,tail值會+1,此時tail=8,但是越界了,所以應該將tail設置為0。

我們看看 tail = (tail + 1) (elements.length – 1) 的正確性:

所以當 tail+1 = length – 1 ,此時數組並沒有越界, (tail + 1) (elements.length – 1) 後得到的還是 tail+1 。如果 tail + 1 = length ,此時數組越界了, (tail + 1) (elements.length – 1) 後得到0。

所以通過 (tail + 1) (elements.length – 1) 可以跳過條件判斷在環形數組中獲取正確的索引值,然後再判斷新的 tail 是否等於 head ,如果結果為 true ,那麼數組已經滿了,需要擴容,即 doubleCapacity() 。

原理和addLast相同

無論是從頭部還是從尾部添加元素,都會判斷 tail==head ,如果兩個索引相遇,說明數組空間已滿,需要擴容操作.

ArrayDeque支持從頭尾兩端移除元素

在上文中,我們講了怎麼去實現一個ArrayDeque,但Java標準庫中已經為我們準備好了,我們只需按規則使用就行

add() – 將指定的元素插入ArrayDeque雙端隊列的 末尾

addFirst() -在ArrayDeque雙端隊列的 開頭 ,插入指定的元素

addLast() – 在ArrayDeque雙端隊列的 末尾 插入指定的內容(等效於 add() )

注意:如果ArrayDeque雙端隊列已滿,則所有這些方法 add() , addFirst() 和 addLast() 都會引發IllegalStateException

offer() – 將指定的元素插入ArrayDeque雙端隊列的 末尾

offerFirst() – 在ArrayDeque雙端隊列的 開始處 插入指定的元素

offerLast() – 將指定的元素插入ArrayDeque雙端隊列的 末尾

注意: offer(),offerFirst()並offerLast()返回true是否成功插入元素;否則,返回。如果ArrayDeque雙端隊列已滿,則這些方法返回false。

getFirst() – 返回ArrayDeque雙端隊列的 第一個元素

getLast() – 返回ArrayDeque雙端隊列的 最後一個元素

註:如果ArrayDeque雙端隊列為空,getFirst()和getLast()拋出NoSuchElementException。

peek() – 返回ArrayDeque雙端隊列的 第一個 元素

peekFirst() – 返回ArrayDeque雙端隊列的 第一個 元素(等效於 peek() )

peekLast() – 返回ArrayDeque雙端隊列的 最後一個 元素

註:如果ArrayDeque雙端隊列為空,peek(),peekFirst()和getLast()拋出 NoSuchElementException

remove() – 返回並從ArrayDeque雙端隊列的 第一個 元素中刪除一個元素

remove(element) – 返回並從ArrayDeque雙端隊列的 頭部 刪除指定的元素

removeFirst() – 返回並從ArrayDeque雙端隊列中刪除 第一個 元素(等效於remove())

removeLast() – 返回並從ArrayDeque雙端隊列中刪除 最後一個元素

注意:如果數組雙端隊列為空,則remove(),removeFirst()和removeLast()方法將引發異常。 另外,如果找不到元素,則remove(element)會引發異常。

poll() – 返回並刪除ArrayDeque雙端隊列的 第一個 元素

pollFirst() – 返回並刪除ArrayDeque雙端隊列的 第一個 元素(等效於poll())

pollLast() – 返回並刪除ArrayDeque雙端隊列的 最後一個 元素

注意:如果ArrayDeque雙端隊列為空,則如果找不到該元素,則poll(),pollFirst()和pollLast()返回null。

刪除所有元素

iterator() – 返回可用於遍歷ArrayDeque雙端隊列的 迭代器

descendingIterator() -返回一個迭代器,該迭代器可用於以 相反順序 遍歷ArrayDeque雙端隊列

註:為了使用這些方法,我們必須導入java.util.Iterator包。

使用迭代器的方法如下

element() -從ArrayDeque雙端隊列的頭部返回一個元素。

contains(element) -在ArrayDeque雙端隊列中搜索指定的元素。如果找到該元素,則返回true,否則返回false。

size() -返回ArrayDeque雙端隊列的長度。

toArray() -將ArrayDeque雙端隊列轉換為數組並返回。

clone() -創建ArrayDeque雙端隊列的副本並返回它。

push() – 在堆棧頂部添加一個元素

peek() – 從堆棧頂部返回一個元素

pop() – 返回並從堆棧頂部刪除元素

原創文章,作者:KWOV,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/134287.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
KWOV的頭像KWOV
上一篇 2024-10-04 00:04
下一篇 2024-10-04 00:04

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • MQTT使用教程

    MQTT是一種輕量級的消息傳輸協議,適用於物聯網領域中的設備與雲端、設備與設備之間的數據傳輸。本文將介紹使用MQTT實現設備與雲端數據傳輸的方法和注意事項。 一、準備工作 在使用M…

    編程 2025-04-29
  • Python3.6.5下載安裝教程

    Python是一種面向對象、解釋型計算機程序語言。它是一門動態語言,因為它不會對程序員提前聲明變量類型,而是在變量第一次賦值時自動識別該變量的類型。 Python3.6.5是Pyt…

    編程 2025-04-29
  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬盤。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29

發表回復

登錄後才能評論