目錄
- 前言
- 一、計算機通識【下】
- 08 域名決議(計算機網路)
- 09 IPv4(計算機網路)
- 10 IPv6
- 11 常用命令與埠
- 12 網路拓撲
- 13 資料結構常識
- 14 演算法常識
前言
計算機通識【上】已經寫過了,需要的點擊哦,
一、計算機通識【下】
08 域名決議(計算機網路)
-
域名規則:
①首先域名都是英文(錯,中文域名也有),由26個字母,還有0-9數字組成;
②內容可以是橫杠“-”,但是不能以橫杠開頭;
③不支持空格和特殊字符(+ - * / % @ $ ! ?等都不行);
④英文域名是不區分大小寫的,跟有些密碼不同,它是允許純英文(比如csdn.net)和純數字域名(比如12306.cn)的,如果是中文域名必須含有中文字符,這個問題不大;
⑤域名級數從右往左數,有幾個"."就是幾級域名,最好不超過五級,其中a.cn是一級域名,a.b.cn是二級域名;
⑥長度上每級不超過63個字符,總長度不超過253個字符;
⑦常見通用頂級域名.com .edu .org .gov .xyz .net等;
⑧國家頂級域名都是雙字母,中國.cn,美國.us;
⑨通用域名可以組合國家域名,例如高校官網一般用.edu.cn , -
域名決議型別:
①A記錄:即Address記錄,就是域名對應IP地址,通常是網站指向服務器地址,假設域名www.abc.com指向180.76.222.36,就是A記錄決議,
②CNAME記錄:就是防止服務器IP發生變更而生的,這種情情況只靠A記錄不夠,要用CNAME,或者說叫別名決議,假設域名www.abc.com對應IP 180.76.222.36 ,對應的CNAME可以能是efg.abc123.com,就是相當于多個域名映射到同一臺計算機,如果兩個決議都存在,那么A記錄會優先生效,
③MX記錄:即郵件路由記錄,就是用戶可以把原本改域名的郵件服務器指向自己的郵件服務器,這樣域名收到郵件就會轉至自己的郵件服務器上了, -
泛域名決議
要用到通配符“ * ” ,比如 *.abc.cn的泛域名指向IP 180.76.222.36,那么a.abc.cn , b.abc.cn 等以abc.cn結尾的都會指向改IP地址, -
易錯習題:
域名總長度不超過多少字符? 253個字符, (每級長度不超過63個字符) 數字有點不好記
09 IPv4(計算機網路)
-
IP位于網路層,主機間通信要靠它(未直接連接的兩個網路之間),MAC是物理地址,處于第二層資料鏈路層,兩設備之間直連通信,
-
IPv4由32位正整數,為了方便用點分十進制,如11000000 10101000 1001000 1001000 -> 192.168.72.72
-
IP地址分類:

-
CIDR,無類別域間路由,不分ABCDE,把32位IP分成網路號和主機號兩部分,如10.123.222.3/16,/16就代表前面16位為網路號,網路號范圍0-32,
另外CIDR也可以知道其子網掩碼,比如/16,就代表子網掩碼前16位全是1,即1111 1111 1111 1111 0000 0000 0000 0000,點分十進制就是255.255.0.0, -
私有地址:

-
本機IP、127.0.0.1和localhost區別:
本機IP:本機物理網卡IP地址,受限于防火墻和網卡,
127.0.1:環回地址,特殊網路介面,它發出的任何資料包都不會出現在網路中,同樣受限于防火墻和網卡,
localhost:相當于一個域名,指向127.0.0.1這個地址,同時指向IPv6地址 [::1],只有它不受限于防火墻和網卡, -
習題:
①如果開啟防火墻,本機IP、127.0.0.1和localhost哪個能ping通?
答:localhost,它不受限于防火墻,
②10.231.68.22是公有IP還是私有IP?
答:私有,
10 IPv6
- 它的誕生為了解決IPv4不夠用的問題,表示不再是點分十進制,而是冒分十六進制,例如0123:4567:89AB:CDEF:0123:4567:89AB:CDEF,一共是8個部分,32位十六進制數(也相當于128位二進制數),
- 若地址包含很多連續的0,可以用雙冒號表示:
①1234:0:0:0:0:0:0:1111 -> 1234::1111
②0:0:0:0:0:0:0:0->::
③0:0:0:0:0:0:0:1->::1
需要注意的是,一個IPv6地址中,雙冒號形式只能出現一次,
如0:0:0:0:1:0:0:0->::1:0:0:0 - IPv6還能夠兼容IPv4,規則是前96位二進制數采用冒分十六進制,而后32位使用點分十進制,如1234:0:0:0:0:0:0:192.168.22.22
- 重要習題:
::1/128 是 IPv6 的環回地址的預設(默認)寫法嗎?
答:是的,環回地址用于標識環回介面,允許節點將資料包發送給自己(自己與自己通信),它等價于 IPv4 的環回地址 127.0.0.1 ,
11 常用命令與埠
-
ping命令測驗網路連通情況,格式是 ping 域名/IP/主機名,需要打開cmd控制臺(win+R鍵,輸入cmd確定),比如ping一下csdn官網,如圖:

-
ipconfig,顯示ip配置資訊(IP地址,子網掩碼,默認網關等),包括系統中的虛擬機的ip都會顯示:

另外如果是Linux系統或者Mac系統 ,需要使用ifconfig,一個字母之差, -
常用網路埠:

12 網路拓撲
- 星型結構:各節點(主機、作業站、服務器等)以星型方式連接成網,該網路有中心結點,其他節點都與其直接連接,又成為集中式網路,
①優點:結構簡單、易于管理、控制簡單、時延低、傳輸誤差低等,
②缺點:可靠性低、資源共享能力差、線路利用率不高等,

- 總線型結構:各節點均在一條總線上,地位平等,無中心節點控制,
①結構簡單,可擴充性好,安裝簡單,
②維護困難,

- 環型結構:網路中若干節點通過通信鏈路,首尾相連成環,使資料在環路中沿一個方向在各節點間傳輸,
①優點:實時性強、傳輸控制容易,
②缺點:維護困難、可靠性不高,

- 網狀結構:每個節點互相之間都有鏈路連接,每個節點頻繁發送資訊就是用這種,它也稱分布式結構,
①優點:系統可靠性高,容錯力強,
②缺點:安裝復雜,不經濟,

- 樹型結構:集中控制式網路,與星型結構先比:
①優點:通信線路總長度短、成本低、易于擴充、尋找路徑方便,
②缺點:除了葉節點,其他任一節點與其相連的線路故障都會影響系統,

- 重點習題:
①哪種網路拓撲結構僅與自己的左右節點通信,并且通信資料流還是單向的?
答:環型結構(一定要注意它是單向的),
②在星型網路拓撲結構中,每個節點都可以與其他多個結點通信嗎?
答:根據定義每個節點都只能與中心結點通信,
13 資料結構常識
- 陣列(Array),不用多說,如java中的簡單使用:
public static void main(String[] args) { int array[]={1,2,3,4,5}; for (int i = 0; i < array.length; i++) { System.out.println(array[i]); } } 輸出 1 2 3 4 5 - 堆疊(Stack),特殊線性表,后進后出(LIFO:Last In First Out):

- 佇列(Queue),就跟排隊一樣,先進先出(FIFO:First In First Out):

- 鏈表(Linked List),一組資料集合,不是連續的,而是通過指標鏈接(如圖為帶頭尾指標不帶頭節點的單鏈表):

- 樹(Tree),非線性結構,一個根節點,多個后繼節點(如圖為三叉樹):

- 堆(Heap),特殊的樹,特點是根節點是最大或者最小,而且每個子節點都滿足這個要求(如圖為大根堆):

- 圖(Graph),非線性結構,圖G(V,E),其中V是頂點,E是邊(如圖為無向非連通圖):

- 散串列(Hash),也稱哈希表,來源于散列函式,存在鍵(Key),不用比較或查找就能知道其值(Value),其中多個Key可以對應同一個Value,但一個Key不能對應多個Value,

- 重點習題:
請問下面是AVL樹嗎?

答:不是,AVL為平衡二叉樹,雖然任意節點都滿足|左子樹高度-右子樹高度| <=1,但是葉子節點7<根節點10不滿足左子樹小右子樹大的條件,
14 演算法常識
-
幾個簡單的演算法就不介紹了,直接上題,自己一定要思考,
-
題目:使用 arrList 陣列完成下列需求(演算法編程題)
①var arrList = [1, 9, 0, 2, 1, 6, 8, 11, 0 , 5, 18, 1, 26, 11, 8, 2, 3, 5, 18]
②將每個重復的奇數存到 oddRepeat 中、將每個重復的偶數存到 evenRepeat 中(該 數字只要重復出現幾次寫幾次, )完成度越高,得分越高
③對整個陣列進行去重排序(從大到小且不允許使用 JavaScript 內置函式)并將數 組存到 list 中
答: 命題人目的是要用js做,答案檔案有,我這里只給出自己寫的java答案(可能不是最佳),考試如果遇到編程題,什么語言都是可以的,/*思路:先把奇偶數分開輸出,再化成HashSet去重,再換回ArrayList進行排序*/ public static void main(String[] args) { List<Integer> arrList=List.of(1, 9, 0, 2, 1, 6, 8, 11, 0, 5, 18, 1, 26, 11, 8, 2, 3, 5, 18); List<Integer> oddRepeat = new ArrayList<>(),evenRepeat=new ArrayList<>(); for (Integer integer : arrList) { if (integer%2!=0){ //奇數 oddRepeat.add(integer); }else { //偶數 evenRepeat.add(integer); } } System.out.println("奇數集合:"+oddRepeat); System.out.println("偶數集合:"+evenRepeat); //轉換成HashSet,去重 Set<Integer> set =new HashSet<>(); for (Integer integer : arrList) { set.add(integer); } //清空arrList元素 //arrList.removeAll(arrList); 會報錯,因為List.of的集合不可改變 //那么就重新創建一個 ArrayList<Integer> list= new ArrayList<>(); Iterator<Integer> iterator = set.iterator(); while (iterator.hasNext()){ list.add(iterator.next()); //把去重結果放到list } System.out.println("去重結果:"+list); //list.sort((o1, o2) -> o2-o1); //排序方法一:自帶sort排序,從大到小 //方法二,手動冒泡 for (int i = 0; i < list.size(); i++) { for (int j = 0; j < list.size()-i-1; j++) { if (list.get(j)<list.get(j+1)){ int item= list.get(j); list.set(j,list.get(j+1)); //設定索引為j的元素值為list.get(j+1) list.set(j+1,item); } } } System.out.println("去重排序:"+list); }
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/337691.html
標籤:其他
上一篇:Linux作業系統筆記05
下一篇:資料結構(C語言版)之堆疊及遞回
