技術總結

1 瞭解JavaScript編程、jQuery框架以及AJAX等前臺技術。
2 熟悉SpringMVC、Spring、Mybatis開源框架。瞭解Struts二、Hibernate、Spring Boot框架。 
3 熟悉MySQL、SQL Server數據庫,使用過Redis,瞭解數據庫優化。
4 熟悉Linux操做系統環境及常見命令的使用,瞭解分佈式系統架構。
5 瞭解C、C++語言,並可以使用進行基本編程。
6 瞭解經常使用數據結構及算法。
View Code

1,JavaScript,JQuery,AJAX都是作什麼的?php

HTML:展現數據
CSS: 使展現的數據更好看
JavaScript:是頁面的數據具備動畫效果
JQ:JavaScript框架前端

AJAX:異步的 JavaScript 和 XMLjava

  1,Ajax是一種用於快速建立動態頁面技術;經過後臺與前臺的少許交互,Ajax使頁面實現異步更新,也就是不更新整個頁面的狀況下,實現更新某個部分,傳統的不使用Ajax的頁面,更新的話,只能進行從新加載整個頁面。
  2,Ajax實現異步與同步,只須要修改async爲false就好了,以下:jquery

1 若是是jquery
2  $.ajax({
3 url: some.php,
4 async: false,
5 success : function(){
6 }
7 });
8 若是是原生的js
9      xmlHttp.open("POST",url,false);

2,框架用過哪些,具體某一個框架的工做流程,使用方法(主要配置)?nginx

  

3,解釋下SSM與SSH的區別?主要框架的區別?c++

  1,SSM與SSH的區別?程序員

  SSH一般指的是Struts2作控制器(controller),Spring管理各層的組件,Hibernate負責持久化層。
  SSM則指的是SpringMVC控制器(controler),Spring管理各層的組件,MyBatis負責持久化層。
  共同點:
    1,Spring依賴注入DI來管理各層組件;
    2,使用面向切面編程AOP管理事物、日誌、權限等;
  不一樣點:
    1,Struts 2和SpringMVC控制器控制視圖模型的交互機制的不一樣;
    2,Struts 2是Action類級別,SpringMVC是方法級別,更容易實現RESTful風格。
    3,Hibernate 和 MyBatis 作持久化時的處理不一樣。web

  2,struts2和springMVC之間的區別?   ajax

    1.springMVC的入口是servlet即前端控制器,struts2的入口是filter過濾器;
    2.SpringMVC是基於方法開發的(一個url對應一個方法),請求參數傳遞到方法的形參,能夠設計爲單例或多例(通常爲單例);Struts 2是基於類開發的,傳遞參數經過類的屬性,只能設計爲多例;
    3.Struts 2採用值棧存儲請求和響應的數據,經過ognl存取數據,springMVC經過參數解析器是將request請求內容解析,並給方法形參賦值,將數據和視圖封裝成ModelAndView對象,最後又將ModelAndView中的模型數據經過request域傳輸到頁面.jsp視圖解析器默認使用jstl.算法

  3,Hibernate和mybatis的區別?  

   1.Mybatis不徹底是一個ORM框架,由於它須要程序員本身編寫sql語句,而Hibernate徹底是一個ORM框架;
   2.MyBatis學習門檻低,簡單易學,並且Hibernate學習門檻高,不易精通;
   3.MyBatis直接編寫原生態sql,能夠嚴格控制sql執行的性能,進行更爲細緻的sql優化,靈活度高,很是適合對關係型數據模型要求不高的軟件開發,而Hibernate不須要編寫sql語句,靈活性不高,對於關係模型要求高的軟件,用它開發能夠節省不少代碼,提升開發效率。
      4.Mybatis自己提供的緩存機制不佳,而Hibernate有更好的一級緩存與二級緩存機制,可使用第三方緩存,如Ecach。

4,Spring Boot是怎麼樣的框架?掌握程度如何?

 

5,數據庫優化你是怎麼作的?

  1,數據庫語句優化:    

    1.查詢時,能不用*就不用,儘可能寫全字段名;
    2.鏈接時注意:小表 join 大表的原則;
    3.索引不是越多越好,每一個表控制在6個索引之內。範圍where條件的狀況下,索引不起做用,好比 where value <100;
    4.多用explain和profile分析查詢語句;
    5.有時候能夠1條大的sql分紅幾個小sql順序執行,速度會快不少;
    6.每隔一段時間用 alter table table_name engine = innodb,優化表。
    7.查看慢查詢的日誌,找出執行時間長的sql試着優化;
    8.大部分狀況鏈接效率大於子查詢,可是有例外。當你對鏈接的效率都感到不能接受的時候,能夠試試用子查詢,雖然大部分狀況下你會更失望,可是總有驚喜的時候;

  2,數據庫優化:

6,Redis在哪裏用到過,解決什麼樣的問題?

   在目中查詢功能是很是頻繁的,若是每次查詢都調用數據庫的話,會給數據庫形成很大的壓力,所以須要在用戶和數據庫之間加一層緩存,對於一樣的查詢,只查詢一遍數據庫,而後把數據保存到緩存當中,當其餘用戶再訪問一樣的頁面時即可以直接從緩存中去讀取數據,這樣查詢效率將會提高很是多,同時也會大大減輕數據庫的壓力
  通常採用的是集羣:
  Redis是在內存中保存數據的,而咱們的電腦通常內存都不大,這也就意味着Redis不適合存儲大數據,適合存儲大數據的是Hadoop生態系統的Hbase或者是MogoDB。Redis更適合處理高併發,一臺設備的存儲能力是頗有限的,可是多臺設備協同合做,就可讓內存增大不少倍,這就須要用到集羣。
注意:Redis集羣中至少應該有三個節點。要保證集羣的高可用,須要每一個節點有一個備份機。Redis集羣至少須要6臺服務器。

7,瞭解哪些數據庫系統?數據庫的分類?

  關係型數據庫:

  Oracle(商業,收費,甲骨文)【性能高】

  SQL Server(中型,.net經常使用,微軟)

  Mysql(小型,輕量,開源,免費,Sun)<MariaDB是MySQL數據庫的一個分支>

  Access(小型,與Office集成方便用於窗體和報表,我的,微軟)

  非關係型數據庫(NoSQL):

  Redis(Key-Value鍵值型數據庫,結構相似哈希表)

  HBase(列式存儲,三維有序存儲)

8,Linux經常使用命令,所瞭解的Linux系統有哪些?或者用過哪些?

  Ubuntu

  Redhat 紅帽

  Centos

9,分佈式架構是怎麼樣考慮的?

分佈式結構就是將一個完整的系統,按照業務功能,拆分紅一個個獨立的子系統,在分佈式結構中,每一個子系統就被稱爲「服務」。這些子系統可以獨立運行在web容器中,它們之間經過RPC方式通訊。

  就商城項目而言。按照微服務的思想,咱們須要按照功能模塊拆分紅多個獨立的服務,如:用戶服務、產品服務、訂單服務、後臺管理服務、數據分析服務等等。這一個個服務都是一個個獨立的項目,能夠獨立運行。若是服務之間有依賴關係,能夠經過RPC方式相互調用。

這樣的好處有不少:

 系統之間的耦合度大大下降,能夠獨立開發、獨立部署、獨立測試,系統與系統之間的邊界很是明確,排錯也變得至關容易,開發效率大大提高。

  1. 系統之間的耦合度下降,從而系統更易於擴展。咱們能夠針對性地擴展某些服務。假設這個商城要搞一次大促,下單量可能會大大提高,所以咱們能夠針對性地提高訂單系統、產品系統的節點數量,而對於後臺管理系統、數據分析系統而言,節點數量維持原有水平便可。
  2. 服務的複用性更高。好比,當咱們將用戶系統做爲單獨的服務後,該公司全部的產品均可以使用該系統做爲用戶系統,無需重複開發。

10,使用過服務器嗎?具體是作什麼的?什麼樣的配置?什麼系統?

使用過,第一次接觸還不是真正意義上的服務器,本身在虛擬機上架設了hostoj,使用花生殼和Nginx進行反向代理與域名解析,把本身的電腦映射出去,供你們訪問。後期遷移到學校的Windows Server服務器上,訪問地址:http://www.betterang.club/。以後作項目的時候,使用服務器進行項目發佈,在服務器上安裝假設:Zookeeper ,Dubbo,nginx,FastDFS,Redis,Solr/SolrCloud,ActiveMQ等

11,C/C++與Java的區別?還了解其餘語言嗎?用語言作過哪些?

1.內存分配

java中對內存的分配是動態的,JVM自動對內存進行掃描,對長期不用的空間做爲」垃圾」進行收集,使得系統資源獲得更充分地利用.按照這種機制,程序員沒必要關注內存管理問題,這使Java程序的編寫變得簡單明瞭,而且避免了了因爲內存管理方面的差錯而致使系統出問題.而C語言經過malloc()和free()這兩個庫函數來分別實現分配內在和釋放內存空間的,C++語言中則經過運算符new和delete來分配和釋放內存.

2.數據類型的長度

Java對每種數據類型都分配固定長度.Java對每種數據類型都分配固定長度.好比,在Java中,int類型老是32位的,而在C和C++中,對於不一樣的平臺,同一個數據類型分配不一樣的字節數,一樣是int類型,在PC機中爲二字節即16位,而在VAX-11中,則爲32位.這使得C語言形成不可移植性,而Java則具備跨平臺性(平臺無關性).

3.指針

編程者沒法找到指針來直接訪問內存,而且增添了自動的內存管理功能,從而有效地防止了c/c++語言中指針操做失誤,如野指針所形成的系統崩潰。但也不是說JAVA沒有指針,虛擬機內部仍是使用了指針,只是外人不得使用而已。這有利於Java程序的安全。

4.繼承  

c++支持多重繼承,這是c++的一個特徵,它容許多父類派生一個類。儘管多重繼承功能很強,但使用複雜,並且會引發許多麻煩,編譯程序實現它也很不容易。Java不支持多重繼承,但容許一個類繼承多個接口(extends+implement),實現了c++多重繼承的功能,又避免了c++中的多重繼承實現方式帶來的諸多不便。

5.數據類型及類 

Java是徹底面向對象的語言,全部函數和變量都必須是類的一部分。除了基本數據類型以外,其他的都做爲類對象,包括數組。對象將數據和方法結合起來,把它們封裝在類中,這樣每一個對象均可實現本身的特色和行爲。而c++容許將函數和變量定義爲全局的。

6.操做符重載 

Java不支持操做符重載。操做符重載被認爲是c++的突出特徵,在Java中雖然類大致上能夠實現這樣的功能,但操做符重載的方便性仍然丟失了很多。Java語言不支持操做符重載是爲了保持Java語言儘量簡單。

7.預處理功能 

Java不支持預處理功能。c/c++在編譯過程當中都有一個預編澤階段,即衆所周知的預處理器。預處理器爲開發人員提供了方便,但增長了編譯的複雜性。JAVA虛擬機沒有預處理器,但它提供的引入語句(import)與c++預處理器的功能相似。 

8.goto語句 

「可怕」的goto語句是c和c++的「遺物」,它是該語言技術上的合法部分,引用goto語句引發了程序結構的混亂,不易理解,goto語句子要用於無 條件轉移子程序和多結構分支技術。鑑於以廣理由,Java不提供goto語句,它雖然指定goto做爲關鍵字,但不支持它的使用,使程序簡潔易讀。 

9.異常

java中有異常機制用於捕獲異常,爲c++中沒有

12,經常使用的數據結構?

相關文章
相關標籤/搜索