主頁 > 後端開發 > 大資料相關資料論文小結

大資料相關資料論文小結

2020-09-30 08:15:33 後端開發

前言

不知不覺,2020年已經過去一半了,最近突然反應過來自己也看了不少文獻資料了,就想著把看過的文獻和覺得比較好的書籍做一個總結,基本都是大資料分布式領域的,回顧自己學識的同時,也給想從事或這個領域的小伙伴一些參考 ??,最后順便把接下來要看的東西列個串列,也會將自己學習的心得和經驗分享出來,有需要的童鞋可以參考參考,

另外有些文獻看完我會進行整理和輸出,這部分鏈接我一并附在文獻的介紹后面,后面看的書或是文獻也會保持這種習慣,如果覺得有興趣歡迎各位大佬交流,順便也可以點波關注~~

論文總結

MapReduce 《MapReduce Simplified Data Processing on Large Clusters》

從現在的眼光來看,Mapreduce可以說可圈可點,但在那個年代,這個思想可以說是相當先進的,不得不說Google一直引領技術潮流,包括近幾年流行的k8s也是Google主導,

這篇文章主要介紹了Mapreduce的流程還有一些細節方面的介紹,如果已經有使用過Mapreduce編程的小伙伴應該看一遍就能懂,另外,看完如果想加以鞏固的話,推薦做MIT6.824的Lab1,用go實作一個Mapreduce,至于什么是Mit6.824,百度一下就知道喔,我以前也有寫過一篇介紹MR,有興趣的童鞋不妨看看:從分治演算法到 Hadoop MapReduce,

地址:MapReduce: Simplified Data Processing on Large Cluster

GFS 《The Google File System》

GFS和Mapreduce這兩篇論文直接催生了Hadoop的誕生,不同于Mapreduce,Hadoop的hdfs到今天依舊是工業界主流是海量資料存盤方案,這證明了這一存盤方案的優越性,

這篇文章介紹了Google內部存盤方案GFS的實作,namenode存盤哪些元資料資訊,datanode如何保存數(問題可見這篇博客),帶著問題閱讀這篇論文,

不過熟悉Hdfs的童鞋讀過后應該會發現,GFS和Hdfs其實是有些不一樣的,比如上傳的流程,namenode存盤元資料的方式,至于為什么,等待各位童鞋挖掘答案啦,

另外在Hadoop之前用于存盤“大資料”的是RAID,對這塊有興趣的童鞋可以看看這篇:從 RAID 到 Hadoop Hdfs 『大資料存盤的進化史』,

論文地址:The Google File System

Bigtabble 《Bigtable A Distributed Storage System for Structured Data》

Bigtable,目前業內聞名的Nodel組件Hbase就是它的開源實作,這篇文章主要介紹了Google內部基于GFS的分布式結構化資料存盤系統,

GFS本身是適合追加資料而不適合隨機寫,文章介紹Bigdata為了適配這種特點而使用的LSM-tree存盤結構,而后又闡述一些優化的方案,諸如布隆過濾器,關于LSM-tree有興趣的小伙伴可以看看這篇:資料的存盤結構淺析LSM-Tree和B-tree,

論文地址:Bigtable: A Distributed Storage System for Structured Data

Spark RDD 《Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing》

Spark RDD的論文,RDD的全名叫彈性分布式資料集,當初MapReduce模型興起的時候,大家都以為已經迎來了曙光,但一段時間后才發現這東西其實也不是萬能,尤其是在機器學習等需要迭代計算的地方,而究其原因,其實是MapReduce在計算程序中,中間資料需要多次落盤,導致增加許多磁盤IO,

相比之下,RDD使用的DAG計算模型則更加優越,一方面是它將多個計算邏輯梳理為一個DAG有向無環圖,可以一定程度減少不必要的shuffle等耗時操作,另一方面,更加側重于使用記憶體進行計算,減少磁盤開銷,

讀這篇論文會識訓到有關RDD的設計細節,

論文地址:Resilient Distributed Datasets: A Fault-Tolerant Abstraction for
In-Memory Cluster Computing

Spark SQL 《Spark SQL: Relational Data Processing in Spark》

在Spark SQL模塊中,提出了DataFrame API,方便用戶進行關系型操作(join,group by)等,而其底層使用的還是RDD,

另外一條SQL陳述句的執行邏輯,包括決議,驗證,優化,生成物理執行計劃,執行程序中的優化邏輯等等,這里內容都可以在這篇文章找到,

對SQL決議感興趣的小伙伴,這篇不要錯過,還有下面會介紹到的Calcite的論文,都是跟SQL決議相關的,不過Calcite側重于適配多個資料源和內部組件的可插拔,上手難度會更高些,

我以前有結合這篇文章,寫了Spark SQL的原始碼決議系列,有興趣的童鞋可以看看Spark SQL原始碼剖析(一)SQL決議框架Catalyst流程概述,

論文地址:Discretized Streams: Fault-Tolerant Streaming Computation at Scale

Spark Streaming《Discretized Streams: Fault-Tolerant Streaming Computation at Scale》

流式處理被譽為大資料技術的未來,Spark Streaming在現在看來有些落后了(跟Flink相比),

在流處理領域中,由于資料是源源不斷的,但系統通常無法保證一直是健康狀態,資料也有可能出現落后的情況,所以容錯是很重要的點,Spark Streaming主要通過備份和上游重放結合的方式來保存資料和狀態資訊實作容錯,而一切的核心是微批的處理思想,這里就不展開太多了,

另一個點是延遲,Spark streaming由于使用了微批,延遲只能做到亞秒級,可以說成也微批,敗也微批,現在Spark的流處理模塊改用Flink一樣的演算法重寫,不過好像還沒完全實作完成,

通過這篇文章可以了解到Spark streaming的設計思想,對錯誤處理的實作機制,還有落后節點的處理,

論文地址:Discretized Streams: Fault-Tolerant Streaming Computation at Scale

Raft共識《In Search of an Understandable Consensus Algorithm》

共識,可以說是分布式時代的基石,很多系統的基礎功能都是在共識的基礎上實作的,按我的理解,共識是了解分布式系統理論原理的一把鑰匙,

最早的時候,分布式系統一致性共識一直是Paxos演算法的天下,就是說其分布式一致性就會想到Paxos,但Paxos演算法太過復雜難以理解和工程化,所以就有了Raft演算法,

這篇文章主要講述Raft演算法的具體流程,包括領導者選舉,日志復制等內容,看完你會發現,原來分布式共識演算法就跟個小玩具一樣,

有興趣深入的童鞋可以再接著做MIT6.824的Lab2,算是一個很有挑戰是實驗了,

對了,看的時候可以搭配我以前的這篇博客喔分布式系統一致性問題與Raft演算法(上)

論文地址:In Search of an Understandable Consensus Algorithm

Calcite《Apache Calcite: A Foundational Framework for Optimized Query Processing Over Heterogeneous Data Sources》

Calcite也提供了通過SQL管理資料的功能,但是它本身并不負責管理資料源和元資料資訊,

它設計出來的目標,是因為在后來在各個領域,流處理,批處理,文本檢索等等都有各自專長的工具,這些工具通常都需要用到SQL決議模塊,如果每個工具,比如Flink,ElasticSearch等自己開發一套SQL決議工具那無疑是在重復造輪子,

Calcite就是為了專門解決這個問題,所以它的主要考慮目標是通用性和可插拔,它里面用到的parser,validate,optimizer模塊都可以單獨拿出來使用,比如Hive就是自己直線parser和validate,使用了Calcite的optimizer來對SQL優化,

相對而言,Calcite的門檻會更高一些,但通用性更好,如果對SQL決議這塊業務有需求的人可以考慮了解看看,

論文地址:Apache Calcite: A Foundational Framework for Optimized Query Processing Over Heterogeneous Data Sources

AnalyticDB《AnalyticDB: Real-time OLAP Database System at Alibaba Cloud》

AnalyticDB是阿里巴巴剛發表不久的一篇系統論文,它的一個可以實時分析的OLAP資料庫,

目前業界開源的支持流式的OLAP資料庫,包括預計算的Kylin streaming,偏向時間資料的Apache Druid,還有Clickhouse等,

但很難有系統可以做到盡善盡美,即很難同時兼顧海量資料,靈活性,性能都較為優秀,

而AnalyticDB可以說是較為成功的一個系統,它確實在很多方面都做的比較好,在設計上也有不少創新的點,對OLAP這塊內容有研究的小伙伴可以看看文章,當然這個目前還不是開源的,僅有論文可以參考,

我之前寫過一篇博文,AnalyticDB實作和特點淺析,里面根據論文介紹了AnalyticDB的實作,一些特點還與當前業界開源系統做了對比,有興趣可以看看,

論文地址:AnalyticDB: Real-time OLAP Database System at AlibabaCloud

S4(Storm)《S4: Distributed Stream Computing Platform》

S4是比較早期的流處理方面的論文,在那個時代的創新點在于,可以讓用戶自定義計算邏輯而非僅使用算子進行計算,

當然它的缺陷也比較明顯,比如對落后資料直接忽視,對資料exactly once語意支持的不完善等等,

論文地址:S4: Distributed Stream Computing Platform

ZooKeeper《ZooKeeper: Wait-free coordination for Internet-scale systems》

Zookeeper是一個比較知名的開源分布式共識組件,論文中有說到它底層使用的是ZAB協議(但具體的細節也沒說明),但其實自己觀察就會發現,ZAB協議跟Raft演算法是很像的,只是對一些細節部分做了一定的修改,

論文更偏向其對這樣一個共識系統的功能和系統設計實作,對底層的演算法介紹偏少,推薦先看Raft演算法那篇,然后再看這篇Zookeeper的會好很多,

論文地址:ZooKeeper: Wait-free coordination for Internet-scale systems

Yarn《Apache Hadoop YARN: Yet Another Resource Negotiator》

yarn是一個調度管理系統,最早的時候,Hadoop的資源管理功能是由JobTracker負責的,但它同時還負責了很多功能,這樣就容易出錯并且有單點故障問題,而后yarn就獨立出來,后面發現yarn越來越受到歡迎,就逐漸開放,然后發展到一個可以讓大家都接入的資源調度系統,

這篇論文主要講述yarn的設計結構,里面的各個模塊,作業原理等等,我以前也有寫過yarn的博文,可以結合看看Hadoop Yarn框架原理決議,

論文地址:Apache Hadoop YARN: Yet Another Resource Negotiator

DDIA

這其實是一本書來著,中文全程是《據密集型應用系統設計》,

可以說是講述分布式系統中”道“那一部分的書籍,它并非純理論的書籍,而是很好得和工業界的一些實戰結合起來,真心覺得每一個從事分布式系統相關作業的開發人員都應該讀一讀這本書,

其實一直有打算嘗試寫一篇文章串起這本書的內容,不過工程有些浩大,導致一拖再拖,汗 = =! ,

后續待讀串列

順便貼下我后面打算看的一些文獻,把簡介也附上,給各位童鞋一個參考:),

容器技術《Large-scale cluster management at Google with Borg》

容器和編排技術應該算這幾年比較熱門的一個板塊,這篇講述的是Google內部的容器Borg,

地址:Large-scale cluster management at Google with Borg

Lambda 架構《Lambda Architecture for Cost-effective Batch and Speed Big Data processing》

地址:Lambda Architecture for Cost-effective Batch and Speed Big Data processing
資料模型已經從最開始的離線T+1處理模式,轉變Lambda架構,現在還有新的純實時的Kappa架構,

這篇文章主要就是介紹Lambda架構的,

分布式快照演算法《Distributed Snapshots: Determining Global States of Distributed Systems》

文中介紹的Chandy-Lamport,基本是當前主流分布式計算系統的標配,包括Spark,Flink等等,

主要介紹分布式系統中如何保證快照一致性,

地址:Distributed Snapshots: Determining Global States of Distributed Systems

Volcano 模型的經典論文,因為最近在看SQL決議優化相關內容,這部分可能會優先級比較高,

The Volcano Optimizer Generator: Extensibility and Efficient Search

SQL優化器Cascades The Cascades Framework for Query Optimization

和上面一篇Cascades模型是一脈相承之作,

The Cascades Framework for Query Optimization

Dataflow 《The Dataflow Model: A Practical Approach to Balancing Correctness, Latency, and Cost in Massive-Scale, Unbounded, Out-of-Order Data Processing (VLDB)》

來自 Google 的將 stream processing 模型和 batch processing 模型統一的嘗試,在 Dataflow model 下,底層依賴 FlumeJava 支持 batch processing,依賴 MillWheel 支持 stream processing,Dataflow model 的開源實作是 Apache Beam 專案,

地址:The Dataflow Model: A Practical Approach to Balancing Correctness, Latency, and Cost in Massive-Scale, Unbounded, Out-of-Order Data Processing (VLDB)

Apache Flink 是一個處理 streaming data 和 batch data 的開源系統,Flink 的設計哲學是,包括實時分析 (real-time analytics)、持續資料處理 (continuous data pipelines)、歷史資料處理 (historic data processing / batch)、迭代式演算法 (iterative algorithms - machine learning, graph analysis) 等的很多類資料處理應用,都能用 pipelined fault-tolerant 的 dataflows 執行模型來表達,

地址:Apache Flink: Stream and Batch Processing in a Single Engine

MillWheel 《MillWheel: Fault-Tolerant Stream Processing at Internet Scale》

MillWheel 是 Google 內部研發的實時流資料處理系統,具有分布式、低延遲、高可用、支持 exactly-once 語意的特點,不出意外,MillWheel 是 Google 強大 infra structure 和強大 engeering 能力的綜合體現 —— 利用 Bigtable/Spanner 作為后備狀態存盤、保證 exactly-once 特性等等,另外,MillWheel 將 watermark 機制發揚光大,對 event time 有著非常好的支持,推薦對 streaming system 感興趣的朋友一定多讀幾遍此篇論文 —— 雖然此篇已經發表了幾年,但工業界開源的系統尚未完全達到 MillWheel 的水平,

地址:MillWheel: Fault-Tolerant Stream Processing at Internet Scale

END-TO-END ARGUMENTS IN SYSTEM DESIGN

這篇講述的是分布式理論方面的只是,論證了這樣一個觀點:端到端的可靠通信,只能通過通信兩端的application層來保證,而中間件(比如SQS, Kinesis, ActiveMQ, 到更低層Netty乃至TCP)只能提高效率,而無法保證通信的可靠性

這篇論文發表的時間是在1984年,算是比較老的文獻,不過其中的觀點到如今依舊不算過時,想看這篇文章是受到知乎一個大神的安利,

不過這種關于設計原則的論文一般都會寫得比較抽象,比較難啃,
地址:END-TO-END ARGUMENTS IN SYSTEM DESIGN

Rethinking the Design of the Internet- The end to end arguments vs. the brave new world

《Streaming System》

Streaming System是一本介紹流計算相關概念的書,該書沒有介紹很多實際的用例以及流計算的實作的具體方法,但是從理念上介紹了流計算相關的思想以及實作的特點,有助于提高對流計算的理解,

怎么讀論文

每個人都有自己的學習方法,一些方法沒有好壞之分,只有適合不適合自己,所以這里我也只說明我自己閱讀文獻的一些方法,希望能給各位小伙伴一點參考,

工具

工欲善其事必先利其器,好的pdf閱讀工具是必不可少的,我目前用過比較合適的是mac下的Adobe Acrobat DC for mac,免費的,而windows下的Adobe家的pdf沒用過不做評價,windows下用的是Gaaiho Reader,

我個人覺得讀檔案比較需要用到的兩個功能,一個是添加附注,一個是文字高亮,

上述兩個工具,都可以直接選擇文字標識高亮,還有右鍵添加附注,相對而言比較輕巧且均免費,

添加附注是可以讓你隨時對自己看的內容記錄下來,后面再看的時候按照自己附注的線索閱讀就行,否則過一陣子再看論文會有一種陌生感,

高亮則可以將重點部分高亮起來,起到突出重點的作用,

閱讀方法

我一直信奉輸出倒逼輸入,看我上面的論文介紹應該也發現了,很多東西我看完都會輸出,所以我學習東西的核心思想就是輸入倒逼輸出

好處什么的就不介紹了,見仁見智,只說一些點,首先,論文通常看一遍是不夠的,基本上都是兩三遍起步(一些發現沒價值的除外),一些關鍵點的論述更是應該多閱讀幾遍,

第一遍的時候可以先通篇泛讀,把握文獻的整體結構,這一遍我一般會先側重與論文出現的背景,它要解決的問題是什么,與當前一些方案相比有什么優勢(劣勢一般論文中不會說= =),再看看解決方案的大概內容,有沒有比較感興趣或可能用的到的點,必要的地方做一做筆記,主要是為了后面回顧的時候快速明白看過的內容,

第二遍重點了解論文中解決方案的整體實作流程,其中肯定有些不懂的地方,還有精彩的,以后可能用的到的地方,這些內容都先記錄下來,一般第二遍后起碼會對論文的整體內容有比較清晰的了解,

第三遍主要是針對一些技術點的深入,可以與當前業界的一些方案相互比較,或者是查閱一下其他資料深入了解一些點的原理,甚至可以找到論文對應實作的系統,查閱對應的原始碼了解具體的實作程序,

如果還是覺得有不明白的地方,可以重復上述流程,

最后如果覺得論文有價值或者對論文方向感興趣,可以找一個點與論文結合起來輸出一篇文章,當然單純論文解讀也是可以,但那樣有點重復造輪子的感覺,

更好的做法,應該是尋找對應領域的文章,相互比對分析然后再產出,比如說看了Spark Streaming,可以結合Flink等系統的資料,輸出流處理方面的文章,不過這個最大的問題就是太耗時間了(哭笑),僅適用于想深入鉆研的領域且有足夠的時間,

以上~

PS:由于本人水平有限,部分闡述可能存在失誤,如果有發現問題歡迎在評論區指正,

參考:
Readings in Streaming Systems

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

標籤:Java

上一篇:Java比較器

下一篇:Java File類基礎決議 1

標籤雲
其他(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