第一篇:Ajax系列面試題總結(jié)
Ajax系列面試題總結(jié):
1、Ajax 是什么? 如何創(chuàng)建一個Ajax?
Ajax并不算是一種新的技術(shù),全稱是asychronous javascript and xml,可以說是已有技術(shù)的組合,主要用來實現(xiàn)客戶端與服務(wù)器端的異步通信效果,實現(xiàn)頁面的局部刷新,早期的瀏覽器并不能原生支持ajax,可以使用隱藏幀(iframe)方式變相實現(xiàn)異步效果,后來的瀏覽器提供了對ajax的原生支持
使用ajax原生方式發(fā)送請求主要通過XMLHttpRequest(標(biāo)準(zhǔn)瀏覽器)、ActiveXObject(IE瀏覽器)對象實現(xiàn)異步通信效果 基本步驟:
var xhr =null;//創(chuàng)建對象 if(window.XMLHttpRequest){ xhr = new XMLHttpRequest();}else{ xhr = new ActiveXObject(“Microsoft.XMLHTTP”);} xhr.open(“方式”,”地址”,”標(biāo)志位”);//初始化請求
xhr.setRequestHeader(“”,””);//設(shè)置http頭信息 xhr.onreadystatechange =function(){}//指定回調(diào)函數(shù) xhr.send();//發(fā)送請求
js框架(jQuery/EXTJS等)提供的ajax API對原生的ajax進行了封裝,熟悉了基礎(chǔ)理論,再學(xué)習(xí)別的框架就會得心應(yīng)手,好多都是換湯不換藥的內(nèi)容
2、同步和異步的區(qū)別? 同步:阻塞的
-張三叫李四去吃飯,李四一直忙得不停,張三一直等著,直到李四忙完兩個人一塊去吃飯 =瀏覽器向服務(wù)器請求數(shù)據(jù),服務(wù)器比較忙,瀏覽器一直等著(頁面白屏),直到服務(wù)器返回數(shù)據(jù),瀏覽器才能顯示頁面
異步:非阻塞的
-張三叫李四去吃飯,李四在忙,張三說了一聲然后自己就去吃飯了,李四忙完后自己去吃 =瀏覽器向服務(wù)器請求數(shù)據(jù),服務(wù)器比較忙,瀏覽器可以自如的干原來的事情(顯示頁面),服務(wù)器返回數(shù)據(jù)的時候通知瀏覽器一聲,瀏覽器把返回的數(shù)據(jù)再渲染到頁面,局部更新
3、如何解決跨域問題? 理解跨域的概念:協(xié)議、域名、端口都相同才同域,否則都是跨域
出于安全考慮,服務(wù)器不允許ajax跨域獲取數(shù)據(jù),但是可以跨域獲取文件內(nèi)容,所以基于這一點,可以動態(tài)創(chuàng)建script標(biāo)簽,使用標(biāo)簽的src屬性訪問js文件的形式獲取js腳本,并且這個js腳本中的內(nèi)容是函數(shù)調(diào)用,該函數(shù)調(diào)用的參數(shù)是服務(wù)器返回的數(shù)據(jù),為了獲取這里的參數(shù)數(shù)據(jù),需要事先在頁面中定義回調(diào)函數(shù),在回調(diào)函數(shù)中處理服務(wù)器返回的數(shù)據(jù),這就是解決跨域問題的主流解決方案
4、頁面編碼和被請求的資源編碼如果不一致如何處理?
對于ajax請求傳遞的參數(shù),如果是get請求方式,參數(shù)如果傳遞中文,在有些瀏覽器會亂碼,不同的瀏覽器對參數(shù)編碼的處理方式不同,所以對于get請求的參數(shù)需要使用
encodeURIComponent函數(shù)對參數(shù)進行編碼處理,后臺開發(fā)語言都有相應(yīng)的解碼api。對于post請求不需要進行編碼
5、簡述ajax 的過程。
1.創(chuàng)建XMLHttpRequest對象,也就是創(chuàng)建一個異步調(diào)用對象
2.創(chuàng)建一個新的HTTP請求,并指定該HTTP請求的方法、URL及驗證信息 3.設(shè)置響應(yīng)HTTP請求狀態(tài)變化的函數(shù) 4.發(fā)送HTTP請求
5.獲取異步調(diào)用返回的數(shù)據(jù)
6.使用JavaScript和DOM實現(xiàn)局部刷新
6、闡述一下異步加載。
1.異步加載的方案: 動態(tài)插入 script 標(biāo)簽 2.通過 ajax 去獲取 js 代碼,然后通過 eval 執(zhí)行 3.script 標(biāo)簽上添加 defer 或者 async 屬性 4.創(chuàng)建并插入 iframe,讓它異步執(zhí)行 js
7、請解釋一下 JavaScript 的同源策略。
同源策略是客戶端腳本(尤其是Javascript)的重要的安全度量標(biāo)準(zhǔn)。它最早出自Netscape Navigator2.0,其目的是防止某個文檔或腳本從多個不同源裝載。所謂同源指的是:協(xié)議,域名,端口相同,同源策略是一種安全協(xié)議,指一段腳本只能讀取來自同一來源的窗口和文檔的屬性。
8、GET和POST的區(qū)別,何時使用POST?
GET:一般用于信息獲取,使用URL傳遞參數(shù),對所發(fā)送信息的數(shù)量也有限制,一般在2000個字符,有的瀏覽器是8000個字符
POST:一般用于修改服務(wù)器上的資源,對所發(fā)送的信息沒有限制
在以下情況中,請使用 POST 請求:
1.無法使用緩存文件(更新服務(wù)器上的文件或數(shù)據(jù)庫)2.向服務(wù)器發(fā)送大量數(shù)據(jù)(POST 沒有數(shù)據(jù)量限制)
3.發(fā)送包含未知字符的用戶輸入時,POST 比 GET 更穩(wěn)定也更可靠
9、ajax 是什么?ajax 的交互模型?同步和異步的區(qū)別?如何解決跨域問題? 1.通過異步模式,提升了用戶體驗
2.優(yōu)化了瀏覽器和服務(wù)器之間的傳輸,減少不必要的數(shù)據(jù)往返,減少了帶寬占用 3.Ajax在客戶端運行,承擔(dān)了一部分本來由服務(wù)器承擔(dān)的工作,減少了大用戶量下的服務(wù)器負(fù)載。
10、Ajax的最大的特點是什么。
Ajax可以實現(xiàn)異步通信效果,實現(xiàn)頁面局部刷新,帶來更好的用戶體驗;按需獲取數(shù)據(jù),節(jié)約帶寬資源;
11、ajax的缺點
1、ajax不支持瀏覽器back按鈕。
2、安全問題 AJAX暴露了與服務(wù)器交互的細(xì)節(jié)。
3、對搜索引擎的支持比較弱。
4、破壞了程序的異常機制。
12、ajax請求的時候get 和post方式的區(qū)別
get一般用來進行查詢操作,url地址有長度限制,請求的參數(shù)都暴露在url地址當(dāng)中,如果傳遞中文參數(shù),需要自己進行編碼操作,安全性較低。
post請求方式主要用來提交數(shù)據(jù),沒有數(shù)據(jù)長度的限制,提交的數(shù)據(jù)內(nèi)容存在于http請求體中,數(shù)據(jù)不會暴漏在url地址中。
13、解釋jsonp的原理,以及為什么不是真正的ajax
Jsonp并不是一種數(shù)據(jù)格式,而json是一種數(shù)據(jù)格式,jsonp是用來解決跨域獲取數(shù)據(jù)的一種解決方案,具體是通過動態(tài)創(chuàng)建script標(biāo)簽,然后通過標(biāo)簽的src屬性獲取js文件中的js腳本,該腳本的內(nèi)容是一個函數(shù)調(diào)用,參數(shù)就是服務(wù)器返回的數(shù)據(jù),為了處理這些返回的數(shù)據(jù),需要事先在頁面定義好回調(diào)函數(shù),本質(zhì)上使用的并不是ajax技術(shù)
14、什么是Ajax和JSON,它們的優(yōu)缺點。
Ajax是全稱是asynchronous JavaScript andXML,即異步JavaScript和xml,用于在Web頁面中實現(xiàn)異步數(shù)據(jù)交互,實現(xiàn)頁面局部刷新。
優(yōu)點:可以使得頁面不重載全部內(nèi)容的情況下加載局部內(nèi)容,降低數(shù)據(jù)傳輸量,避免用戶不斷刷新或者跳轉(zhuǎn)頁面,提高用戶體驗
缺點:對搜索引擎不友好;要實現(xiàn)ajax下的前后退功能成本較大;可能造成請求數(shù)的增加跨域問題限制;
JSON是一種輕量級的數(shù)據(jù)交換格式,ECMA的一個子集
優(yōu)點:輕量級、易于人的閱讀和編寫,便于機器(JavaScript)解析,支持復(fù)合數(shù)據(jù)類型(數(shù)組、對象、字符串、數(shù)字)
15、http常見的狀態(tài)碼有那些?分別代表是什么意思?
200資源(網(wǎng)頁等)被永久轉(zhuǎn)移到其它URL 404內(nèi)部服務(wù)器錯誤
16、一個頁面從輸入 URL 到頁面加載顯示完成,這個過程中都發(fā)生了什么?
分為4個步驟:
1.當(dāng)發(fā)送一個 URL 請求時,不管這個 URL 是 Web 頁面的 URL 還是 Web 頁面上每個資源的 URL,瀏覽器都會開啟一個線程來處理這個請求,同時在遠(yuǎn)程 DNS 服務(wù)器上啟動一個 DNS 查詢。這能使瀏覽器獲得請求對應(yīng)的 IP 地址。
2.瀏覽器與遠(yuǎn)程 Web 服務(wù)器通過 TCP 三次握手協(xié)商來建立一個 TCP/IP 連接。該握手包括一個同步報文,一個同步-應(yīng)答報文和一個應(yīng)答報文,這三個報文在 瀏覽器和服務(wù)器之間傳遞。該握手首先由客戶端嘗試建立起通信,而后服務(wù)器應(yīng)答并接受客戶端的請求,最后由客戶端發(fā)出該請求已經(jīng)被接受的報文。
3.一旦 TCP/IP 連接建立,瀏覽器會通過該連接向遠(yuǎn)程服務(wù)器發(fā)送 HTTP 的 GET 請求。遠(yuǎn)程服務(wù)器找到資源并使用 HTTP 響應(yīng)返回該資源,值為 200 的 HTTP 響應(yīng)狀態(tài)表示一個正確的響應(yīng)。
4.此時,Web 服務(wù)器提供資源服務(wù),客戶端開始下載資源。
17、ajax請求的時候get 和post方式的區(qū)別
get一般用來進行查詢操作,url地址有長度限制,請求的參數(shù)都暴露在url地址當(dāng)中,如果傳遞中文參數(shù),需要自己進行編碼操作,安全性較低。
post請求方式主要用來提交數(shù)據(jù),沒有數(shù)據(jù)長度的限制,提交的數(shù)據(jù)內(nèi)容存在于http請求體中,數(shù)據(jù)不會暴漏在url地址中。
18、ajax請求時,如何解釋json數(shù)據(jù)
使用eval()或者JSON.parse()鑒于安全性考慮,推薦使用JSON.parse()更靠譜,對數(shù)據(jù)的安全性更好。
第二篇:面試題總結(jié)
SSH面試題總結(jié)
題目1:Hibernate工作原理及為什么要用?
原理:
hibernate,通過對jdbc進行封裝,對 java類和 關(guān)系數(shù)據(jù)庫進行mapping,實現(xiàn)了對關(guān)系數(shù)據(jù)庫的面向?qū)ο蠓绞降牟僮?,改變了傳統(tǒng)的jdbc + sql操作數(shù)據(jù)的方式,從而使開發(fā)人員可以話更多精力進行對象方面的開發(fā)
1.讀取并解析配置文件
2.讀取并解析映射信息,創(chuàng)建SessionFactory 3.打開Sesssion 4.創(chuàng)建事務(wù)Transation 5.持久化操作 6.提交事務(wù) 7.關(guān)閉Session 8.關(guān)閉SesstionFactory 為什么要用:
1.對JDBC訪問數(shù)據(jù)庫的代碼做了封裝,大大簡化了數(shù)據(jù)訪問層繁瑣的重復(fù)性代碼。
2.Hibernate是一個基于JDBC的主流持久化框架,是一個優(yōu)秀的ORM實現(xiàn)。他很大程度的簡化DAO層的編碼工作
3.hibernate的性能非常好,因為它是個輕量級框架。映射的靈活性很出色。它支持各種關(guān)系數(shù)據(jù)庫,從一對一到多對多的各種復(fù)雜關(guān)系。
題目2: 什么是Hibernate延遲加載
延遲加載機制是為了避免一些無謂的性能開銷而提出來的,所謂延遲加載就是當(dāng)在真正需要數(shù)據(jù)的時候,才真正執(zhí)行數(shù)據(jù)加載操作。在Hibernate中提供了對實體對象的延遲加載以及對集合的延遲加載,另外在Hibernate3中還提供了對屬性的延遲加載。
題目3:Hibernate中類之間的關(guān)聯(lián)關(guān)系有幾種(如:一對多、多對多的關(guān)系)
many-to-one、one-to-many、many-to-many、one-to-one
題目4: 說下Hibernate的緩存機制
一、hibernate一級緩存
(1)hibernate支持兩個級別的緩存,默認(rèn)只支持一級緩存;(2)每個Session內(nèi)部自帶一個一級緩存;
(3)某個Session被關(guān)閉時,其對應(yīng)的一級緩存自動清除;
二、hibernate二級緩存
(1)二級緩存獨立于session,默認(rèn)不開啟; 題目5: Hibernate的查詢方式 本地SQL查詢、Criteria、Hql
題目6: 如何優(yōu)化Hibernate? 1.使用雙向一對多關(guān)聯(lián),不使用單向一對多 2.不用一對一,用多對一取代 3.配置對象緩存,不使用集合緩存
題目7: Struts工作機制?為什么要使用Struts? 工作機制:
Struts的工作流程: 在web應(yīng)用啟動時就會加載初始化ActionServlet,ActionServlet從 struts-config.xml文件中讀取配置信息,把它們存放到各種配置對象 當(dāng)ActionServlet接收到一個客戶請求時,將執(zhí)行如下流程.-(1)檢索和用戶請求匹配的ActionMapping實例,如果不存在就返回請求路徑無效信息;-(2)如果ActionForm實例不存在,就創(chuàng)建一個ActionForm對象,把客戶提交的表單數(shù)據(jù)保存到ActionForm對象中;-(3)根據(jù)配置信息決定是否需要表單驗證.如果需要驗證,就調(diào)用ActionForm的validate()方法;-(4)如果ActionForm的validate()方法返回null或返回一個不包含ActionMessage的ActuibErrors對象, 就表示表單驗證成功;-(5)ActionServlet根據(jù)ActionMapping所包含的映射信息決定將請求轉(zhuǎn)發(fā)給哪個Action,如果相應(yīng)的 Action實例不存在,就先創(chuàng)建這個實例,然后調(diào)用Action的execute()方法;-(6)Action的execute()方法返回一個ActionForward對象,ActionServlet在把客戶請求轉(zhuǎn)發(fā)給 ActionForward對象指向的JSP組件;-(7)ActionForward對象指向JSP組件生成動態(tài)網(wǎng)頁,返回給客戶;
為什么要用:
1.JSP、Servlet、JavaBean技術(shù)的出現(xiàn)給我們構(gòu)建強大的企業(yè)應(yīng)用系統(tǒng)提供了可能。但用這些技術(shù)構(gòu)建的系統(tǒng)非常的繁亂。2.基于Struts開發(fā)的應(yīng)用: 不用再考慮公共問題 專心在業(yè)務(wù)實現(xiàn)上
結(jié)構(gòu)統(tǒng)一,易于學(xué)習(xí)、維護 新手也可寫出好程序
題目10:為什么要用spring Spring是一個輕量級的IOC和AOP框架。
IOC(控制反轉(zhuǎn))意味著將你設(shè)計好的類交給系統(tǒng)去控制,而不是在你的類內(nèi)部控制。這稱為控制反轉(zhuǎn)
AOP(面向切面),它將那些影響多個類的行為封裝到可重用的模塊中,面向?qū)ο笫前褑栴}從同類事物中抽象出來,面向切面是把問題從不同類問題中抽象出來。
1.hibernate中g(shù)et()與load()區(qū)別
請注意如果沒有匹配的數(shù)據(jù)庫記錄,load()方法可能拋出無法恢復(fù)的異常(unrecoverable exception)。如果類的映射使用了代理(proxy),load()方法會返回一個未初始化的代理,直到你調(diào)用該代理的某方法時才會去訪問數(shù)據(jù)庫。若你希望在某對象中創(chuàng)建一個指向另一個對象的關(guān)聯(lián),又不想在從數(shù)據(jù)庫中裝載該對象時同時裝載相關(guān)聯(lián)的那個對象,那么這種操作方式就用得上的了。如果為相應(yīng)類映射關(guān)系設(shè)置了batch-size,那么使用這種操作方式允許多個對象被一批裝載(因為返回的是代理,無需從數(shù)據(jù)庫中抓取所有對象的數(shù)據(jù))。如果你不確定是否有匹配的行存在,應(yīng)該使用get()方法,它會立刻訪問數(shù)據(jù)庫,如果沒有對應(yīng)的行,會返回null。
17.[Hibernate題目]判斷題:使用save/persist一個對象時,便立即向數(shù)據(jù)庫發(fā)送執(zhí)行insert sql語句?
1)persist把一個瞬態(tài)的實例持久化,但是并“不保證”標(biāo)識符被立刻填入到持久化實例中,標(biāo)識符的填入可能被推遲到flush的時間。
2)persist“保證”當(dāng)它在一個transaction外部被調(diào)用的時候并不觸發(fā)一個Sql Insert,這個功能是很有用的。
3)save會立即執(zhí)行Sql insert,不管是不是在transaction內(nèi)部還是外部.18.[Hibernate題目]:指出一下代碼哪里錯誤使用了Hibernate。
背景簡介:Board是一個實體類,id是它的主鍵,name和description是他的兩個屬性。BoardDao是Board實體的數(shù)據(jù)訪問對象,BoardBo是業(yè)務(wù)對象,用戶提交變更Board對象的請求,由Struts的BoardAction接收,調(diào)用BoardBo處理。HibernateUtil.currentSession()用于返回當(dāng)前請求的Session對象。//數(shù)據(jù)訪問層代碼:BoardDao.java
publicBoardloadBoard(Longid){
Sessionsession=HibernateUtil.currentSession();
returnsession.load(Board.class,id);
}
publicvoidupdateBoard(Boardboard){
Sessionsession=HibernateUtil.currentSession();
session.update(board);
}
//業(yè)務(wù)對象層代碼:BoardBo.java
privateBoardDaoboardDao;
publicvoidupdateBoard(Longid,Stringname,Stringdescription){
Boardboard=boardDao.loadBoard(id);
board.setName(name);
board.setDescription(description);
boardDao.updateBoard(board);
}
//Web控制器代碼:BoardAction.java
privateBoardBoBoardBo;
publicActionForwardexecute(ActionMappingmapping,ActionFormform, HttpServletRequestrequest,HttpServletResponseresponse)throwsException{
Stringid=request.getParameter(“id”);
Stringname=request.getParameter(“name”);
Stringdescription=request.getParameter(“description”);
boardBo.updateBoard(id,name,description);
returnmapping.findForward(“update-success”);
}
6.public void updateBoard(Board board){ 7.Session session = HibernateUtil.currentSession();Transaction t=session.beginTransaction();8.session.update(board);t.commit();9.}
簡單敘述一下Spring中BeanFactory與ApplicationContext的差別 使用BeanFactory從xml配置文件加載bean: importorg.springframework.beans.factory.xml.XmlBeanFactory;importorg.springframework.core.io.FileSystemResource;
publicclassXmlConfigWithBeanFactory{
publicstaticvoidmain(String[]args){ XmlBeanFactoryfactory=newXmlBeanFactory(newFileSystemResource(“build/beans.xml”));} } 使用ApplicationConText從xml配置文件加載bean: publicclassXmlConfigWithApplication{
publicstaticvoidmain(String[]args){ ApplicationContextapplication=newClassPathXmlApplicationContext(beans.xml“));application.getBean(”BeanName“);} } 簡而言之,BeanFactory提供了配置框架和基本的功能,而 ApplicationContext為它增加了更強的功能,這些功能中的一些或許更加接近J2EE并且圍繞企業(yè)級應(yīng)用。一般來說,ApplicationContext是 BeanFactory的完全超集,任何BeanFactory功能和行為的描述也同樣被認(rèn)為適用于ApplicationContext 相對于BeanFactory而言,ApplicationContext 提供了以下擴展功能.(a)國際化支持(b)資源訪問
(c)事件傳播(d)多實例加載
2.寫一段程序,使用springAPI讀取classpath下的一個xml文件,并解析(1)Resource resource=new ClassPathResource(”appcontext.xml“);BeanFactory factory=new XmlBeanFactory(resource);
(2)ClassPathXmlApplicationContext appcontext=new ClassPathXmlApplicationContext(”appcontext.xml“);BeanFactory factory=(BeanFactory)appcontext;
4.說說在hibernate中使用Integer做映射和使用int做映射之間有什么差別 Integer code和int code;的區(qū)別: Integer是對象.code = null;對象可以為空.int 是普通類型, 不可能 = null.根據(jù)你的數(shù)據(jù)庫code是可以空的, 故應(yīng)該映射成Integer.你沒理由hbm.xml里寫Integer, 類里卻寫int
(1)使用Spring如何簡化了Hibernate編碼?
通過org.springframework.orm.hibernate3.support.HibernateDaoSupport類支持?jǐn)?shù)據(jù)庫操作,且封裝了事務(wù).public class AccountDAO extends HibernateDaoSupport implements IAccountDAO{
(2)Spring如何與Struts集成?
(3)如何使用Spring2.0實現(xiàn)聲明式事務(wù)?
(4)依賴注入的好處是? 程序可擴展性更強;利于并行開發(fā);
(5)Spring怎么實現(xiàn)依賴注入?
(6)“面向方面編程”的好處是? 將程序中涉及的公共問題集中解決
(7)和SQL相比,HQL有哪些特點?
HQL是面向?qū)ο蟮牟樵冋Z言。select Fw表示查詢Fw對象
(8)如何配置單向多對一關(guān)聯(lián)?
(9)如何配置單向一對多關(guān)聯(lián)?
(10)如何配置雙向一對多關(guān)聯(lián)?
第三篇:公務(wù)員面試題(總結(jié))
(1)政策理解型。比如,“如何理解科學(xué)發(fā)展觀?”“如何理解和諧社會?”“談?wù)勀銓σ匀藶楸镜恼J(rèn)識”等。這類問題與國家大政方針有關(guān),要考生對國家大政方針熟知并能結(jié)合報考職位流利地表達(dá)。(2)名言警句型。例如:“有人說失敗是失敗之母,也有人說失敗是成功之母,你如何理解,為什么?”這類問題首先要正確詮釋名言警句的含義,然后說明這句話在現(xiàn)實生活中的意義,再聯(lián)系職位情況,說明對公務(wù)員工作的指導(dǎo)意義。
[HTH]答題步驟[HT]
第一步:解題??梢詮念}干中的關(guān)鍵詞開始解釋,也可以從整體上理解句義。 第二步:理論分析。
第三步:聯(lián)系公務(wù)員工作實際。
綜合分析能力,其實是綜合和分析兩個部分,綜合是指考生在面對一個問題的時候,分析、表達(dá)能不能涉及到事務(wù)的各個部分或者各個特征,從而將這些每一個局部聯(lián)合成整體。而分析相對與綜合來說一個更加細(xì)節(jié)的問題,比如說,某一件事情的影響,我們能想到有利和不利的兩個方面。這就是綜合前面的把握,而分析,就是要求我們將每一個層面進行更加細(xì)致的理解。如果是有利的一方面,有哪一些,不利的又有哪一些。
衡量綜合分析能力有下面三個標(biāo)準(zhǔn):1是否能對事物進行宏觀方面的總體思考;2能否對事物進行微觀的各個組成部分的思考;3能夠?qū)⒄w和局部,不同的局部之間進行有效聯(lián)系。
一、答題要點
此類題型這類題目信息量大,可分為有標(biāo)題的和無標(biāo)題的兩大類。解答這類題目需要我們要有極強的觀察歸納能力。應(yīng)掌握以下幾個原則:
1首先考生要領(lǐng)會故事,寓言或者漫畫所蘊含的意思,要先點題,并用語言將其表達(dá)出來。 2后面的步驟和普通的綜合分析題型差別不大,要分析問題并提出對策(可同時進行)。 3考生要注重聯(lián)系故事,寓言和漫畫中的實際內(nèi)容。
[BT2]
二、答題套路
[BT3](一)可得出具體寓意的漫畫
帽子:這是一幅非常有趣的漫畫,但是其反映出來的道理卻是非常深刻的,對此我有以下幾點看法。 首先:闡釋漫畫的具體含義,什么代表什么,什么代表什么,整個漫畫的含義是什么 其次:在生活中舉具體的例子說明這個道理
第三:這個道理對于我們的生活和工作具有很大的借鑒意義,那就是?。 鞋子:從這幅簡單的漫畫中可以得出如此深刻的道理, [BT3]
(二)一時得不出寓意的漫畫
帽子:這是一幅非常有趣的漫畫,可以從多個角度去理解這幅漫畫,對此,我有以下幾點看法。 首先:這幅漫畫畫的是**,其可以想象成**,也就是** 其次:還可以從另一個角度去思考這幅漫畫,那就是***
第三:這些道理對我們平時的生活和工作有很大的啟迪意義。
鞋子:總而言之,強調(diào)你最后認(rèn)為比較好的那個含義和它的現(xiàn)實意義。
故事、寓言、漫畫等題近些年在公務(wù)員考試中出現(xiàn)的頻率越來越高。此類的綜合分析與別的題目的差別就是它們并沒有采用直接的語言將意思表達(dá)出來。如漫畫,我們都將之成為會說話的圖畫。一副漫畫中有很多細(xì)節(jié),反映了一個或者幾個深刻的社會問題,需要考生首先將這些材料進行加工,領(lǐng)會到其中的意思,然后再進行回答。
漫畫的表達(dá)往往是非常簡潔而寓意深刻的,我們要善于借助畫面提供的要素,充分想像作者省略的內(nèi)容,要使靜止的畫面動起來,要使單調(diào)的畫面充實起來,比如讓人物或動物說話,開展心理活動,使景物具有色彩,使環(huán)境具有象征意味。要實現(xiàn)合理的想像,必須明確作者采取了哪些表現(xiàn)手法。我們知道,漫畫常見的表現(xiàn)手法有對比、比擬、夸張等,將抽象的道理借助生活中常見的形象加以表現(xiàn)。
如下圖,大家了解這副漫畫說的是未成年人進入網(wǎng)吧。幾個任務(wù)關(guān)系分別問小孩,網(wǎng)吧老板,和老人,通過這些信息考生就能繼承用語言表述了。而故事、寓言也是一樣,考生要將故事和寓言所蘊含的事故,或者它們所反映的問題用語言表達(dá)出來。故事,寓言和漫畫甚至比一般的綜合分析題更加輕易,因為在材料中往往有很多信息是能直接被考生利用起來了。只是需要考生在審題的時候更加細(xì)致。 〖TPt1.tif,BP#〗
盡管我國多次開展有聲勢、有力度的網(wǎng)吧專項整治,網(wǎng)吧管理逐步規(guī)范,但是許多網(wǎng)吧仍在接納未成年人,城市未成年人泡網(wǎng)吧現(xiàn)象依然嚴(yán)重。為限制未成年人進入網(wǎng)吧,國家有關(guān)部委再次發(fā)出禁令,從2005年12月16日起,網(wǎng)吧服務(wù)營業(yè)場所必須使用實名登記卡。但是,在北京、天津的一些網(wǎng)吧門前,雖然都掛著文化部門統(tǒng)一制作的“嚴(yán)禁未成年人入內(nèi)”的牌子,但仍有背著書包、穿著學(xué)生服裝的學(xué)生自由出入網(wǎng)吧
第四篇:SSH總結(jié)面試題
張國良編輯
SSH面試題
版本1.0
1.struts1與struts2的區(qū)別 :
1、兩者之間目前只有名字是一樣的。
2、struts1是通過繼承來實現(xiàn)相關(guān)機制的。而struts2是通過接口方式來實現(xiàn)的。
3、在struts2中沒有了ActionForm使用Action來代替原來struts1中的ActionForm和Action兩者的功能。
4、Struts2比Struts1更加容易進行單元測試
5、線程安全
2.hibernate與iBATIS的區(qū)別
hibernate和ibatis都是持久層的ORM框架,hibernate是全自動化的,而ibatis是半自動化的。
為什么這樣說呢?因為hibernate把我們要用到的增、刪、改的SQL語句都封裝了,我們不需要再自己手動寫,直接調(diào)用即可,所以稱它全自動。而對于ibatis,所有的SQL語句都要我們自己來手寫,所以稱它為半自動化的框架,就等于是一個O/R Mapping 解決方案.有了這框架,只要配置下映射文件,就不需要手寫sql語句了.Hibernate是全自動化的,可以說O/R做的相當(dāng)全面了.iBateis和Hibernate相比,iBatis最大的特點就是小巧,上手很快。如果你不需要太多復(fù)雜的功能,iBatis是能滿足你的要求又足 夠靈活的最簡單的解決方案
3、hibernate的優(yōu)化(項目)
1.使用雙向一對多關(guān)聯(lián),不使用單向一對多
2.靈活使用單向一對多關(guān)聯(lián)
3.不用一對一,用多對一取代
4.配置對象緩存,不使用集合緩存
5.一對多集合使用Bag,多對多集合使用Set
6.繼承類使用顯式多態(tài)
7.表字段要少,表關(guān)聯(lián)不要怕多,有二級緩存撐腰
4、hibernate中session與sessionfactory的聯(lián)系,分別什么時候用
sessionFactory、session都是由hibernate框架生成的,其中sessionFactory包括了數(shù)據(jù)庫配置和映射關(guān)系等資源,一個項目中只能生成一個sessionFactory實例。因此sessionFactory被設(shè)計成線程安全的。session是對對象進行操作并映射至對應(yīng)的數(shù)據(jù)庫表中的,它由sessionFactory生成,不支持多線程并發(fā),因此它是非線程安全的。
5、hibernate中g(shù)et和load的區(qū)別
1、它們都用來根據(jù)主鍵,查找相應(yīng)的記錄
2、load和get方法對緩存的應(yīng)用不同,其中l(wèi)oad和get都可以使用session層的緩存,但是對于load可以應(yīng)用二級緩存,而get無法使用
拋異常Null
張國良編輯
注意:criteria也是綁定session的,即隨著session的產(chǎn)生而產(chǎn)生,隨著session的消亡而消亡。如果想重用criteria對象,必須使用DetechedCriteria對象,實現(xiàn)criteria和session進行分離。
7、在項目中用hibernateORM框架與傳統(tǒng)jdbc比較有什么優(yōu)點
延遲加載:
延遲加載機制是為了避免一些無謂的性能開銷而提出來的,所謂延遲加載就是當(dāng)在真正需要數(shù)據(jù)的時候,才真正執(zhí)行數(shù)據(jù)加載操作。在Hibernate中提供了對實體對象的延遲加載以及對集合的延遲加載,另外在Hibernate3中還提供了對屬性的延遲加載。
hibernate中l(wèi)azy的使用
hibernate中l(wèi)azy的使用(2008-09-12 13:57:47)
標(biāo)簽:雜談分類:hibernate
hibernate中l(wèi)azy的使用
lazy,延遲加載
Lazy的有效期:只有在session打開的時候才有效;session關(guān)閉后lazy就沒效了。
lazy策略可以用在:
*
*
標(biāo)簽上,可以取值true/false,這個特性需要類增強
* 等集合上,可以取值為true/false/extra
*
一、概念:即兩者之間存在關(guān)聯(lián)關(guān)系,那么在加載主對象的時候,對副對象的加載處理,是延遲或立即,比如說公司(主)-》部門(副).二、分析
1.立即檢索
實現(xiàn)方法:將
a.在業(yè)務(wù)或程序中,需要立即訪問關(guān)聯(lián)對象時可以使用.b.使用二級緩存.2.延遲檢索
實現(xiàn)方法:將
a.一對多或多對多的關(guān)聯(lián)使用.b.在程序中不需要立即訪問或者該關(guān)聯(lián)的對象不需要訪問的時候.什么時候用延遲加載
例如:銀行開戶,一個人可以開多個帳戶,一個帳戶只能屬于一個人,所以在用戶類里包含一個帳戶的集合,帳戶類里包含一個用戶類型,他們之間是一對多的關(guān)系.如過你在查詢的時候,通過用戶查詢是,如果只想查到用戶就用(hibernate)默認(rèn)的延遲加載,這樣效率也高,如果你想把該用戶的的所有帳戶都一同查出來,那就需要立即加載了,這樣一來如果一個用戶對應(yīng)的帳戶比較多的話,他的效率是很低的.設(shè)置加載方式一般有兩種,一種是通過映射文件(lazy=false),另一種是通過程序的方式來實現(xiàn)的也很簡單.Struts2工作流程:
Struts2:
(1)客戶端提交一個HttpServletRequest請求(.action或JSP頁面)。
(2)請求被提交到一系列Filter過濾器,如ActionCleanUp和FilterDispatcher等。
(3)FilterDispatcher是Struts2控制器的核心,它通常是過濾器鏈中的最后一個過濾器。
(4)請求發(fā)到FilterDispatcher后,FilterDispatcher詢問ActionMapper是否需要調(diào)用某個Action來處理這個Request(一般根據(jù)URL后綴是否為.action來判斷)。
(5)如果ActionMapper決定需要調(diào)用某個Action,FilterDispatcher則把請求交到ActioProxy,由其進行處理。
(6)ActionProxy通過Configuration Manager(它會訪問struts.xml)詢問框架的配置文件,找到需要調(diào)用的Action類。
(7)ActionProxy創(chuàng)建一個ActionInvocation實例,而ActionInvocation通過代理模式調(diào)用Action,(在調(diào)用之前會根據(jù)配置文
第五篇:Unity3d面試題總結(jié)
本人總結(jié)的一些Unity3d高頻面試題目,希望可以幫助到大家。限于個人水平有限,只附上一些參考答案。
======================================= 數(shù)據(jù)結(jié)構(gòu)和算法很重要,圖形學(xué)也很重要!大的游戲公司很看重個人基礎(chǔ)、綜合能力; 小公司看你實際工作能力,看你的Demo。
高頻問答的問題: 一.什么是渲染管道?
是指在顯示器上為了顯示出圖像而經(jīng)過的一系列必要操作。渲染管道中的很多步驟,都要將幾何物體從一個坐標(biāo)系中變換到另一個坐標(biāo)系中去。主要步驟有:
本地坐標(biāo)->視圖坐標(biāo)->背面裁剪->光照->裁剪->投影->視圖變換->光柵化。
二.如何優(yōu)化內(nèi)存? 有很多種方式,例如 1.壓縮自帶類庫;
2.將暫時不用的以后還需要使用的物體隱藏起來而不是直接Destroy掉;
3.釋放AssetBundle占用的資源; 4.降低模型的片面數(shù),降低模型的骨骼數(shù)量,降低貼圖的大??; 5.使用光照貼圖,使用多層次細(xì)節(jié)(LOD),使用著色器(Shader),使用預(yù)設(shè)(Prefab)。
三、動態(tài)加載資源的方式?(有時候也問區(qū)別,具體請百度)1.Resources.Load();2.AssetBundle
四、什么是協(xié)同程序?
在主線程運行時同時開啟另一段邏輯處理,來協(xié)助當(dāng)前程序的執(zhí)行。換句話說,開啟協(xié)程就是開啟一個線程。可以用來控制運動、序列以及對象的行為。
五、你用過哪些插件?
(最好多熟悉幾個插件,問的時候好回答)====== 1.使用Unity3d實現(xiàn)2d游戲,有幾種方式? 1.使用本身的GUI;
2.把攝像機的Projection(投影)值調(diào)為Orthographic(正交投影),不考慮z軸;
3.使用2d插件,如:2DToolKit;
2.Unity3d中的碰撞器和觸發(fā)器的區(qū)別?
碰撞器有碰撞的效果,IsTrigger=false,可以調(diào)用OnCollisionEnter/Stay/Exit函數(shù);
觸發(fā)器沒有碰撞效果,IsTrigger=true,可以調(diào)用OnTriggerEnter/Stay/Exit函數(shù)。
3.物體發(fā)生碰撞的必要條件
兩個物體都必須帶有碰撞器(Collider),其中一個物體還必須帶有Rigidbody剛體。
4.CharacterController和Rigidbody的區(qū)別?
CharacterController自帶膠囊碰撞器,里面包含有剛體的屬性; Rigidbody就是剛體,使物體帶有剛體的特征。
5.在物體發(fā)生碰撞的整個過程中,有幾個階段,分別列出對應(yīng)的函數(shù) 三個階段
1.OnCollisionEnter 2.OnCollisionStay 3.OnCollisionExit
6.Unity3d的物理引擎中,有幾種施加力的方式,分別描述出來 rigidbody.AddForce/AddForceAtPosition,都在rigidbody系列函數(shù)中。7.什么叫做鏈條關(guān)節(jié)?
Hinge Joint,可以模擬兩個物體間用一根鏈條連接在一起的情況,能保持兩個物體在一個固定距離內(nèi)部相互移動而不產(chǎn)生作用力,但是達(dá)到固定距離后就會產(chǎn)生拉力。
8.物體自身旋轉(zhuǎn)使用的函數(shù)? Transform.Rotate()
9.物體圍繞某點旋轉(zhuǎn)使用的函數(shù)? Transform.RotateAround()
10.Unity3d提供了一個用于保存和讀取數(shù)據(jù)的類(PlayerPrefs),請列出保存和讀取整形數(shù)據(jù)的函數(shù) PlayerPrefs.SetInt()
11.Unity3d提供了幾種光源類型,分別是哪幾種? 四種。
平行光:Directional Light 聚光燈:Spot Light
12.Unity3d腳本從喚醒到銷毀有著一套比較完整的生命周期,請列出系統(tǒng)自帶的幾個重要的方法。
點光源:Point Light 區(qū)域光源:Area Light
PlayerPrefs.GetInt()Awake——>Start——>Update——>FixedUpdate——>LateUpdate——>OnGUI——>Reset——>OnDisable——>OnDestroy
13.物理更新一般放在哪個系統(tǒng)函數(shù)里?
FixedUpdate,每固定幀繪制時執(zhí)行一次,和Update不同的是FixedUpdate是渲染幀執(zhí)行,如果你的渲染效率低下的時候FixedUpdate調(diào)用次數(shù)就會跟著下降。FixedUpdate比較適用于物理引擎的計算,因為是跟每幀渲染有關(guān)。Update就比較適合做控制。
14.移動攝像機的動作放在哪個系統(tǒng)函數(shù)中,為什么放在這個函數(shù)中?
LateUpdate,在每幀執(zhí)行完畢調(diào)用,它是在所有Update結(jié)束后才調(diào),比較適合用于命令腳本的執(zhí)行。官網(wǎng)上例子是攝像機的跟隨,都是在所有Update操作完才跟進攝像機,不然就有可能出現(xiàn)攝像機已經(jīng)推進了,但是視角里還未有角色的空幀出現(xiàn)。
15.當(dāng)游戲中需要頻繁創(chuàng)建一個物體時,我們需要怎樣做能夠節(jié)省內(nèi)存?
使用預(yù)制物體對象Prefab,然后復(fù)制創(chuàng)建。
16.在場景中放置多個Camera并同時處于活動狀態(tài)會發(fā)生什么? 游戲界面可以看到很多攝像機的混合。
17.請描述Prefab的作用,并描述如何在移動設(shè)備的環(huán)境下恰當(dāng)?shù)氖褂盟?/p>
Prefab在實例化的時候用到,主要用于經(jīng)常會用到的物體,屬性方便修改。
18.如何銷毀一個UnityEngine.Object及其子類? 使用Destroy()方法;
19.請簡述Unity3d下如何安全的在不同工程間遷移asset數(shù)據(jù),請列舉出三種方法?
1.可以把assets目錄和Library目錄一起遷移 2.導(dǎo)出包
3.用Unity帶的assets Server功能
20.請描述游戲動畫有哪幾種,以及其原理?
主要有關(guān)節(jié)動畫、骨骼動畫、單一網(wǎng)格模型動畫(關(guān)鍵幀動畫)。關(guān)節(jié)動畫:把角色分成若干獨立部分,一個部分對應(yīng)一個網(wǎng)格模型,部分的動畫連接成一個整體的動畫,角色比較靈活,Quake2中使用這種動畫;
骨骼動畫,廣泛應(yīng)用的動畫方式,集成了以上兩個方式的優(yōu)點,骨骼按角色特點組成一定的層次結(jié)構(gòu),有關(guān)節(jié)相連,可做相對運動,皮膚作為單一網(wǎng)格蒙在骨骼之外,決定角色的外觀;
單一網(wǎng)格模型動畫由一個完整的網(wǎng)格模型構(gòu)成,在動畫序列的關(guān)鍵幀里記錄各個頂點的原位置及其改變量,然后插值運算實現(xiàn)動畫效果,角色動畫較真實。
21.請描述為什么Unity3d中會發(fā)生在組件上出現(xiàn)數(shù)據(jù)丟失的情況 一般是組件上綁定的物體對象被刪除了
22.alpha blend工作原理
Alpha Blend 實現(xiàn)透明效果,不過只能針對某塊區(qū)域進行alpha操作,透明度可設(shè)。
23.寫出光照計算中的diffuse的計算公式
diffuse = Kd x colorLight x max(N*L,0);Kd 漫反射系數(shù)、colorLight 光的顏色、N 單位法線向量、L 由點指向光源的單位向量、其中N與L點乘,如果結(jié)果小于等于0,則漫反射為0。
24.Lod是什么,優(yōu)缺點是什么?
LOD(Level of detail)多層次細(xì)節(jié),是最常用的游戲優(yōu)化技術(shù)。它按照模型的位置和重要程度決定物體渲染的資源分配,降低非重要物體的面數(shù)和細(xì)節(jié)度,從而獲得高效率的渲染運算。
25.兩種陰影判斷的方法、工作原理。
26.Vertex Shader是什么,怎么計算? 頂點著色器
27.MipMap是什么,作用?
MipMapping:在三維計算機圖形的貼圖渲染中有常用的技術(shù),為加快渲染進度和減少圖像鋸齒,貼圖被處理成由一系列被預(yù)先計算和優(yōu)化過的圖片組成的文件,這樣的貼圖被稱為MipMap。
28.機試:二選一
1.用代碼實現(xiàn)第三角色控制器 2.實現(xiàn)吊機吊物體的功能
29.反向旋轉(zhuǎn)動畫的方法是什么?
30.碰撞檢測需要物體具備什么屬性?
31.獲取、增加、刪除組件的命令分別是什么? 獲取:GetComponent 增加:AddComponent 刪除:Destroy
32.Animation.CrossFade命令作用是:(C)A.動畫放大 B.動畫轉(zhuǎn)換 C.動畫的淡入為其他動畫
33.Application.loadLevel命令為:(A)A.加載關(guān)卡 B.異步加載關(guān)卡 C.加載動作
34.調(diào)試記錄到控制臺的命令是什么? Debug.Log();
35.編輯器類存放路徑是什么?
工程目錄下的Assets/Editor文件夾下。
36.使用原生GUI創(chuàng)建一個可以拖動的窗口命令是什么? GUI.DragWindow();
37.localPosition與Position的使用區(qū)別?
localPosition:自身位置,相對于父級的變換的位置。Position:在世界坐標(biāo)transform的位置
38.意義連線 Mathf.Round Mathf.Clamp Mathf.Lerp
插值 四舍五入 限制
39.寫一個計時器工具,從整點開始計時,格式為:00:00:00
40.寫出Animation的五個方法
41.怎么拿到一個對象上腳本的方法 GameObject.GetComponent<>();
42.上機題:用鼠標(biāo)實現(xiàn)在場景中拖動物體,用鼠標(biāo)滾輪實現(xiàn)縮放(用一個Cube即可)。
43.請簡述向量的點乘,向量的叉乘以及向量歸一化的幾何意義? 點乘的幾何意義是:計算兩個向量之間的夾角,以及在某一方向上的投影;
叉乘的幾何意義是:創(chuàng)建垂直于平面,三角形,或者多邊形的向量;
參
考
:http://blog.sina.com.cn/s/blog_9283b6f601017hfw.html