主頁 > 後端開發 > 關于鴻蒙 2.0,那些開發者不知道的一切

關于鴻蒙 2.0,那些開發者不知道的一切

2020-10-02 19:20:20 後端開發

整理 | 高衛華,視頻 | 王曉曼

責編 | Just、伍杏玲

出品 | CSDN(ID:CSDNnews)

頭圖 | CSDN 下載自視覺中國

鴻蒙作業系統在推出一年后,鴻蒙 2.0 作業系統如約而至,

在 9 月 10 日的華為 HDC 大會上,華為正式開放鴻蒙 HarmonyOS 2.0 原始碼,并對業界展示了其在商用落地和生態構建的進展,業界開發者對鴻蒙作業系統的全域有了更加清晰的認知,

不過,對于鴻蒙的技術亮點、與 Android 等作業系統的對比、給開發者帶來的機遇,以及未來物聯網作業系統的發展等備受關注的問題,還需要更深入專業的解讀,

近日,由 CSDN 重磅打造的對話欄目「大咖來了」的第七期《直擊鴻蒙 2.0 問世,探國產作業系統新征程》上,邀請到 CSDN 創始人&董事長、極客幫創投創始合伙人蔣濤原微軟合伙人、首席研究員劉劼,RT-Thread 創始人兼 CEO熊譜翔《深入理解Android系列叢書》主要作者鄧凡平主持人 CSDN 主編徐威龍,從多方行業專家視角就鴻蒙 2.0 作業系統的一系列問題進行了深度探討,

點擊視頻觀看精彩瞬間:

以下為對話內容實錄,有刪減:

鴻蒙 2.0 讓人印象深刻的亮點

蔣濤

蔣濤:華為的傳統是高級決策層每年做戰略推演,幾年前,他們推演出未來手機業務可能會出現兩個問題:一是華為手機不在了怎么辦?二是華為手機嚴重依賴安卓系統,安卓系統未來不在了怎么辦?

經過國際頂級作業系統專家開會討論,他們提出未來將采用分布式作業系統,

所以鴻蒙并不是臨時打造的,出發點并不是取代安卓,而是從戰略布局上研究得出的,它承載兩個使命:第一,它是下一代作業系統的代表,這是華為在2016年的戰略規劃;第二,預防安卓系統出現問題的解決方案,如今,這兩件事變成了一件事,

熊譜翔:鴻蒙系統不像傳統的手機作業系統,它是面向物聯網的作業系統,鴻蒙圍繞手機把系列 IoT 設備變成手機、電腦、電視的附屬設備,以分布式模式融入到華為生態,

在鴻蒙第一版代碼開源后,有人和我說有一點失望,這個失望點在于鴻蒙開源部分僅圍繞 LiteOS 推出,是 LiteOS 包裝的一個版本,

鄧凡平:在本次大會上,華為明確強調了后續逐步開源的計劃:先作為解決 IoT 設備的作業系統,然后上升到智能手機類的高端設備,我個人認為這是較務實的做法,

我現在比較關注的是128MB-4G的設備,這個設備除了能跑內核之外的關鍵技術,還能跑一個相當于OS的外圍設備,比如圖形影像、多媒體、應用的安裝和管理,這些更會體現鴻蒙特色,

那么作為一個普通的開發者應該關注什么?

在鴻蒙壯大程序中,普通開發者應該關注自己能做什么,能積累什么,不管鴻蒙最后成為什么樣,我們在這程序中所積累的經驗是星星之火,華為已意識到生態和開發者的重要性,邀請廠商加入128MB-4GB開發計劃,后續參與的開發者和廠商會更多,大家共同把這個事情做大,

劉劼:國內的軟體生態系統在逐漸走向成熟,華為這次對自己和作業系統的定位、對生態的認識都比較客觀,關于“目標分幾步走”的定位很精準,鴻蒙在技術上的難度是漸進的,他們從較簡單的物聯網起步,到后續搭建復雜的生態,華為正在逐步完善自己的技術,

我感受比較深的一點是華為的真實投入,據會上資訊顯示,華為投入 8000 人到搭建這個生態里,不光是作業系統,工具、編譯、應用、用戶體驗等方方面面都需要圍繞生態來做,這是打造一個生態必須要有的真實投入,

所以我很關注鴻蒙的發展,盡管它前面的道路可能會充滿荊棘,但我拭目以待,看它有沒有機會打造出新的作業系統,來打破當前作業系統領域的一些壟斷,

分階段在不同記憶體設備運行開源版本,意味著什么?

鄧凡平

鄧凡平:評價設備性能時,高中低端的設備會有很多引數,華為從眾多引數中挑選了記憶體這個比較重要的關鍵引數作為一種簡單的性能指標來劃分設備的高中低端,

熊譜翔:物聯網是非常碎片化的,碎片化是指物聯網場景中的型別、類別、種類非常繁多,如燈、開關等小簡單的物聯網設備本身的記憶體非常小,大一點的設備如安防攝像頭等,就要做視頻流的編碼、網路傳輸等,所以相對的記憶體占用量就多一些,

不同物聯網設備的存盤和計算能力中,最直接的表現是RAM的不同,RAM不同還會衍生出另一件事:小的芯片系統OS架構完全不一樣,所有東西在RTOS模式上逐步往上升時,功能性的要求會更多,這時需要把用戶態和內核態分開,手機跑多個應用時需要更大的記憶體,

可能是有這個緣故,鴻蒙 2.0 發布的基于 LiteOS 的內核,分為 Liteos-m 版本和 Liteos-a 版本,

蔣濤:RT-Thread 裝機量達 6 億臺設備,這些設備是什么型別的?

熊譜翔:無線連接的設備是最多的,其中數量大概達 4 億臺,還有近 1 億臺工業類設備和一些安防類設備,

鴻蒙的機會和挑戰

鄧凡平:從鴻蒙目前的計劃來看,華為走了一條農村包圍城市”的道路:先從量大的 IoT 設備開始,再到終端和高端設備,

鴻蒙提出分布式和設備虛擬化的概念,欲打造出“超級終端”,我這里試圖推測下分布式、虛擬化設備這兩個概念提出的原因:華為的核心強項之一是它在通信/連接這塊有著非常深厚的技識訓累,而分布式最重要和關鍵的問題是如何解決設備之間的高效和穩定的連通,所以,分布式是華為在設備間聯通能力的一個自然而然的升華,

接著說為什么有虛擬化設備(或者設備虛擬化)的概念,這是因為看問題的視角不一樣,我在做 IoT 上面跑的是單片機還是 OS,底層通信協議是 NB-IOT 還是 LoRa,我只希望這些傳感器按約定好的資料傳輸和互動就行了,這種把外部設備看做是資料源/資料目的端是非常通用,但從華為角度看,如果通過資料這種抽象(其背后是協議的功勞)將硬體差異化都屏蔽了的話,鴻蒙的 IoT OS 就沒有辦法滲透到設備上去了,所以,分布式+設備虛擬化是將鴻蒙 OS 滲透到 IoT 設備上的關鍵技術支撐,

熊譜翔

熊譜翔:之前大家沒有很意識到基礎軟體的重要性,現在大家意識到了,所以現在存在很好的機會,關鍵在于大家能不能抓住這個機會,華為在連接上的經驗和技術能力也可以賦能給其他設備廠商,

大家對鴻蒙的最大關注點是,它是國產作業系統并采用開源的方式,其他廠商愿意參與的話,是一件很好的事情,

劉劼:鴻蒙如果能成功,可能會是有幾個正向因素:

一是國內外環境;二是國內移動互聯網生態已基本建立完整,App 之間基本是獨立的,所以給新的生態系統帶來機遇空間,回顧歷史,以前 Windows Phone 和以手機為主的生態探索都失敗了,在大環境下,新生態系統可能會出現機遇空間,

計算機領域每十年有一個新的計算模態,從小型機、到PC、互聯網、移動互聯網,下一代是物聯網,而物聯網領域還沒有一個主導的作業系統平臺,物聯網的計算形態是不是以這種模式來出現,還沒有定論,如果鴻蒙有機會的話,它在物聯網領域要比在手機領域機會大,從大的角度來說這是一個新領域,

三是國產軟體日益成熟,大家在做很多投入和以真實客觀的態度看待問題,從工具、內核思想、組織架構方面不斷創新,以科學研究的角度來看,鴻蒙也是值得關注的,

從這幾方面來說,鴻蒙是有機會的,但出錯的可能性也非常大,因為這是史無前例的,在以前的大生態建立起來后,沒有一家以后來居上的形式實作過新生態的打造,

蔣濤:從程式員角度來看,鴻蒙做“分布式全場景”系統是比較自然的,

以前的作業系統被限制在一個終端里,PC 只能控制 PC 和 PC 外設,手機只能控制手機里面的 GPU,能呼叫的資源在設備里面,我們只能通過網路協議去調云端服務和外部的設備,

鴻蒙把所有的外設、外部連接、外部能力都變成自己的子設備,這是一個比較樸素和直觀的編程思想,假如以前想這么做的話會有很多物理條件和資源的限制,但是華為這次做得比較徹底,比如分布式呼叫、時鐘同步要做到實時才行,如果沒有實時就是云同步,

但要做到真正的實時是非常有挑戰性的,一是通訊的延遲要做得非常好,這是華為的強項;二是要做到真正的同步,把各個不同的設備當成物理空間內的一個設備,該設備就是一個時鐘系統,但是不同設備間是不同的時鐘系統,怎么讓它同步并形成檔案存盤的實時同步?

華為在這上面做了很多作業,在目前的開源版本里還看不出來,但它在未來規劃將所有的設備連接在一個系統上,

華為有通信的積累以及調度大型網路的技識訓累,通信協議層是根據網路協議標準在低帶寬和高錯誤率的情況下制定的,如今我們有高速帶寬,錯誤率、丟包率比原來少了很多,在協議上做了許多簡化,相當于整個外部環境是不一樣的,

另外,華為在通信和系統分層結構上有豐厚的經驗,在網路通信、作業系統上扎得比較深,

為什么華為做這件事情?難道蘋果和 Google 沒有想過要把下一代作業系統做成這樣嗎?這是一個比較自然的演進,這是“原子化能力”,即把作業系統變成一個個小的組件,能被不同應用呼叫,打破原來 App 的限制,

如今華為從作業系統到應用層有突破,這是希望未來每個服務是個人化的,不是在 App 的個人化,而是作業系統來幫你做個人化,因為它能獲得更多資訊,個人只需要提供服務能力,

如今每個 App 在做超級 App,將所有東西封裝在一個系統里,而華為想做分布式作業系統,即把大家的能力打散,打散以后通過它來呼叫,這個愿景很大,如果實作的話,未來誰控制作業系統,誰就是世界上最強大的入口,

劉劼華為做這件事情跟它硬體 DNA 相關的,蘋果的 DNA 是用戶體驗,所有事情圍繞用戶體驗來驅動;谷歌的 DNA 是資料,它的重點是把資料集成在一起的大資料服務;華為的 DNA 是從網路和硬體角度,把作業系統當成硬體來看待,這是值得嘗試的一個新角度,

我原來在微軟研究院做過一個和鴻蒙在用戶體驗能力上非常像的專案,從家庭做起,進行多設備間的協同,但更多的是通過作業系統層來實作,把這個概念真正地融入到作業系統里,資料從一個地方來,檔案從另外一個地方來,傳感器是從另外一個地方來,以硬體的思維很底層地把它集成在一起,

從這個角度想,我認為這是一個創新點,也只有華為的 DNA 能做這件事,

鴻蒙和其他作業系統的核心區別

劉劼

劉劼:鴻蒙有幾個特點:一個是微內核,微內核可以做很底層的驗證,能把多個資料源或者多個外設接起來,這是底層設計上的優勢,

從開發者角度來說,華為試圖提供工具來讓開發者適應和接受這個新環境,這是一個挺大的不確定性問題,因為底層框架已經不一樣了,整個程式思維有可能和原來開發單個設備的程式思維不一樣,

有個隱患是需要重新寫很多程式,華為能否提供一個較友好的介面,原來的程式能不改動或者做很小的改動就能編譯到這新體系,從技術上來說,存在較大的挑戰,

熊譜翔:從目前的宣傳情況來看,微內核、軟體總線、分布式都是很好的點,軟體總線這個方式能讓跨域設備無縫連接和融合起來,

鴻蒙早期提出微內核模式,谷歌也是微內核模式,我們對微內核的理解是:

第一,微內核本身屬于相對小的內核,小內核對一系列設備的啟動速度是有優勢的,不像大的內核啟動較慢,微內核需要什么應用就加載什么應用、啟動什么應用,可以相對應地按需方式加載應用,加快系統的啟動速度,

第二,微內核更安全,應用程式可以在一個隔離的地址空間運行,某個系統服務出問題,把這個殺掉就可以,還可以做熱升級,比如系統服務有些小問題,把系統停掉,重新去升級就可以,不需要重啟系統,所以它是個很好的模式,

對于大型的物聯網設備,這是較好的方式,因為可以做到需要什么就用什么,

蔣濤:我想問下劉老師,Google、蘋果怎么看下一代作業系統?它們的策略是什么?

劉劼:我從局外人來看,認為蘋果仍然在走自己的生態,這個風格應該不會變,蘋果跟安卓等系統之間很難打通,

對鴻蒙而言,威脅更大的是安卓,安卓會不會從手機端往下延伸,我覺得可能性非常大,現在已經有些基礎,

就像微軟手機進市場一樣,它的包袱較大,要往下延伸的話必須維護現有的設備支持和服務等,軟體公司越到后來,這種包袱就越大,所以它不會像鴻蒙調頭這么快,大概有個時間窗,看看華為能不能抓住這個機會,

但總的來說,這個事情沒有什么魔法在里面,大家看到以后的設備是以億級的物聯網設備出現、連接,服務越來越豐富,從這個角度來看,華為是包袱最小的,它沒有已有的用戶和服務去壓制它,

熊譜翔:這確實是基因導致,骨子里面適合于做成什么,或者想把它做成什么樣子,安卓作為手機作業系統來說,它確實是做到了壟斷,在物聯網領域,谷歌做出很多嘗試,但始終沒有擺脫安卓的影子,

開發者的機遇

蔣濤:對于安卓開發者來說,現在開源的產品跟他們是沒關系的,大家更多關注的是 12 月份發布的鴻蒙手機版,開源的 LiteOS 還看不出系統分布式的框架系統,精華在于手機版,

對鴻蒙有強烈擁抱態度的是家電廠商,以前九陽、美的、海爾等廠商在走智能化,他們想把設備聯網,之后就能接觸到自己的客戶,但聯網率低是一個巨大的問題,美的的聯網率是 10%,有 Wi-Fi 空調能聯上網的只有10%,聯網率低是這些廠商很大的痛點,另外,其開發能力不足,例如九陽大概有 130 個開發人員,其中約有三四十個做 IoT,鴻蒙能讓開發投入變得更簡單,同時能借助華為的入口可以把手機作為智能家居的入口,

現在 IoT 場景較分散,阿里云做過很多努力,騰訊也做了一些嘗試,不能說鎩羽而歸,但沒取得特別的成果,第一批 IoT 的廠商和 IoT 的生態會發生變化嗎?這是我的關注點,

劉劼:“生態”是個非常大的詞,它涵蓋端、邊緣,還有家居、制造、醫療場景以及云端服務,任何一端打不通,生態都建不起來,現在鴻蒙主要解決的是端的問題和區域設備之間的互動,

但要真正從生態上站住腳,不光要有設備端的物聯網 OS,服務也必須跟得上,從單點的技術上來看大家都差不多,從手機本身來講用戶的體驗是很像的,從生態的角度來看,只要有一個 App 做得不到位,服務端不支持,就可能有一大批人不買這樣的手機,雖然這是個小眾的內容,但它代表了一批人的生活方式,

華為還沒有推出手機 OS,我覺得這是一個非常關鍵的時間點,大家會怎么來接受手機版的鴻蒙,

IoT 較碎片化和封閉,它的應用比較單一,不會有特別大的擴張,當然云端的服務也要跟得上,一旦推出手機后這個門就打得非常大,這時如果生態里的服務、硬體廠商等跟不上,生態就打不開,

熊譜翔:針對不同的領域,生態的點是不一樣的,從作業系統的角度來說,微軟之前嘗試過在手機上推進電腦上的作業系統,之前還有諾基亞的塞班等,但最終失敗了,安卓卻能凸顯出來,這與公司的基因有一定關系,這和手機創新相關,其并非按照 Windows 的模式使用滑鼠點擊螢屏,這就是一個創新點,

所以如果作業系統進入新的市場,那么一定要有一系列的創新,否則無法得到這個市場的認可,生態是最終的結果,但中間的一系列創新非常重要,

鴻蒙會對國內物聯網生態的影響

蔣濤:第一點,目前普通開發者的參與度很低,最積極的是家電廠商,第一批鴻蒙設備在10 月份出來,華為在九陽豆漿機、美的等設備里內置鴻蒙系統,如果第一批吃螃蟹的家電廠商能有獲益的話,將會刺激更多設備加入進來,帶來更多的銷量,

第二點,以前用嵌入式系統做智能硬體的創業者,期待用鴻蒙去替代原來的嵌入式系統,我們看看未來鴻蒙是不是有新的能力,特別是跟華為分布式開發相結合的能力,這是第二批會做的,如今 CSDN 和鴻蒙在合作,我們在深圳建立了第一個俱樂部,

第三點,鴻蒙比較有特色的是多屏應用,會議上它展示了 VIPKID 的功能,學生上課看的是一個螢屏,老師是另外的螢屏,這些是垂類場景的變化,大家還在觀察是否真正能帶來有好處的體驗,

目前有一批 App 廠商正在跟鴻蒙合作,做 App 和硬體的核心訴求是產生新流量、新銷售,鴻蒙在市場上的關注度較大,但能否給第一批生態伙伴帶來實際的利益和價值?如果這批有比較好的標桿出來,并帶來比較好的銷量和收益,那么下一步就會看到好的成果,這是我們觀察到的,另外則是鴻蒙第一階段的生態目標——具備鴻蒙系統的手機,

劉劼:從好的角度來看,這是對互聯網、物聯網生態的降維打擊,如果這件事情做成了,作為小的物聯網設備生產廠商,只做一個小燈泡等也可以有幾個選擇,如果生態已經形成,廠商自然選擇鴻蒙生態,因為它可以把生產的東西自然地連起來,華為做好這個事情是可以一統江湖的,

難點在于系統該如何測驗,如研發出燈泡后,不是把燈泡連到云上測驗的,而是需要把燈泡放在九陽、美的、海爾等的環境觀察,所有的環境都需要測驗,

作為一個生態能否提供這能力,可以自信地表示只要這套設備通過后,所有環境都能連接并且有體驗,至少在近期這是非常不確定的一件事情,

很多開發者在持觀望態度,在沒有形成生態前,開發者投入到這里可能會得不償失的,所以目前一開始的生態合作方, 應該是在傳統行業上已經能支撐一個場景較大的成型家電廠,他們更容易接受鴻蒙的思維,

主持人:鴻蒙對 RT-Thread 有哪些影響?

熊譜翔:鴻蒙的誕生代表一件事:物聯網屬于下一個浪潮的大機會,否則華為也不會進來,另外,如果物聯網能夠形成一個時代,這個時代肯定是足夠大的,不會是華為進去就把其他的都擠死,處于早期的物聯網有很大的空間,

其次,目前鴻蒙剛開始開源,開源代碼支持的東西是三個硬體的芯片平臺——2個海思攝像頭、1個海思 Wi-Fi 芯片,廠商做產品時,光靠這三個芯片可能嗎?對整個物聯網環境來說,現在平臺還太少了,物聯網芯片都是幾百上千款芯片,而它只支持三個硬體平臺,

對于廠商來說,它要使用鴻蒙時,鴻蒙并沒有支持這個芯片,怎么辦?自己去移植嗎?相信能達到這個水平的還是少之又少,

其實 RT-Thread 也是有使用的技術門檻,因為這涉及到了底層的系統平臺,是最底層的根基,這需要很長一段時間,一是大家用了之后沒什么問題,二是相關技術也都支持好了,

最后,它是否為有束縛的平臺,廠商用這個作業系統時會想,我用這個作業系統時會不會被束縛?是否只能連接到你的手機,你的云是不是開放自由的平臺?這是廠商重點考慮的,

畢竟華為這么大的廠商屬于手機流量入口,這個入口有時是銷量平臺,所以有些廠商覺得可以提供很大的銷量,這是屬于利好的,

關于鴻蒙的未來

蔣濤我是鴻蒙堅定的支持者,

第一,中美問題以后,中國必須自建相關的作業系統,未來我們肯定要擺脫對安卓在工業互聯網上的依賴,一是芯片,一是軟體,這些是技術“卡脖子”的工程,后面我們會一層層解決掉,在解決“卡脖子”問題上,得到政府的大力支持和資源,所以中國作業系統不管怎樣,一定會立起來,

第二,從市場角度來看,未來會分裂為兩個市場,如今隨著全球化進展,TikTok 等被影響了,所以我們必須建設自己的土壤和系統,

客觀來說,華為有自己新一代的分布式作業系統,未來越多設備會被網路化、智能化,手機會是中心點,服務也會無所不在,所以,新的作業系統一定會演化和進步的,假設這個演化和進步是由蘋果和 Google 完成的,中國也不可能用,

華為走在前面,并把它開源,下一步就是打磨,其他廠商能否加入進來,未來中美進一步對抗,其他廠商會不會面臨打壓,我認為都是有可能發生的,所以做好準備是比較重要的,

劉劼:我國計算機系統軟體人才的培養較薄弱,國際核心系統會議里中國人非常少,這跟我們對計算機這門學科的理念有一定關系,即到底什么是計算機科學、它的核心在哪、貢獻在哪,

我在伯克利大學念書時,我們組是以工業設計開源軟體為著稱,有句名言是“你開源的軟體應該被當作你的論文一樣來對待”,這是把你的研究思想公之于眾讓世人去評價,評價這個軟體是不是被接受,應該受到與文章同等地位的評價,

很多基礎軟體都是從伯克利大學出來的,所以它有這種風氣,也有這自信,這點非常值得國內從人才培養的角度去借鑒和吸收,從而真正使得我們系統軟體領域后繼有人,

系統軟體領域非常需要大量人才,這要比刷一兩篇論文、刷一兩篇榜要重要很多,所以希望國內能把這件事情重視起來,

鄧凡平:很多人在糾結鴻蒙到底能不能取代安卓系統,我覺得這個問題是封閉性的問題,要么“是”,要么“不是”,

我們可以換個思路看這問題,如果鴻蒙取代安卓,大家皆大歡喜;假如鴻蒙沒有取代安卓,又怎么樣呢?這是微軟、三星等很多公司也沒干成的事情,所以即使鴻蒙沒有取代安卓也沒有關系,

大家在開發鴻蒙的程序中有什么收益?我們把人投到開發 OS 的程序中,會培養和造就大量 OS 方面的人才,不管鴻蒙未來是怎樣,只要在上面投錢、投人做這事,就一定會培養和造就這方面的人才,星星之火可以燎原,

科技是個長期的程序,我們只要做好打持久戰的準備就可以了,這是我目前的觀點,

熊譜翔:鴻蒙要做成這個事情,關鍵點在于合作,因為作業系統是生態上的事情,生態合作是其中最關鍵的主旋律,所以尋找合作伙伴來合作,讓大家參與進去得到各自的利益,這是非常重要的,

精彩回顧立刻掃描下方二維碼

https://t.csdnimg.cn/iI5m

更多精彩推薦
?中國專業開發者最多,最受 Web 服務青睞,Java 8 為最受歡迎版本 | 2020 年 Java 開發現狀大調查
?錯過了秋天的第一杯奶茶,不要錯過秋天第一場黑客松
?2020互聯網公司中秋禮盒大比拼!(文末送福利)
?面向隱私AI的TensorFlow深度定制化實踐
?干貨!一文看Doris在作業幫實時數倉中的應用&實踐
?DeFi深陷大規模“走出去”困境?Wing祭出三大殺手锏
點分享點點贊點在看

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/149156.html

標籤:python

上一篇:快速上手Arduino -- 列印超聲波模塊測距資訊到OLED螢屏上

下一篇:QT網路編程(2):QWebSocket

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more