公司新聞
當(dāng)前位置:首頁 > 新聞中心 > 公司新聞

軟件開發(fā)中常見知識(shí)總結(jié)

瀏覽:   發(fā)布時(shí)間:2019-04-11  [我要打印]

       最近在準(zhǔn)備軟件開發(fā)的筆試面試,復(fù)(yu)習(xí)(xi)了一些在軟件開發(fā)中的常見知識(shí)。為了給自己攢點(diǎn)RP,故與大家分享一二。


        長春軟件開發(fā),軟件開發(fā)需要準(zhǔn)備的比較多,主要分為編程語言,數(shù)據(jù)結(jié)構(gòu)和算法,計(jì)算機(jī)網(wǎng)絡(luò),計(jì)算機(jī)操作系統(tǒng),數(shù)據(jù)庫,設(shè)計(jì)模式,軟件工程,軟件測試。作為一個(gè)軟件開發(fā)者(程序


猿)至少需要熟練一種語言,目前比較常見和普遍的有C/C++,,java ,python,C#(取2017年6月TIOBE編程語言排行榜前5),web端主要是javascript(js)和php,移動(dòng)端


主要是java(android)和Objective-c(IOS),python熱度持續(xù)上升,與最近機(jī)器學(xué)習(xí),應(yīng)該人工智能比較火有關(guān)吧。當(dāng)然,編程語言在精不在多,曾經(jīng)LZ也糾結(jié)過學(xué)哪種語


言比較好,哪種語言比較厲害,結(jié)果最后才發(fā)現(xiàn)一點(diǎn)用都沒有。每種語言都有自己的擅長之處,根據(jù)自己的情況選擇一門努力加深即可。


      -------------------------------------------------------------------------------------------------------------------------------------

一.編程語言(以C++為例)


          基礎(chǔ)部分:


         //基本類型,復(fù)合類型,表達(dá)式,關(guān)鍵字,函數(shù),頭文件


           基本類型:


                       bool,  char,  wchar_t,  char16_t, char32_t


                       short , int ,long,long long ,float, double ,long double.


            可能大家覺得簡單,沒什么問題。


            1.上述基本類型在32/64位系統(tǒng)上求sizeof大小。


            2.上述基本類型取值范圍,signed和unsigned溢出如何處理。


            3.類型之間如何轉(zhuǎn)換,精度如何。


            4.類型在計(jì)算機(jī)上的儲(chǔ)存方式。


               復(fù)合類型:


                      引用& :  為對(duì)象起另外一個(gè)名字。  在C++11中增加了右值引用(rvalue reference)


                      指針*  : 指向另一種類型的復(fù)合類型。 函數(shù)指針,指針函數(shù),數(shù)組指針,指針數(shù)組


                      指針和引用區(qū)別


                      struct   union  enum的使用


                表達(dá)式:


                           常量表達(dá)式,值不會(huì)改變     const    constexpr 修飾


                          關(guān)系,賦值,比較,移位操作符的優(yōu)先順序與結(jié)合順序


                          sizeof 與strlen的使用


                         sizeof()(基本類型,空結(jié)構(gòu)體,空類,虛函數(shù),static修飾的變量,字符串,指針,數(shù)組,作為參數(shù)的數(shù)組)


                          auto 和decltype   C++11中增加


                           內(nèi)存對(duì)齊原則


                  關(guān)鍵字:


                                    const和static


                                    const int *p;     int  const   *p ;    int  * const  p; const修飾函數(shù),成員函數(shù),形參


                                     static 局部變量,全局變量,函數(shù),成員函數(shù)等


                                      violate和explcit


                                      解釋作用


                      函數(shù):


                              內(nèi)聯(lián)函數(shù)與#define


                             遞歸理解


                               參數(shù)傳遞方式:值傳遞,引用傳遞,指針傳遞


                    頭文件:


                              #include<> ""       


                              #define    


                              #ifdef   #ifndef    #endif   作用


                                                  


                   中級(jí)部分:


                         .內(nèi)存管理:運(yùn)行一個(gè)程序,所有變量和函數(shù)存放的內(nèi)存地址在哪?


                          堆和棧的區(qū)別


                          new  delete    malloc  free   


                          c++四種強(qiáng)制類型轉(zhuǎn)換:dynamic_cast ,static_cast, const_cast,reinterpret_cast


                           類,空類的大小,空類有哪些默認(rèn)類成員函數(shù)(構(gòu)造,析構(gòu),拷貝,賦值,取址)


                           類初始化列表順序


                           友元函數(shù)


                            構(gòu)造,析構(gòu)函數(shù)重載


                           構(gòu)造函數(shù)與析構(gòu)函數(shù)調(diào)用順序,構(gòu)造順序: 先調(diào)用基類構(gòu)造函數(shù),再調(diào)用成員類構(gòu)造函數(shù),最后調(diào)用 本身 的構(gòu)造函數(shù),析構(gòu)順序相反


                            構(gòu)造函數(shù)中可不可以拋出異常?析構(gòu)函數(shù)呢?


                           構(gòu)造函數(shù)和析構(gòu)函數(shù)能不能是虛函數(shù)?能不能調(diào)用虛函數(shù)? 


                          重載運(yùn)算符,哪些不能重載?


                   高級(jí)部分:


                        淺拷貝和深拷貝


                       虛函數(shù)實(shí)現(xiàn)機(jī)制


                      C++對(duì)象內(nèi)存模型分布


       內(nèi)存泄漏如何檢測


                       對(duì)內(nèi)存池的理解


                 C++11新特性:auto/decltype  序列for循環(huán)   Lambda表達(dá)式   變長參數(shù)的模板  智能指針shared_ptr,unique_ptr,weak_ptr


          STL 序列式容器(a-v-d-l-fl),關(guān)聯(lián)式容器(set/map,multi),無序容器(unordered_set,map,multi)


                特殊容器(stack,queue,pq,bitset)迭代器,算法  仿函數(shù)(函數(shù)對(duì)象) 迭代適配器(adaptor) 空間適配器(allocator)


               Windows下的內(nèi)存管理


                Windows消息機(jī)制的流程.


                    常見類庫的使用:STL,MFC,BOOST


               參考書籍《C++ Primer Plus》《C++ Primer》《STL標(biāo)準(zhǔn)庫》《Effective C++》《深度探索c++對(duì)象模型》《STL源碼剖析》本本經(jīng)典


       -------------------------------------------------------------------------------------------------------------------------------------------------


        二.數(shù)據(jù)結(jié)構(gòu)和算法


         鏈表(單向鏈表,雙向鏈表,循環(huán)鏈表),判斷鏈表是否有環(huán),鏈表反轉(zhuǎn),鏈表逆序輸出,兩個(gè)鏈表第一個(gè)公共結(jié)點(diǎn)


        隊(duì)列和棧,兩個(gè)隊(duì)列實(shí)現(xiàn)一個(gè)棧,兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列


         字符串   常用字符串處理     字符串匹配 KMP算法


     樹   二叉樹前序 ,中序, 后序, 層序   二叉樹鏡像   二叉樹 樹 森林之間的轉(zhuǎn)換   Huffman


           圖   DFS   BFS    最小生成樹  最短路徑   最大流  拓?fù)渑判?nbsp;  關(guān)鍵路徑


         van Emde Boas樹  斐波那契堆,Treap樹堆,線段樹  伸展樹  跳躍表  劃分樹    不相交集合,哈希表,并查集,字典樹,后綴樹/數(shù)組


                排序算法(交換類,插入類,選擇類,歸并,基數(shù))


                     查找算法(有序表,索引,搜索樹BST,平衡樹AVL,紅黑樹RBT,B樹B+B-B*)




               分治法,動(dòng)態(tài)規(guī)劃,貪心算法,攤還分析(聚合分析,核算法,勢能法,動(dòng)態(tài)表)




                    參考書籍  《大話數(shù)據(jù)結(jié)構(gòu)》《算法導(dǎo)論》《運(yùn)籌學(xué)》《編程之美》《劍指offer》《編程珠璣》


                     刷題必備   leetcode , topcoder  ,lintcode,牛客,各大校園OJ


   -------------------------------------------------------------------------------------------------------------      


         三.計(jì)算機(jī)網(wǎng)絡(luò)


                OSI7層模型(TCP4層)每層的作用和協(xié)議,URL到頁面過程


                http/https,get/post以及冪等性,http協(xié)議頭,http網(wǎng)絡(luò)攻擊(CSRF、XSS)


     TCP/UDP/IP報(bào)頭


          ARP & RARP   ICMP & IGMP  


      ping telnet traceroute


    TCP最大連接數(shù)


  tcp/udp 區(qū)別


    tcp 如何保證可靠連接


     三次握手和四次揮手詳細(xì)過程


     擁塞控制(過//程、閾值)


     流量控制與滑動(dòng)窗口


     time_wait的危害


           參考書籍《計(jì)算機(jī)網(wǎng)絡(luò)》《TCP/IP詳解》(卷一就夠了)《Unix環(huán)境編程》《Unix網(wǎng)絡(luò)編程》《linux高性能服務(wù)器編程》


   -------------------------------------------------------------------------------------------------------------------------------------


   四.計(jì)算機(jī)操作系統(tǒng)


    操作系統(tǒng)幾種分類


   進(jìn)程通信IPC(幾種方式)


   進(jìn)程與線程區(qū)別


   OS幾種策略(頁面置換,進(jìn)程調(diào)度)


   互斥與死鎖相關(guān)


   linux常用命令


          linux內(nèi)核相關(guān)


         參考書籍《Linux鳥哥私房菜》《現(xiàn)代操作系統(tǒng)》《深入理解計(jì)算機(jī)系統(tǒng)(CSAPP)》《Linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)》


    -----------------------------------------------------------------------------------------------------------------------------------


        五.數(shù)據(jù)庫


  //數(shù)據(jù)庫的范式,事務(wù)的ACID


//索引(包括分類及優(yōu)化方式,失效條件,底層結(jié)構(gòu))


//SQL語法(join,union,子查詢,having,group by)


//引擎對(duì)比(InnoDB,MyISAM)


//數(shù)據(jù)庫的鎖(行鎖,表鎖,頁級(jí)鎖,意向鎖,讀鎖,寫鎖,悲觀鎖,樂觀鎖,以及加鎖的select sql方式)


//隔離級(jí)別,依次解決的問題(臟讀、不可重復(fù)讀、幻讀)


//優(yōu)化(explain,慢查詢,show profile)


//分庫分表,主從復(fù)制,讀寫分離。


//Nosql相關(guān)(redis和memcached區(qū)別之類的,如redis,redis)


        參考書籍《深入淺出MySQL》


    ------------------------------------------------------------------------------------------------------------------------------------


      六.設(shè)計(jì)模式


框架是大智慧,用來對(duì)軟件設(shè)計(jì)進(jìn)行分工;設(shè)計(jì)模式是小技巧,對(duì)具體問題提出解決方案,以提高代碼復(fù)用率,降低耦合度。


設(shè)計(jì)模式,單例,工廠,策略,裝飾,橋接等23種Gof


框架模式:MVC,MTV,MVP,CBD,ORM


C++的QT、MFC、gtk,ACE,wxwindows,Java的SSH 、SSI,php的 smarty(MVC模式),python的django(MTV模式)等等


庫  STL,BOOST,COM,MFC


      參考書籍《大話設(shè)計(jì)模式》


    ---------------------------------------------------------------------------------------------------------------------------------------------------


      七.軟件工程

    需求,概要,詳細(xì),編碼,測試,維護(hù)

    版本控制工具 SVN,Git, VSS,CVS, ClearCase, StarTeam

    自動(dòng)化工具: 代碼生成、依賴管理、版本管理、環(huán)境分配、打包部署、線上監(jiān)控等,Apollo


    -------------------------------------------------------------------------------------------------------------------------------------------------------


       八.軟件測試


      單元測試,集成測試,系統(tǒng)測試,驗(yàn)收測試


      黑盒測試(等價(jià)類劃分,邊界值分析,因果圖和判定表,正交實(shí)驗(yàn)法,狀態(tài)圖法)


      白盒測試(邏輯驅(qū)動(dòng),基本路徑,循環(huán)覆蓋)


      壓力測試、云測試、回歸測試、topsite測試


      Bug管理工具JIRA,測試用例管理Testlink


      自動(dòng)化測試


      功能自動(dòng)化測試工具:Watir、Selenium、MaxQ、WebInject 


      性能自動(dòng)化測試工具:Jmeter、OpenSTA、DBMonster、TPTEST、Web Application Load Simulator 


版權(quán)所有:長春上信科技有限公司  吉ICP備16006330號(hào)-1     網(wǎng)站地圖技術(shù)支持:深度策劃

精品国产AⅤ一二三四区,久久中文一卡二卡三卡免费,久久99精品福利久久久久久,青青青青久久国产免
亚拍精品一区二区三区 | 亚洲日韩国产欧美一本大道 | 在线看片免费人成视频福利 | 在线亚洲乱码视频 | 亚洲日韩欧洲不卡在线观看 | 久久人人爽爽人人爽人人片AV |