久久久综合免费视频_97免费公开在线视频_国产亚洲女人久久久久毛片_老少配videoshd乱配_久久不见久久见中文字幕免费_91成色

公司新聞
當前位置:首頁 > 新聞中心 > 公司新聞

軟件開發中常見知識總結

瀏覽:   發布時間:2019-04-11  [我要打印]

       最近在準備軟件開發的筆試面試,復(yu)習(xi)了一些在軟件開發中的常見知識。為了給自己攢點RP,故與大家分享一二。


        長春軟件開發,軟件開發需要準備的比較多,主要分為編程語言,數據結構和算法,計算機網絡,計算機操作系統,數據庫,設計模式,軟件工程,軟件測試。作為一個軟件開發者(程序


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


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


言比較好,哪種語言比較厲害,結果最后才發現一點用都沒有。每種語言都有自己的擅長之處,根據自己的情況選擇一門努力加深即可。


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

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


          基礎部分:


         //基本類型,復合類型,表達式,關鍵字,函數,頭文件


           基本類型:


                       bool,  char,  wchar_t,  char16_t, char32_t


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


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


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


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


            3.類型之間如何轉換,精度如何。


            4.類型在計算機上的儲存方式。


               復合類型:


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


                      指針*  : 指向另一種類型的復合類型。 函數指針,指針函數,數組指針,指針數組


                      指針和引用區別


                      struct   union  enum的使用


                表達式:


                           常量表達式,值不會改變     const    constexpr 修飾


                          關系,賦值,比較,移位操作符的優先順序與結合順序


                          sizeof 與strlen的使用


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


                          auto 和decltype   C++11中增加


                           內存對齊原則


                  關鍵字:


                                    const和static


                                    const int *p;     int  const   *p ;    int  * const  p; const修飾函數,成員函數,形參


                                     static 局部變量,全局變量,函數,成員函數等


                                      violate和explcit


                                      解釋作用


                      函數:


                              內聯函數與#define


                             遞歸理解


                               參數傳遞方式:值傳遞,引用傳遞,指針傳遞


                    頭文件:


                              #include<> ""       


                              #define    


                              #ifdef   #ifndef    #endif   作用


                                                  


                   中級部分:


                         .內存管理:運行一個程序,所有變量和函數存放的內存地址在哪?


                          堆和棧的區別


                          new  delete    malloc  free   


                          c++四種強制類型轉換:dynamic_cast ,static_cast, const_cast,reinterpret_cast


                           類,空類的大小,空類有哪些默認類成員函數(構造,析構,拷貝,賦值,取址)


                           類初始化列表順序


                           友元函數


                            構造,析構函數重載


                           構造函數與析構函數調用順序,構造順序: 先調用基類構造函數,再調用成員類構造函數,最后調用 本身 的構造函數,析構順序相反


                            構造函數中可不可以拋出異常?析構函數呢?


                           構造函數和析構函數能不能是虛函數?能不能調用虛函數? 


                          重載運算符,哪些不能重載?


                   高級部分:


                        淺拷貝和深拷貝


                       虛函數實現機制


                      C++對象內存模型分布


       內存泄漏如何檢測


                       對內存池的理解


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


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


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


               Windows下的內存管理


                Windows消息機制的流程.


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


               參考書籍《C++ Primer Plus》《C++ Primer》《STL標準庫》《Effective C++》《深度探索c++對象模型》《STL源碼剖析》本本經典


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


        二.數據結構和算法


         鏈表(單向鏈表,雙向鏈表,循環鏈表),判斷鏈表是否有環,鏈表反轉,鏈表逆序輸出,兩個鏈表第一個公共結點


        隊列和棧,兩個隊列實現一個棧,兩個棧實現一個隊列


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


     樹   二叉樹前序 ,中序, 后序, 層序   二叉樹鏡像   二叉樹 樹 森林之間的轉換   Huffman


           圖   DFS   BFS    最小生成樹  最短路徑   最大流  拓撲排序   關鍵路徑


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


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


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




               分治法,動態規劃,貪心算法,攤還分析(聚合分析,核算法,勢能法,動態表)




                    參考書籍  《大話數據結構》《算法導論》《運籌學》《編程之美》《劍指offer》《編程珠璣》


                     刷題必備   leetcode , topcoder  ,lintcode,??停鞔笮@OJ


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


         三.計算機網絡


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


                http/https,get/post以及冪等性,http協議頭,http網絡攻擊(CSRF、XSS)


     TCP/UDP/IP報頭


          ARP & RARP   ICMP & IGMP  


      ping telnet traceroute


    TCP最大連接數


  tcp/udp 區別


    tcp 如何保證可靠連接


     三次握手和四次揮手詳細過程


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


     流量控制與滑動窗口


     time_wait的危害


           參考書籍《計算機網絡》《TCP/IP詳解》(卷一就夠了)《Unix環境編程》《Unix網絡編程》《linux高性能服務器編程》


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


   四.計算機操作系統


    操作系統幾種分類


   進程通信IPC(幾種方式)


   進程與線程區別


   OS幾種策略(頁面置換,進程調度)


   互斥與死鎖相關


   linux常用命令


          linux內核相關


         參考書籍《Linux鳥哥私房菜》《現代操作系統》《深入理解計算機系統(CSAPP)》《Linux內核設計與實現》


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


        五.數據庫


  //數據庫的范式,事務的ACID


//索引(包括分類及優化方式,失效條件,底層結構)


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


//引擎對比(InnoDB,MyISAM)


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


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


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


//分庫分表,主從復制,讀寫分離。


//Nosql相關(redis和memcached區別之類的,如redis,redis)


        參考書籍《深入淺出MySQL》


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


      六.設計模式


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


設計模式,單例,工廠,策略,裝飾,橋接等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


      參考書籍《大話設計模式》


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


      七.軟件工程

    需求,概要,詳細,編碼,測試,維護

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

    自動化工具: 代碼生成、依賴管理、版本管理、環境分配、打包部署、線上監控等,Apollo


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


       八.軟件測試


      單元測試,集成測試,系統測試,驗收測試


      黑盒測試(等價類劃分,邊界值分析,因果圖和判定表,正交實驗法,狀態圖法)


      白盒測試(邏輯驅動,基本路徑,循環覆蓋)


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


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


      自動化測試


      功能自動化測試工具:Watir、Selenium、MaxQ、WebInject 


      性能自動化測試工具:Jmeter、OpenSTA、DBMonster、TPTEST、Web Application Load Simulator 


版權所有:長春上信科技有限公司  吉ICP備16006330號-1     網站地圖技術支持:深度策劃

主站蜘蛛池模板: 吉木萨尔县| 嘉义市| 安泽县| 新竹市| 武宁县| 龙岩市| 邵武市| 卢湾区| 棋牌| 三亚市| 进贤县| 二手房| 罗平县| 罗山县| 海城市| 酉阳| 年辖:市辖区| 澄迈县| 平顺县| 云霄县| 仁寿县| 克什克腾旗| 色达县| 江都市| 望谟县| 文安县| 庆云县| 思南县| 景泰县| 巴马| 高清| 阿瓦提县| 塔河县| 三明市| 固始县| 常宁市| 龙井市| 彭水| 宣恩县| 广水市| 河间市|