原创 UDP簡單案例_雙人聊天

UDP傳輸協議: \quad一種無連接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務。 特點: · 非面向連接,傳輸不可靠,可能丟失 · 發送不管對方是否準備好,接收方收到也不確認 · 可以廣播發送 · 非常簡單的協議,開銷小

原创 ARM彙編(基於樹莓派3B)

開始 數據加載與加法 有用的工具 寄存器 A program on an ARM processor in user mode has access to 16 registers: • R0 to R12: 通用寄存器 •

原创 《算法》1.4節部分題解

14 4-sum。爲4-sum設計一個算法。 public int fourSum(int[] a) { int len = a.length; int cnt = 0; for (int l = 0; l

原创 遞歸打印一個目錄下的所有文件

問題來源:《算法(第四版)》習題1.3.43 import java.io.*; public class Test { public static void main(String[] args) { S

原创 HappenBefore指令重排

HappenBefore ·你寫的代碼很可能根本沒按你期望的順序執行,因爲編譯器和CPU會嘗試重排指令使得代碼更快地運行。 ·在虛擬機層面,爲了儘可能減少內存操作速度遠慢於CPU運行速度所帶來的CPU空置的影響,虛擬機會按照自己的

原创 死鎖及解決方法

死鎖的概念 \quad“死鎖”指的是: \quad多個線程各自佔有一些共享資源,並且互相等待其他線程佔有的資源才能進行,而導致兩個或者多個線程都在等待對方釋放資源,都停止執行的情形。 \quad因此, 某一個同步塊需要同時擁有“兩

原创 Java雙端隊列Deque

鏈表實現 import java.util.Iterator; public class Deque<Item> implements Iterable<Item> { private class Node {

原创 《算法》1.5部分題解

1.5.1 使用quick-find算法處理序列9-0 3-4 5-8 7-2 2-1 5-7 0-3 4-2。對於輸入的每一對整數,給出id[]數組的內容和訪問數組的次數。 import edu.princeton.cs.alg

原创 第四章算法題

1.有一名爲three的雙字變量,編寫一組MOV指令來交換該變量的高位字和低位字。 mov ax, word ptr three mov bx, word ptr three + type word mov word ptr th

原创 關於轉換流的一點理解

先看如下代碼: public class ConvertTest { public static void main(String[] args) { byte[] a = new byte[8];

原创 ARM彙編(基於樹莓派3B)3

第七章 Linux操作系統服務 在第1章“入門”中,我們需要能夠退出程序並顯示字符串。我們使用Raspbian Linux來執行此操作,直接調用操作系統服務。在所有高級編程語言中,都有一個運行時庫,其中包含用於調用操作系統的封裝器

原创 編寫一個可迭代的Stack用例,它含有一個靜態的copy()方法,接受一個字符串的棧作爲參數並返回該棧的一個副本

問題來源:《算法(第四版)》習題1.3.12 主要是泛型裏如何定義靜態的泛型方法。 public static<T> Stack copy(Stack<T> S) { Stack<T> s = new Stac

原创 ARM彙編(基於樹莓派3B)2

控制程序流 無條件跳轉 B label :最大允許跳32MB範圍 關於CPSR 條件標誌位: • Negative(負數標誌位): N is 1 if the signed value is negative andcleare

原创 記一次用異或運算交換整數裝逼失敗的經歷

我們知道要交換兩個整形變量,可以用三次異或來完成,但這個前提是你確實是在進行兩個元素之間的交換,如果在數組運算中,某一時刻變成了自己和自己交換,那麼這時使用異或運算,就會把自己變成0,也就是會丟失原來的值。

原创 利用IBM PC DOS提供的系統調用,將一個文件的內容複製到另一個文件中去。要求文件名由用戶從鍵盤上輸入。

dseg segment msg db 'Please input the src file name:', '$' ;提示輸入源文件名 msg2 db 'Please input the dest fi