原创 設計模式——實現單例模式
單例模式是最簡單的設計模式,沒有之一,相信大家也都聽說過。單例設計模式適合於一個類只有一個實例的情況,比如窗口管理器,打印緩衝池和文件系統,它們都是原型的例子。典型的情況是,那些對象的類型被遍及一個軟件系統的不同對象訪問,因此需要
原创 解題報告——第一次只出現一次的字符
題目:在一個字符串(1<=字符串長度<=10000,全部有字母組成)中找到第一個出現一次的字符的位置。若爲空串,返回-1。 思路:簡單的哈希問題,char佔一個字節,8位,最多表示256種字符。時間複雜度O(n),空間複雜
原创 操作系統——中斷、異常和系統調用比較
我們首先要明確,爲什麼操作系統需要中斷、異常和系統調用: 在計算機運行時,內核是被信任的第三方 只有內核纔可以執行特權指令 方便應用程序 接下來我們先簡單瞭解一下三者的概念: 系統調用(syst
原创 Linux高併發機制——epoll模型
epoll是一個特別重要的概念,常常用於處理服務端的併發問題。當服務端的在線人數越來越多,會導致系統資源喫緊,I/O效率越來越慢,這時候就應該考慮epoll了。epoll是Linux內核爲處理大批句柄而作改進的poll,是Linu
原创 STL源碼剖析——stack的實現原理和使用方法詳解
Stack 簡介 stack 是堆棧容器,是一種“先進後出”的容器。 stack 是簡單地裝飾 deque 容器而成爲另外一種容器。 使用 stack 時需要加上頭文件 #include<stack> 。 sta
原创 HDFS架構——NameNode
在學習NameNode之前,我們先回顧一下 HDFS 的整個系統構架。 在上一篇文章中我們講過了 NameNode 是管理節點,裏面存放元數據,那麼我們先來看看元數據的存儲細節。 元數據存儲細節 HDFS
原创 HDFS——HDFS整體設計架構和原理
在我們學習HDFS之前,首先要了解分佈式文件系統的概念,分佈式文件系統有很多,HDFS只是其中的一種而已。那麼分佈式文件系統是什麼呢,又有哪些優點? 隨着現在數據量越來越多,在一個操作系統管轄的範圍存不下了,那麼就需要分配
原创 Hadoop僞分佈環境搭建——Hadoop安裝與配置
我們需要從官網下載hadoop 點擊打開鏈接 我自己下載的是最新的版本 hadoop 2.7.1。 下載完成後就開始安裝了: 使用 sudo tar xzf hadoop-2.7.1.tar.gz 命令將文
原创 TCP/IP協議族概述
TCP/IP協議的體系結構 TCP/IP協議族四層模型和OSI七層模型 OSI七層模型
原创 Linux編程——GCC的使用
工欲善其事, 必先利其器。而gcc是Linux系統下最常見的編譯器,本文學習gcc 編譯器的使用。 gcc 支持編譯的一些源文件後綴名 gcc 編譯程序的流程 Linux的可執行文件並
原创 IP網際協議
IP 協議位於網絡層,它是 TCP/IP 協議族中最爲核心的協議,所有的 TCP、UDP、ICMP 及 IGMP 數據都以 IP 數據報格式傳輸。IP 協議提供的是 不可靠 、 無連接 的數據報傳送服務。 不可靠(unre
原创 STL源碼剖析——空間的配置與釋放
C++的內存配置基本操作是 ::operator new(),內存釋放的基本操作是 ::operator delete()。這兩個全局函數相當於C的malloc()和free()函數。是的,正是如此,STL正是以malloc()
原创 SQL數據庫的基本操作
一丶基本命令行操作 1、顯示當前數據庫服務器中的數據庫列表:mysql> SHOW DATABASES; 2、建立數據庫:mysql> CREATE DATABASE 數據庫名; 3、建立數據表:mysql
原创 Linux進程fork,exec,vfork詳解
在Unix/Linux系統下進程創建時需要進行如下系統調用:fork/exec fork()把一個進程複製成二個進程:parent (old PID), child (new PID) exec()用新程序來重寫當
原创 關於IO的同步,異步,阻塞,非阻塞
關於網絡IO的同步、異步、阻塞、非阻塞的文章網上有很多,搜索了對比了一下,觀點也各不相同,即使是wiki也把異步和非阻塞區分得不是很清楚。下面我就結合《Unix網絡編程 卷1》中的介紹,來說一說自己的理解。 IO模型