原创 操作系統—進程PCB淺析

先了解PCB 進程就是一個運行當中的程序. 程序本來是存儲在磁盤的,當我們需要執行它的時候,先把他讀取到內存當中,再然後放入到寄存器中,最後讓cpu執行程序,這個時候程序就變成了一個進程. 但是進程的生命週期其實不是

原创 android實現天氣預報App(1)——全國省、市、縣三級列表

前期準備工作 首先創建XXXWeather項目,具體的我就不多說 這裏使用LitePal來管理App的數據庫 我們在app/build.gradle文件中增加App需要用到的依賴 implementation 'com.goo

原创 Python+Selenium基礎之訪問瀏覽器

序: 假期在學校安排的實習中,開始對python網絡爬蟲有了接觸。以Eclipse編譯器進行配置,來實現python網絡爬蟲。 本文介紹如何初始化一個webdriver實例對象driver,然後打開和關閉瀏覽器。要用selen

原创 android實現天氣預報App(0)

首先 來看看目錄結構 activity:主要是天氣預報的各個頁面 db:存放省、市、縣三種數據的實體類 gson:存放獲取的天氣相關的json實體類 service:天氣等數據更新相關代碼的存儲 utils:存放的是一些網絡請

原创 網絡基礎—TCP的超時重傳、滑動窗口、擁塞控制、快重傳和快恢復

TCP超時重傳 原理是在發送某一個數據以後就開啓一個計時器,在一定時間內如果沒有得到發送的數據報的ACK報文,那麼就重新 發送數據,直到發送成功爲止。 影響超時重傳機制協議效率的一個關鍵參數是重傳超時時間(RTO

原创 Python+Selenium基礎之常見定位方法

python爬取網頁,少不了使用幾種網頁元素的定位方法。 使用火狐瀏覽器下載firebug和firepath組件,可以有效快速的獲取定位。 常見定位方法 常見的定位元素、id、class、css、xpath使用方法如下: fi

原创 記錄問題——Session 'app': Install failed.

發現問題 在使用百度地圖SDK時,在AndroidManifest.xml中增加了幾個權限,和標籤,又註冊了LBS SDK中的服務,結果出現以下問題 在網上搜了好多方法都不行,查看Event Log Failed to comm

原创 動態內存分配、malloc與new的區別

內存分配 先看內存的分佈狀況 一個由C/C++編譯的程序佔用的內存分爲以下幾個部分: 1、棧區(stack)— 由編譯器自動分配釋放 ,存放爲運行函數而分配的局部變量、函數參數、返回數據、返回地址等。

原创 操作系統—進程的退出

進程退出linux下正常的退出方式:1.在main函數中使用了return返回. (return之後把控制權交給調用函數)2.調用exit()或者_exit; (exit()之後把控制權交給系統)異常退出:1.調用abort函數2.Ctr

原创 冒泡排序的優化

傳統的冒泡排序算法我們應該很熟悉,主要的原理是: 1.比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。 2.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。 3.針對所有的元素重複

原创 操作系統—進程等待

進程等待的基礎概念 進程等待就是爲了同步父進程和子進程,如把運算放到子進程,賦值放到父進程,可能需要讓父進程等待子進程運算結束.一個進程 在終止時會關閉所有的文件描述符,釋放在用戶空間分配的內存,但他的PCB還保留着,內核

原创 網絡基礎—TCP與UDP之間的區別

TCP與UDP區別 1、TCP面向連接(如打電話要先撥號建立連接);UDP是無連接的,即發送數據之前不需要建立連接 2、TCP提供可靠的服務。也就是說,通過TCP連接傳送的數據,無差錯,不丟失,不重複,且按序到達;UDP盡

原创 複習—C複習重點總結

C複習重點總結 1.static/const/volatile關鍵字在C/C++中的作用 2.結構體的內存對齊規則、位段的內存分配、枚舉的優點 3.指針 4.前置++,後置++ 5

原创 二分查找有這麼簡單?

題目一 給定一個有序(非降序)數組A,求任意一個i使得A[i]等於key,不存在則返回-1 這個是最原始的二分查找題目,利用數組的有序特性,拆半查找,使得查找時間複雜度爲O(logN)。 int search(int arr[],

原创 網絡基礎—三次握手與四次揮手

三次握手 基本過程: 原理: 第一次握手:客戶端將SYN設置爲1,表示要建立一個新的連接,並隨機產生一個序列值Seq=M,並將該數據包發給服務器客戶端進入FIN_SEND狀態; 第二次握手:服務器收到數據包後由標誌位SYN