A. Java基礎面試題都有哪些
一般面試官都會讓面試者回答哪些Java基礎面試題啊?難不難啊? 針對這一系列的疑問,廣州增城Java培訓學校收集了部分Java基礎面試題與大家分享,希望對各位參加了廣州專業Java培訓的學生,有一定的幫助! 一、Java基礎知識 1.Java有那些基本數據類型,String是不是基本數據類型,他們有何區別。 2.字元串的操作: 寫一個方法,實現字元串的反轉,如:輸入abc,輸出cba 寫一個方法,實現字元串的替換,如:輸入bbbwlirbbb,輸出bbbhhtccc。 3.數據類型之間的轉換 如何將數值型字元轉換為數字(Integer,Double) 如何將數字轉換為字元 如何取小數點前兩位,並四捨五入。 4.日期和時間 如何取得年月日,小時分秒 如何取得從1970年到現在的毫秒數 如何獲取某個日期是當月的最後一天 如何格式化日期 5.數組和集合 6.文件和目錄(I/O)操作 如何列出某個目錄下的所有文件 如何列出某個目錄下的所有子目錄 判斷一個文件或目錄是否存在 如何讀寫文件 7.Java多態的實現(繼承、重載、覆蓋) 8.編碼轉換,怎樣實現將GB2312編碼的字元串轉換為ISO-8859-1編碼的字元串。 9.Java中訪問資料庫的步驟,Statement和PreparedStatement之間的區別。 10.找出下列代碼可能存在的錯誤,並說明原因: 二、JSP&Servlet技術 1.描述JSP和Servlet的區別、共同點、各自應用的范圍 2.在Web開發中需要處理HTML標記時,應做什麼樣的處理,要篩選那些字元(< > & 「」) 3.在JSP中如何讀取客戶端的請求,如何訪問CGI變數,如何確定某個Jsp文件的真實路徑。 4.描述Cookie和Session的作用,區別和各自的應用范圍,Session工作原理。 5.列出Jsp中包含外部文件的方式,兩者有何區別。 6.說明Jsp中errorPage的作用,應用范圍。 7.介紹在Jsp中如何使用JavaBeans。 8.簡單介紹JSP的標記庫 9.Jsp和Servlet中的請求轉發分別如何實現。 三、J2EE相關知識 1.介紹J2EE、J2SE、J2SE的區別。 2.J2EE是一種技術還是一種平台,他提供了那些技術。 3.什麼是Application Server,它有什麼功能和優點。 4.簡單介紹連接池的優點和原理。 5.Web.xml的作用 四、其他 1.Web安全性的考慮(表單驗證、瀏覽器Basic方式的驗證,應用程序的安全性,SSL,代碼考慮) 2.簡單介紹您所了解的MVC。 3.簡單介紹所了解的XML。 4.文檔和編碼規范 5.Java中的分頁、效率考慮。 6.簡單介紹您所了解的structs。 Java面試題收藏: 1.xml在項目中的作用 2.s-EJB 與 e-EJB的區別 3.會話面的作用 4.cmp與bmp的優缺點 5.j2me程序的必需的幾個部分 6.c/s與b/s的區別 7.構建一個connect pool然後再調用它, 8.j2ee平台與dotnet平台的區別 9.ejb的life cycle 10.session bean 和 entity bean的區別 11.ejb中的transaction機制 12.synchronized (生產者和消費) 13.String 和 StringBuffer 14.Serializable 15.MVC (Struts的工作流程) 16.什麼是MDA 17.tcp與udp的區別 18.鏈表與散列表和數組的區別 19.堆和棧的區別 20.ejb的分類及區別 21.你對現在軟體業以及國內軟體業的看法 22.談談java多線程 23.談談文件加密技術 24.軟體開發生命周期 25.路由協議種類及特點 26.java的awt和swing組件的GUI設計的關鍵 27.對於java流的認識 28.簡單描述一下awt與swing區別。 29.簡述java編程中事件處理模式。 30.你編寫過applet嗎?applet的安全許可權如何?試列舉java application或者applet中與servlet/jsp通信可以採用的方式。 31.簡述邏輯操作(如&|)與條件操作(如&&||)的區別。
B. javaweb面試題 jsp和servlet的區別,共同點,各自應用的范圍
沒有。本質上,jsp和servlet都是java文件。
jsp文件轉換成java文件,編譯成class文件,由虛擬機運行class文件,能被瀏覽器識別的數據在瀏覽器得以顯現。
我們可以驗證,部署tomcat,發布含有jsp頁面的web項目。訪問jsp頁面確認發布成功後,我們可以到tomcat的安裝路徑:E:\apache-tomcat-7.0.65\work\Catalina\localhost\qinglan\org\apache\jsp
如圖,
qinglan是我的項目名,此目錄下有兩個java文件,兩個class文件。打開我上傳的附件,即「index_jsp.java」文件可以發現,代碼和servlet類有點像。
我們知道,servlet是符合某種規范的java文件,而jsp頁面轉換成的java文件也符合這種規范。所以,你可以把jsp頁面當作servlet來使用,把servlet當作jsp來使用。當然兩者有他們各自最適合應用的場景。
jsp適合前端顯示數據,servlet適合接受數據、控制數據跳轉流程。
C. java常見的面試題和面試技巧 誰能告訴我 謝謝
如果說是一個企業急需招人,我想那就得多准備一些框架方面的知識,畢竟做項目是用的框架!下面進入主題:大概的流程是這樣吧 框架——》Java基礎——》資料庫相關點——》頁面注意技巧
一:框架——》
1,)Struts2是如何實現MVC的?M(模型):這個一般不由Struts來做V (視圖):視圖也不算struts的強項,但是struts提供優秀的標簽來支持視圖的展示,利用標簽,可以將數據合理的展示給用戶控制器:struts的重要功能,提供struts的過濾器,攔截用戶的請求,查找struts配置文件,為其匹配一個對應的Action,這個Action負責調用模型,獲得數據,然後對數據做部分處理,接著Action再將處理後的數據,為其選擇一個視圖進行輸出。
2) Struts工作機制?為什麼要使用Struts? 工作機制: Struts的工作流程: 在web應用啟動時就會載入初始化ActionServlet,ActionServlet從struts-config.xml文件中讀取配置信息,把它們存放到各種配置對象當ActionServlet接收到一個客戶請求時,將執行如下流程. (1)檢索和用戶請求匹配的ActionMapping實例,如果不存在,就返回請求路徑無效信息; (2)如果ActionForm實例不存在,就創建一個ActionForm對象,把客戶提交的表單數據保存到ActionForm對象中; (3)根據配置信息決定是否需要表單驗證.如果需要驗證,就調用ActionForm的validate()方法; (4)如果ActionForm的validate()方法返回null或返回一個不包含ActionMessage的ActuibErrors對象, 就表示表單驗證成功; (5)ActionServlet根據ActionMapping所包含的映射信息決定將請求轉發給哪個Action,如果相應的Action實例不存在,就先創建這個實例,然後調用Action的execute()方法; (6)Action的execute()方法返回一個ActionForward對象,ActionServlet在把客戶請求轉發給ActionForward對象指向的JSP組件; (7)ActionForward對象指向JSP組件生成動態網頁,返回給客戶;為什麼要用: JSP、Servlet、JavaBean技術的出現給我們構建強大的企業應用系統提供了可能。但用這些技術構建的系統非常的繁亂,所以在此之上,我們需要一個規則、一個把這些技術組織起來的規則,這就是框架,Struts便應運而生。基於Struts開發的應用由3類組件構成:控制器組件、模型組件、視圖組件 Struts的validate框架是如何驗證的? 在struts配置文件中配置具體的錯誤提示,再在FormBean中的validate()方法具體調用。
3)spring工作機制及為什麼要用? 1.spring mvc請所有的請求都提交給DispatcherServlet,它會委託應用系統的其他模塊負責負責對請求進行真正的處理工作。 2.DispatcherServlet查詢一個或多個HandlerMapping,找到處理請求的Controller. 3.DispatcherServlet請請求提交到目標Controller 4.Controller進行業務邏輯處理後,會返回一個ModelAndView 5.Dispathcher查詢一個或多個ViewResolver視圖解析器,找到ModelAndView對象指定的視圖對象 6.視圖對象負責渲染返回給客戶端。為什麼用: AOP 讓開發人員可以創建非行為性的關注點,稱為橫切關注點,並將它們插入到應用程序代碼中。使用 AOP 後,公共服務 (比 如日誌、持久性、事務等)就可以分解成方面並應用到域對象上,同時不會增加域對象的對象模型的復雜性。
IOC 允許創建一個可以構造對象的應用環境,然後向這些對象傳遞它們的協作對象。正如單詞 倒置 所表明的,IOC 就像反 過來的 JNDI。沒有使用一堆抽象工廠、服務定位器、單元素(singleton)和直接構造(straight construction),每一個對象都是用 其協作對象構造的。因此是由容器管理協作對象(collaborator)。
4)Hibernate工作原理及為什麼要用? 原理: 1.讀取並解析配置文件 2.讀取並解析映射信息,創建SessionFactory 3.打開Sesssion 4.創建事務Transation 5.持久化操作 6.提交事務 7.關閉Session 8.關閉SesstionFactory為什麼要用: 1. 對JDBC訪問資料庫的代碼做了封裝,大大簡化了數據訪問層繁瑣的重復性代碼。2. Hibernate是一個基於JDBC的主流持久化框架,是一個優秀的ORM實現。他很大程度的簡化DAO層的編碼工作3. hibernate使用Java反射機制,而不是位元組碼增強程序來實現透明性。4. hibernate的性能非常好,因為它是個輕量級框架。映射的靈活性很出色。它支持各種關系資料庫,從一對一到多對多的各種復雜關系。2. Hibernate是如何延遲載入? 1. Hibernate2延遲載入實現:a)實體對象 b)集合(Collection)2. Hibernate3 提供了屬性的延遲載入功能當Hibernate在查詢數據的時候,數據並沒有存在與內存中,當程序真正對數據的操作時,對象才存在與內存中,就實現了延遲載入,他節省了伺服器的內存開銷,從而提高了伺服器的性能。3.Hibernate中怎樣實現類之間的關系?(如:一對多、多對多的關系)類與類之間的關系主要體現在表與表之間的關系進行操作,它們都市對對象進行操作,我們程序中把所有的表與類都映射在一起,它們通過配置文件中的many-to-one、one-to-many、many-to-many。
5)Hibernate的一級緩存與二級緩存的區別?
一級緩存就是Session級別的緩存,一個Session做了一個查詢操作,它會把這個操作的結果放在一級緩存中,如果短時間內這個session(一定要同一個session)又做了同一個操作,那麼hibernate直接從一級緩存中拿,而不會再去連資料庫,取數據。二級緩存就是SessionFactory級別的緩存,顧名思義,就是查詢的時候會把查詢結果緩存到二級緩存中,如果同一個sessionFactory創建的某個session執行了相同的操作,hibernate就會從二級緩存中拿結果,而不會再去連接資料庫。(這個題想簡答就可以了,但是如果想深入去多問幾個問什麼這里提供一個連接,寫得較為詳細:1)
另外一個關鍵點是:你要知道什麼信息和什麼操作,該調用什麼級別的緩存!
6)如何優化Hibernate?(這個問題有些觸及到這個框架的弱點了,那就得想辦法應付)
1.使用雙向一對多關聯,不使用單向一對多 2.靈活使用單向一對多關聯 3.不用一對一,用多對一取代 4.配置對象緩存,不使用集合緩存 5.一對多集合使用Bag,多對多集合使用Set 6. 繼承類使用顯式多態 7. 表欄位要少,表關聯不要怕多,自己再補充一點,上面說到的都是關於資料庫設計 帶來的優勢,從而起到優化框架的效果,但是真正在實際操作中,我們只有盡量控制不使用懶載入「lazy
=true」,如果在涉及的盡量使用Hql語句
7)struts的核心是什麼?(參考了這個回答:2)
FilterDispatcher也是Struts2的核心技術。FilterDispatcher核心控制器執行以下操作:(1)讀取靜態數據信息(2)決定需要轉發或者導航的Action配置(3)創建Action的Context(4)創建Action代理(5)內存清理和性能優化攔截器:Interceptor 攔截器本身是一個普通的Java對象,它能動態攔截Action調用,在Action執行前後執行攔截器本身提供的各種個樣的Web項目需求。 也可以阻止Action的執行,同時也可以提取Action中可以復用的部分。(1)在Action調用之前提供系統處理流程邏輯控制(2)和Action交互時,提供Ation執行時的一些初始信息(3)在Action結束後,一些事後的處理流程邏輯(4)修改Action中返回的Result信息(5)捕獲異常棧是用ognl表達式存值的最初地方,即一個存值的棧 自己再補充一點:struts的標簽庫也算一個。
8)ssh 的工作流程(這個問題留作作業,它們之間的相互實現,相互調用從原理上理解就行了)
D. 你遇到的前端面試題都有什麼
大家好,我是王我。
隨著春節的結束,各個行業也普遍開始了上班的節奏, 不過本人17號才上班。為什麼?因為長得帥的都上班比較晚。 當然,每到新年結束,又迎來了一批招聘者與面試者,我來說說作為一年工作經驗應該知道的面試題。
HTML篇
1.doctype是什麼?有哪些類型?
2.input有哪些新類型?簡要說明其8用法。
3.HTML5有哪些新特性,移除了哪些元素?如何處理HTML5新標簽的瀏覽器兼容問題?如何區分HTML和HTML5?
4.bootstrap響應式的原理是什麼?
5.多移動終端頁面適配是如何實現的?
CSS篇
1.如何實現兩列布局,左邊自適應,右邊固定寬度?
2.用CSS畫一個三角形
3.CSS實現字體大寫
4.display有哪些常用的屬性值?分別是什麼意思?
5.position為absolute,relative,fixed的定點位置
6.用三種方法清除浮動
7.請介紹一下margin塌陷問題
js篇
1.什麼是事件冒泡和捕獲?如何阻止事件冒泡?(分別用原生和jquery實現)
2.js創建對象,至少使用三種方法
3.簡述一下事件穿透以及解決辦法
4.用三種方式判斷變數類型是否是數組
5.如何實現對象的拷貝?
6.什麼是閉包?閉包的優缺點。
7.簡述一下ajax請求的過程。
8.簡述一下new一個人構造函數的人過程。
9.為什麼會有跨域?是怎麼解決跨域問題的?簡述一下原理。
10.js原始數據類型有哪些?
11.學一個函數,判斷一個變數是否是字元串
12.typeof有哪些結果?
13.剪頭函數和普通函數有什麼區別?
14.請用三種方法實現數組去重
15.href和src有什麼區別?
jquery篇
1.attr()和prop()有什麼區別?
2.on和bind有什麼區別?js動態添加的dom元素是通過on還是bind?
3.touch和click有什麼區別?
4.window.onload和jquery的ready有什麼區別?
vue篇
1.簡述一下vue的生命周期及其特點
2.vue雙向綁定的原理是什麼?
3.vue的特點有哪些?和jquery有什麼區別?
4.父子組件之間傳遞數據的方法
5.子組件如何共享數據?
6.一般有什麼工具進行數據交互?
7.webpack的原理是什麼?
8.簡述一下$nextTick的用法
瀏覽器篇
1.cookie、sessionStorage、localStorage的區別是什麼?
2.有用過瀏覽器緩存嗎?簡述一下基本的緩存機制
網路篇
1.http和https之間的區別
2.從伺服器的安全考慮,是使用get請求還是post請求?
3.URL請求的過程有哪些?
項目經驗篇
1.項目中遇到的最大挑戰以及解決辦法
2.常見的網頁優化有哪些?
作為一個面試一年以內工作經驗的前端程序員來說,以上的問題能夠倒答如流月薪6k應該不成問題啦。這些面試題也是我在很多面試中感覺經常被問到的題目。
希望大家年後找工作能夠順順利利, 千萬不要跟我一樣哦,只有帥氣就一無所有了。
大家好,我是王我,中國最帥的前端程序員。
前幾次都是各種培訓公司,各種忽悠就不提了,說說後面4次面試的經歷。
第一次是面一個小公司,不過他們好像沒有厲害的前端,來面我的是個後端,一來沒有問我關於js的知識,直接問我以前做過什麼,有沒有經驗,我本人不會吹牛,簡歷也沒怎麼包裝,就是自己把自學的知識和做的幾個小demo弄在上面,也用github掛在頁面上了,不過他根本不點開看,也不問,問我會不會vue,我當時對框架還不了解,他就說他們需要能直接上手開始寫的,所以我第一個就直接掛了。
第二次面試是一個國企,這個問了很多問題,都很基礎,js數據類型,數組操作,事件,大概就是高程的前面幾章看看就差不多都能答到,然後因為他們主要用jq,所以問了很多jq的操作,關於節點的,動畫的,我看鋒利的jq大概看了3遍,也練過多次,所以我答的很熟。然後問了些布局方面的,bootstrap我了解過,又看過css3,所以這方面也沒啥問題,最後在現場做了個題目,主要就是布局然後通過ajax呈現數據。後面聽介紹我面試的說面試官比較滿意,說我jq很熟,一面就過了。可惜後面電話面試不知怎麼回事可能表現的不夠自信,雖然沒問技術,但是我沒啥自信,把沒項目經驗什麼的也不知怎麼就一五一十交代了,估計因為這個掛掉了。
第三次沒問問題,直接就是一套題開做,我在那做了一個多小時。題目就是按照要求一步一步做一個頁面出來,我也搞忘了我當時卡在哪個地方了,坐在那得時候就是做不出來,沒有設計圖,要根據他的描述自己找個設計圖然後做,我第一次遇到這個有點懵,雖然當時沒做出來,不過回來我自己花了幾個小時把它做了。所以這個也是涼了。
第四個問的比較多,數據類型,數組操作,跨域,ajax,閉包,原型鏈,繼承,深拷貝,淺拷貝,模塊amd cmd,基本都是問的js。然後問了html5的新特性 css3 的新特性,遇到過什麼瀏覽器的兼容性問題,怎麼解決的,以後想往什麼方面發展。這個時候我已經會點vue了,照著做了個小demo,不過後來知道公司用的angularjs,面試官也沒看我做的,問也沒問。。以前聽網上說要帶上自己的項目去面試感覺沒起多大效果。
最後總結下如果面的比較初級的崗位,應該主要問js,原型鏈,繼承,閉包,深淺拷貝,ajax,跨域,然後js的基礎知識,對了還有apply和call也問了,html5的新特性了解下就行。主要就是看你js掌握的程度,如果稍微要求高一點的,暫時還沒面過,等以後面過在來回答
1. cookie session 的用途和區別,以及有效期
1、cookie數據存放在客戶的瀏覽器上,session數據放在伺服器上。
2、cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙
考慮到安全應當使用session。
3、session會在一定時間內保存在伺服器上。當訪問增多,會比較佔用你伺服器的性能
考慮到減輕伺服器性能方面,應當使用COOKIE。
4、單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。
2. vue的數據綁定原理,mvvm與mvc的區別
MVVM:
m:model數據模型層 v:view視圖層 vm:ViewModel
vue中採用的是mvvm模式,這是從mvc衍生過來的
MVVM讓視圖與viewmodel直接的關系特別的緊密,就是為了解決mvc反饋不及時的問題
圖片說明一下:
說到MVVM就要說一下雙向綁定和數據劫持的原理,
MVC:
m:model數據模型層 v:view視圖層 c:controller控制器
原理: c層需要控制model層的數據在view層進行顯示
MVC兩種方式,圖片說明:
總結:
mvvm與mvc最大的區別:
MVVM實現了view與model的自動同步,也就是model屬性改變的時候, 我們不需要再自己手動操作dom元素去改變view的顯示,而是改變屬性後該屬性對應的view層會自動改變。
不懂得可以復制鏈接查看:
https://www.pianshen.com/article/3716256399/
3. storage 的區別 sessionStorage localStorage
localStorage 的生命周期是永久性的。假若使用localStorage存儲數據,即使關閉瀏覽器,也不會讓數據消失,除非主動的去刪除數據,使用的方法如上所示。localStorage有length屬性
sessionStorage 的生命周期是在瀏覽器關閉前。也就是說,在整個瀏覽器未關閉前,其數據一直都是存在的。sessionStorage也有length屬性,其基本的判斷和使用方法和localStorage的使用是一致的
有一個文本框 通過v-bind綁定了value屬性 值為myname 是我們在vue實例中定義的屬性
傳統我們獲取文本框值方法 可能通過getElementById找到文本框 然後獲取其value屬性
但是vue中直接通過v-bind綁定了value屬性 所以不需要像之前那樣獲取值
所以在後面的按鈕中獲取name值 直接獲取vue實例對象data裡面的myname屬性即可
【數據為尊 ----數據映射到瀏覽器 如果數據v-model後修改(肯定input)然後到數據在有數據映射到瀏覽器頁面 ----映射關系統稱】
緩存路由組件
使用的是vue的一個組件,參考vue的官方文檔
使用這個東西可以保證我們在切換組件的時候,原來顯示的組件不被銷毀
-----【保障組件的數據不會被切換路由而銷毀數據】
Home是對應的組件對象的名字,不是路由的名字
6.多維數組拍平
數組拍平也稱數組扁平化,就是將數組裡面的數組打開,最後合並為一個數組
一紅六種方法吧……
了解的請看: https://www.cnblogs.com/guan-shan/p/10165737.html
7.跨域的原因 解決方案
跨域是指一個域下的文檔或腳本試圖去請求另一個域下的資源,這里跨域是廣義的。
這樣就可以說同源策略----協議---埠---域名
原生的src和href可以解決跨域
代理可以解決
請求頭也可以攜帶瀏覽器提示的也可以解決
一般都是後端解決跨域問題
【別的需要了解看下方鏈接】
https://blog.csdn.net/qq_41604383/article/details/100770100
8.uniApp兼容問題§ 如果你使用cli創建項目(即項目根目錄是package.json),不管用什麼ide,即便是用HBuilderX,切記cli項目的編譯器是在項目下的,HBuilderX不管怎麼升級都不會影響編譯器版本。你需要手動npm update來升級編譯器。以及如果你想要安裝less、scss等預編譯器,也需要自己npm安裝在項目下,而不是在HBuilderX的插件管理里安裝。
§ 如果你使用離線打包,請注意HBuilderX升級後,真機運行基座和雲打包對應引擎跟隨HBuilderX升級,而你的sdk需要手動升級。sdk的版本升級一般滯後HBuilderX正式版升級一兩天。
§ 如果你使用自定義基座,之前製作的自定義基座是不會跟隨HBuilderX升級的,升級HBuilderX後你應該重新製作新版自定義基座。
§ 如果你使用wgt升級,新版HBuilderX編譯的wgt,運行到之前的runtime上,一定要先測試好,看有沒有兼容性問題。如果有問題,就不要wgt升級,整包升級。
§ 考慮到向下兼容,uni-app編譯器在升級為新的自定義組件模式後,同時保留了對老編譯模式的向下兼容。
在HBuilderX alpha版中,App端一定會使用新編譯器,不理會manifest配置。
在HBuilderX 正式版中,新創建的項目會使用新編譯器,老項目不會強制使用,而是開發者自己在manifest里配置開啟。
§ 如果你使用其他ide開發uni-app,會經常因為拼錯單詞而運行失敗,因為經過webpack編譯一道,很多錯誤反應的不夠直觀,排錯時間很長,不如從開始就依賴有良好提示的HBuilderX,避免敲錯單詞。
§ 雲打包的引擎版本說明
HBuilderX Alpha,只有1套雲打包機,不管你的HBuilderX alpha版本多少,對應的打包機一定是最新的alpha版的客戶端引擎。
HBuilderX正式版,有2套打包機,一個是最新正式版,一個是次新正式版。
中間的緊急更新版本沒有獨立打包機。
舉個例子:
HBuilderX 有1.8.0、1.8.1、1.8.2、1.9.0、1.9.1這幾個正式版。
那麼當前可用的打包機有1.9.1和1.8.2這2台。(即每個大版本的最後一個版本)
除了這2個HBuilderX版本外,其他版本的雲打包都指向最新的1.9.1版對應的打包機。(即只保留2個大版本的雲打包機)
【詳情請看】
https://ask.dcloud.net.cn/article/35845
一、HTML
HTML書寫規范
H5新增標簽
HTML渲染過程
二、CSS
css盒子模型概念
css彈性布局概念
三、JavaScript
事件模型
DOM2級事件模型
閉包
原型鏈
四、移動Web開發
常見的布局方案
移動端前端常見的觸摸相關事件touch、tap、swipe等整理
移動端前端手勢事件
移動端頁面渲染優化
GPU渲染
GPU核心渲染過程
五、調試
常用的調試工具
Chrome控制台調試js使用
移動端測試
六、HTTP網路知識
常見的HTTP狀態碼
不同請求類型的區別
WEB緩存方案
——————————
牛客網(www.nowcoder.com)
- 專業IT筆試面試備考平台
- 最全C++JAVA前端等互聯網技術求職題庫
- 全面提升IT編程能力
- 程序員交友聖地
分享了一些Web前端的面試題,限時一小時,你看看自己能夠答出多少道!
放心,這些面試題都是一些非常基礎的知識,只要你在平時認真聽課、學習了,那麼這些面試題肯定不會難道你。
建議:雖然沒有人監督你,但還是希望你不要去尋找答案,脫離網路,拿起紙筆,你試一下自己究竟能夠答出個什麼水平!有沒有真本領?答案盡在這些面試題里!那麼,你准備好了嗎?OK!計時開始!
一、HTML常見題目01、Doctype作用?嚴格模式與混雜模式如何區分?它們有何意義?
02、HTML5為什麼只需要寫?
03、行內元素有哪些?塊級元素有哪些?空(void)元素有那些?
04、頁面導入樣式時,使用link和@import有什麼區別?
05、介紹一下你對瀏覽器內核的理解?
06、常見的瀏覽器內核有哪些?
07、html5有哪些新特性、移除了那些元素?如何處理HTML5新標簽的瀏覽器兼容問題?
08、如何區分HTML和HTML5?
09、簡述一下你對HTML語義化的理解?
10、HTML5的離線儲存怎麼使用,工作原理能不能解釋一下?
二、CSS類的題目01、介紹一下標準的CSS的盒子模型?與低版本IE的盒子模型有什麼不同的?
02、CSS選擇符有哪些?哪些屬性可以繼承?
03、CSS優先順序演算法如何計算?
04、CSS3新增偽類有那些?
05、如何居中p?如何居中一個浮動元素?如何讓絕對定位的p居中?
06、display有哪些值?說明他們的作用。
07、position的值relative和absolute定位原點是?
08、CSS3有哪些新特性?
09、請解釋一下CSS3的Flexbox(彈性盒布局模型),以及適用場景?
10、用純CSS創建一個三角形的原理是什麼?
三、Java類的題目
01、介紹Java的基本數據類型。
02、說說寫Java的基本規范?
03、Java原型,原型鏈?有什麼特點?
04、Java有幾種類型的值?(堆:原始數據類型和棧:引用數據類型),你能畫一下他們的內存圖嗎?
05、Java如何實現繼承?
06、Java創建對象的幾種方式?
07、Java作用鏈域?
08、談談This對象的理解。
09、eval是做什麼的?
10、什麼是window對象?什麼是document對象?
OK,一小時到了,這個時間可不算短了,那麼這些面試題你答出了幾道呢?你寫的答案正確了嗎?現在你可以去翻看答案了。
如果你答出了絕大多數的或者是全部的題,並且答案也正確了,那麼恭喜你……
你這時心裡是不是有點小竊喜,認為自己有能力拿高薪了?雖然我也很想這么告訴你,但事實上這只能表明你的基礎扎實,畢竟這只是一些非常基礎的面試題。騷年~繼續努力吧!
如果你只答出了小部分或者答出了大部分題但答案不正確,那麼我只想說:「騷年,你的水平還差的遠呢。」連這么基礎的題你都打不出來,還想拿高薪?回去再練一段時間吧!
扎實的基礎是你拿高薪的重要武器,如果你連基礎都不扎實,那麼想要攻克「高薪」這個厚實的堡壘,那隻是痴人說夢罷了。
1.前端框架類問題,問你會不會用vue react啊
2.語言類,問你一些JavaScript語言的問題
3.項目經驗,讓你講講做過的項目,遇到的問題和解決之道
E. java面試題 求答案
10 b
11 d
12 d
13 abd
14 a
15 a
16 c
17 b
F. Java web 的三大框架如何學
所謂三大框架,即struts、spring及hibernate。要想學習好三大框架,快速掌握,最好的方法無疑是理論與實踐結合,由簡入繁,由單一到全部,逐一攻克,具體學習步驟如下:
1、先學習struts,struts是世界上第一個經典的mvc框架,其作用就是將業務邏輯與視圖分離開來,使得項目層次分明,清晰,更具有結構性。學習一個框架,首先要知道這個框架的作用,有哪些特徵,然後就是了解其實現原理,最後就是結合實際項目例子來進一步加深對這個框架的理解,新手學習可以從java301集這個教程中了解其基礎。
2、struts掌握了後,接著學習spring,spring就是一個大的工廠,其輕量理強大,它改變了傳統的編程模式,將實例化bean交給了容器管理,使得項目中類的耦合度大為降低。spring的特性很多,較為有名就是IOC(控制反轉)與AOP(面向世面編程)。要想學習好spring,就要先掌握相應的理論知識點,然後就是動手敲代碼,將它的每一個特性都實現一遍,功力到了,自然就掌握了。
3、掌握了以上兩大框架之後,可以繼續深入學習hibernate框架了。hibernate是一個orm-maping框架,即對象關系映射,將資料庫表反轉映射成實體對象,使得用戶在操作底層資料庫時,不用再寫那些繁瑣的SQL語句,而是通過直接操作對象將數據持久化到資料庫。學習好hibernate,首先要掌握其原理,映射配置,然後就是對其每一個特性進行編碼驗證,如一對一,一對多,多對多關系映射等。可以不結合項目,只要能連上資料庫進行相應操作即可。
4、三大框架都初步掌握了後,就可以進行整合學習了。三大框架在整合分工也很明確,也是一個經典的MVC框架,其中struts充於其中的V(即視圖層),spring充當C(即業務控制層),hibernate充當M(持久層)。整合學習三大框架的難點在於其中的配置,依賴及管理,這非一兩天能完成的事情,得要多查閱相關書籍交資料,動手實踐,用心體驗。
最後,要想學習好框架,除了掌握其原理、特性外,還要多動手編碼,多思考,熟能生巧。一句話,紙上得來終覺淺,絕知此事要躬行
G. Java都需要那些技術
Java工程師需要學習的技術還是比較多的。
尤其是現在技術更新迭代比較快,需要不斷學習掌握新的技術,給自身鍍金才能在IT行業發展的較好。
下面列舉出來一些需要掌握的技術:
1、理解Java面向對象思想
2、掌握開發中常用基礎API
3、熟練使用集合框架、IO流、異常
4、能夠基於JDK8開發
5、掌握流行關系型數據MySQL常見操作
6、熟練增刪改查數據處理
7、掌握Java JDBC、連接池操作
8、掌握基本的JavaWeb基礎知識JSP/Servlet/Vue等
9、具備基本的B/S結構軟體開發能力
10、可以動手開發一個B/S架構的Web項目
11、掌握SSM框架技術
12、掌握使用Maven進行模塊的開發
13、熟悉基本的Linux命令以及Linux伺服器的使用
14、掌握高級緩存技術Redis的原理,並熟練使用
15、掌握Git、Nginx、Docker、Elasticsearch、SpringBoot、SpringCloud、RabbitMQ、分布式事務、JVM、JUC、Zookeeper、Dubbo、Nacos等技術
16、企業級開發項目
雖然需要學習掌握的技術比較多,但是堅信「只要功夫深鐵杵磨成針」,加油!
H. java面試問道:從技術方面描述下你做的項目,都用了什麼技術,遇到了什麼問題,用什麼方法解決的!
此項目是採用B/S結構,採用struts,hibernate,spring等技術實現.
然後說下項目的總體結構(概括)
在具體說下自己所做的模塊...面試官看重的是你的口述能力和技術方面(自己本身的)
新手一般在使用SSH時,對配置文件不是很熟悉,可以說這方面問題,就說框架是自己動手搭建...
在動手做項目時,很容易出現JS錯誤..JS因為沒有明確錯誤提示..所以特別難找..我相信你應該也遇見了(除非界面你沒動過)
其次在做項目時,JAVA自帶內的運行效率都很高...你可以說下自己最開始的時候使用的是循環..等,效率不高...
後來為了提高效率採用了什麼方法.
將字元串一個個取出,例如:
String str="123456789";
for()...{
str.substring(?.?);//循環拿
?
......只為說明,大概列出
String str="123456789";
char[] ch=str.toChararray(); //一個個拿,放入數組,效率是上列方法的N倍
------------------------
這個只是給你的意見...你在項目中使用的還是靠你自己來說.這里可以讓考官知道你很喜歡比較學習,善於動腦思考....
---------------
寫完後才想到非常重要的一點....
推薦一本書給你:<<java程序員上班那點事>>