第二階段WEB開(kāi)發(fā)基礎(chǔ)學(xué)習(xí)總結(jié)
WEB開(kāi)發(fā)基礎(chǔ)學(xué)習(xí)總結(jié)
第二階段任務(wù):學(xué)習(xí)掌握HTML、CSS、JavaScript等與web開(kāi)發(fā)相關(guān)的基礎(chǔ)知識(shí)。在第二階段的學(xué)習(xí)中,主要都是針對(duì)web開(kāi)發(fā)基礎(chǔ)的知識(shí),其中html用于來(lái)表現(xiàn)網(wǎng)頁(yè)的結(jié)構(gòu)與內(nèi)容,css用來(lái)控制頁(yè)面的外觀和表現(xiàn),javascript用來(lái)控制頁(yè)面的行為。其中分別針對(duì)每一部分分別總結(jié)如下:
HTML的學(xué)習(xí)總結(jié):
(1)、HTML、XHTML的不同:
①XHTML中屬性名稱(chēng)必須小寫(xiě);
②XHTML屬性值必須加引號(hào)③XHTML屬性不能簡(jiǎn)寫(xiě);
④XHTML在屬性中增加了ID屬性,它可以取代name的功能;⑤XHTMLDTD定義了強(qiáng)制使用的HTML元素。
總的來(lái)說(shuō),XHTML比HTML更加嚴(yán)格與規(guī)范。它只著重強(qiáng)調(diào)用來(lái)表現(xiàn)網(wǎng)站的結(jié)構(gòu)而非樣式,樣式的內(nèi)容交由CSS來(lái)控制。
(2)、HTML中注釋的形式是:,注釋部分的內(nèi)容,將不會(huì)顯示在網(wǎng)頁(yè)中。(3)、HTML中的標(biāo)簽有兩種形式:
①帶結(jié)束標(biāo)記的標(biāo)簽,如:,etc。②不帶結(jié)束標(biāo)記的標(biāo)簽,如:,etc。
在標(biāo)簽內(nèi)部,可以是允許的屬性=“值”對(duì)出現(xiàn)。最重要的幾個(gè)標(biāo)簽如下:
標(biāo)簽在文檔的最外層,其它所有標(biāo)簽都在它的內(nèi)部,它表示該文檔是由html語(yǔ)言寫(xiě)的。
它是頭部標(biāo)簽,它其中的內(nèi)容是不會(huì)被網(wǎng)頁(yè)顯示在正文中的,常常在其中插入標(biāo)題,或者說(shuō)明文件的一些公共屬性,例如內(nèi)部樣式表的定義,外部樣式表的導(dǎo)入,javascript的編寫(xiě),外部javascript腳本的導(dǎo)入。
標(biāo)簽是文本的正文,它其中的內(nèi)容將顯示在網(wǎng)頁(yè)之中。(4)、HTML元素具有四種形式:
①空元素,如它只是起到換行的作用,沒(méi)有屬性,也不能跟任何屬性;
②帶有屬性的空元素,如,與空元素相對(duì)應(yīng),這類(lèi)元素自然就是具有屬性,但是無(wú)法體現(xiàn)任何元素;
③帶有內(nèi)容的元素,如XXXX,它表示該標(biāo)簽沒(méi)有屬性,但是在開(kāi)始標(biāo)簽與結(jié)束標(biāo)簽之間可以插入元素;
④帶有內(nèi)容和屬性的元素,如鏈接,它表示標(biāo)簽內(nèi)部可以有多個(gè)屬性,在開(kāi)始標(biāo)簽與結(jié)束標(biāo)簽之間可以插入元素。(5)、有一些特殊的字符,在HTML中不能直接用鍵盤(pán)上的鍵來(lái)表示,像不間斷空格,回車(chē),還有html中的保留字等都需要引用的方式才能輸入。如不換行空格: 。(6)、常常使用到的標(biāo)簽:①用來(lái)表示段落的標(biāo)簽,
②列表的建立,還有等等,其中內(nèi)部標(biāo)簽不是而是、③還有就是表格的標(biāo)簽,一般形式是:
表格的標(biāo)題表格的一行用于定義表頭用于定義單元格
④表示創(chuàng)建表單,其中有兩個(gè)重要的屬性:method屬性指定向服務(wù)器發(fā)送數(shù)據(jù)時(shí)使用的HTTP方法,可以是get或者post(get方法提交表單時(shí),提交的數(shù)據(jù)被附加到URL中,作為URL的一部分發(fā)送到服務(wù)器,缺乏安全。Post方法是將菜單中的信息作為一個(gè)數(shù)據(jù)塊單獨(dú)發(fā)送到服務(wù)器,更加安全)。另一個(gè)屬性anction用來(lái)表示對(duì)表單進(jìn)行處理的腳本的地址,即表示表單提交到服務(wù)器后,由誰(shuí)來(lái)處理這些數(shù)據(jù)。在標(biāo)簽中,會(huì)用到標(biāo)簽,input標(biāo)簽常用到的屬性有:type,value。Type用來(lái)制定要?jiǎng)?chuàng)建的控件類(lèi)型,value指定控件的初始值。⑤,超鏈接的符號(hào),可以用它的href屬性來(lái)制定連接到那個(gè)位置上去。
⑥表示嵌入一張圖片到網(wǎng)頁(yè)中。它其中的屬性width,height等可以設(shè)置圖片顯示時(shí)候的寬高。
CSS的學(xué)習(xí)總結(jié):
(1)、CSS它的目標(biāo)就是將結(jié)構(gòu)與表現(xiàn)相分離,也就是讓html的標(biāo)簽只專(zhuān)注于定于網(wǎng)頁(yè)內(nèi)容的結(jié)構(gòu),CSS來(lái)決定這些網(wǎng)頁(yè)的內(nèi)容如何顯示。使用CSS的一大好處就是,簡(jiǎn)化了網(wǎng)頁(yè)的格式代碼,加快網(wǎng)頁(yè)的下載顯示速度。同時(shí)在進(jìn)行后期維護(hù)的時(shí)候,由于結(jié)構(gòu)與表現(xiàn)的分離,更加易于維護(hù)。
(2)、CSS中注釋的方法是:/*注釋內(nèi)容*/(3)、CSS的選擇器分類(lèi):①元素選擇器:就是某個(gè)HTML元素作為選擇器,如:a,h1,p,etc;
②類(lèi)選擇器,這也是非常常用的一個(gè)選擇器,它的名字可以任意取,只是在.css文件中定義它的樣式時(shí),需要在這個(gè)名字前面加一個(gè)小黑點(diǎn),使用它的時(shí)候,只需要在html標(biāo)簽中使用class來(lái)選擇這個(gè)樣式即可;
③ID選擇器,它有些類(lèi)似于類(lèi)選擇器,但又有自身的一些特點(diǎn),首先,ID選擇器前面有一個(gè)#號(hào),其次ID選擇器的使用時(shí),它需要通過(guò)ID屬性值來(lái)指定,而不是通過(guò)class來(lái)指定,最后,在一個(gè)HTML文檔中,ID選擇器會(huì)使用一次,并且進(jìn)使用一次;④屬性選擇器,屬性選擇器可以根據(jù)元素的屬性及屬性值來(lái)選擇元素,例如,如果在網(wǎng)頁(yè)文檔中有部分元素包含title這個(gè)屬性,而我們希望將這些元素都變成紅色,以突出顯示,這時(shí)就可以使用屬性選擇器簡(jiǎn)單實(shí)現(xiàn),如:*[title]{color:red};
⑤后代選擇器,它的別名是包含選擇器,其實(shí)際效果可以通過(guò)這個(gè)小例子來(lái)進(jìn)行解釋?zhuān)何抑幌雽?duì)標(biāo)簽中的em元素引用樣式,我可以這樣定義:pem{color:red};后代選擇器定義時(shí)需要注意,樣式規(guī)則左邊的選擇器一段包括兩個(gè)或者多個(gè)用空格分隔的選擇器(這個(gè)選擇器可以是其他的任意選擇器,而不僅僅是元素選擇器)。⑥子元素選擇器,它是相對(duì)于后代選擇器來(lái)講的,是在其基礎(chǔ)上縮小了范圍,它只對(duì)它后面挨著的元素有效。樣式定義格式:p>em{color:red}⑦相鄰兄弟選擇器,如果需要選擇緊接在另一個(gè)元素后的元素,而且二者有相同的父元素,即可使用它。樣式定義格式:h1+p{color:red}
⑧偽類(lèi)選擇器,是指對(duì)同一HTML元素的各種狀態(tài)和其所包括的部分內(nèi)容的一種定義方式。如:a:link{color:red}(4)、CSS的樣式分為三種:
①行內(nèi)樣式,即HTML標(biāo)簽直接使用style屬性,它一般用于某個(gè)獨(dú)立的元素。如:
。如果使用了行內(nèi)樣式,一般需要在標(biāo)簽內(nèi)添加:
②內(nèi)嵌樣式,它是將標(biāo)簽放在標(biāo)簽中,如:
P{padding:10px;font-size:16px}
③外部樣式,這是最建議使用的,因?yàn)樗鼘SS單獨(dú)保存在一個(gè)文件中,通過(guò)
將樣式引入進(jìn)來(lái)。它的優(yōu)點(diǎn)是可以同時(shí)作用于多個(gè)頁(yè)面,而無(wú)需重復(fù)編寫(xiě)樣式,減少了工作量,并且修改時(shí),只需要修改一個(gè).css文件,就可以將整個(gè)使用它的頁(yè)面樣式都修改掉。
三種樣式的使用順序在html標(biāo)簽中,如果有多種樣式,而規(guī)定的樣式?jīng)]有沖突,則疊加,如果有沖突,則最先考慮行內(nèi)樣式,沒(méi)有的話,再考慮內(nèi)嵌樣式,還沒(méi)有,就采用外部樣式,如果它也沒(méi)有,就使用html的默認(rèn)樣式顯示。(5)、框模型:
padding,border,margin都是可選的,默認(rèn)值均為0,其中width與height指的是內(nèi)容區(qū)域的寬度和高度,padding,margin,border尺寸的變化,不會(huì)影響內(nèi)容區(qū)域的尺寸,但是會(huì)增加元素框的總尺寸。額外需要注意的是:margin的合并,它是指,當(dāng)兩個(gè)垂直外邊距相遇時(shí),他們將形成一個(gè)外邊距,合并后的外邊距的高度等于兩個(gè)發(fā)生合并的外邊距的高度中的較大者。(6)、CSS定位,它有三種方式,分別是:
①相對(duì)定位,相對(duì)于其默認(rèn)初始位置,通過(guò)設(shè)置垂直或水平位置,讓這個(gè)元素相對(duì)于它的起點(diǎn)進(jìn)行移動(dòng)。要進(jìn)行相對(duì)定位,需要在樣式中使用:position:relative
②絕對(duì)定位,絕對(duì)定位讓元素脫離了文檔流,故它不占據(jù)空間,定位后生成一個(gè)塊級(jí)元素,而不管原來(lái)它在正常流中生成何種類(lèi)型框。
③浮動(dòng),在標(biāo)準(zhǔn)瀏覽器中,浮動(dòng)元素脫離了文檔流,不占據(jù)外圍容器空間。浮動(dòng)可以向左或者向右,知道它的外邊緣碰到包含框或另外一個(gè)浮動(dòng)框的邊框?yàn)橹埂?/p>
JavaScript的學(xué)習(xí)總結(jié):
(1)、關(guān)于javascript的一些語(yǔ)法:javascript是一種弱類(lèi)型語(yǔ)言,它屬于面向?qū)ο缶幊陶Z(yǔ)言。它也有構(gòu)成編程語(yǔ)言的一些基本元素,如:數(shù)據(jù)類(lèi)型,變量(雖然全部都用var關(guān)鍵字來(lái)聲明變量,甚至可以不用該關(guān)鍵字),表達(dá)式和運(yùn)算符,數(shù)組,控制結(jié)構(gòu)(if(){}else{})和循環(huán)結(jié)構(gòu)(for()),函數(shù),正則表達(dá)式等等概念。其中大部分與其他語(yǔ)言的差不多,只有個(gè)別的需要作出說(shuō)明。
①對(duì)象,javascript也屬于面向?qū)ο缶幊陶Z(yǔ)言,因此它其中的所有事物都是對(duì)象,這點(diǎn)與其他面向?qū)ο缶幊陶Z(yǔ)言相同,一切皆對(duì)象(字符串,數(shù)值,數(shù)組,函數(shù)等等)。當(dāng)然,雖然javascript有許多內(nèi)置對(duì)象,它也是允許自定義對(duì)象的。對(duì)象之中也包含屬性與方法,對(duì)象訪問(wèn)屬性跟方法的方式也與java中的訪問(wèn)方式一樣,通過(guò).來(lái)進(jìn)行訪問(wèn)。Javascript中的主要對(duì)象有:window,document,文本對(duì)象,按鈕對(duì)象,location對(duì)象,history對(duì)象,字符串對(duì)象,日期對(duì)象,數(shù)組對(duì)象等
②變量,javascript是弱類(lèi)型語(yǔ)言,用它聲明的變量,可以保存任意類(lèi)型的數(shù)據(jù),或者只用變量名對(duì)其直接賦值。
③數(shù)組,它的數(shù)組是一個(gè)對(duì)象,需要使用的時(shí)候,可用這種方式:arr=newArray();(實(shí)質(zhì)上還有其他兩種方式)這點(diǎn)有些類(lèi)似java中創(chuàng)建對(duì)象,調(diào)用構(gòu)造函數(shù)。數(shù)組類(lèi)主要有toString(),subString()等等方法。
④函數(shù),javascript中的函數(shù)是很具有獨(dú)特氣質(zhì)的,它沒(méi)有返回值,可以在參數(shù)列表中只給出變量名而不要數(shù)據(jù)類(lèi)型(因?yàn)樗侨躅?lèi)型),甚至它可以不要函數(shù)名字,并且定義一個(gè)函數(shù),需要使用關(guān)鍵字function來(lái)說(shuō)明這是一個(gè)函數(shù)的定義。而且在一個(gè)函數(shù)內(nèi)部可以再定義一個(gè)匿名函數(shù),這些特點(diǎn)在其他語(yǔ)言中是很不可思議的事情。雖然javascript是面向?qū)ο缶幊陶Z(yǔ)言,但是它并不具備類(lèi)似于C++,JAVA這類(lèi)語(yǔ)言的某些功能,如:函數(shù)的重載。
(2)、在HTML中使用javascript是非常簡(jiǎn)單的一件事情,它有兩種形式:①內(nèi)部引入:就是將js代碼直接寫(xiě)在HTML代碼中,如:
alert(“=============”);②外部引入:就是將js代碼單獨(dú)放在一個(gè)文件中,其后綴名是.js,在要使用它的html文件中使用如下代碼引入:
這段代碼一般放在之間。(3)、javascript中的事件,事件簡(jiǎn)單說(shuō)就是用戶(hù)在使用頁(yè)面時(shí)執(zhí)行的操作,比如點(diǎn)擊鼠標(biāo),按鍵盤(pán)等等。一般處理事件都是通過(guò)一個(gè)函數(shù),如常在js腳本中使用的這種方式:window.onLoad=myFunction;其中onLoad是頁(yè)面加載完成時(shí)要觸發(fā)的一個(gè)事件,該事件的處理函數(shù)式myFunction。Javascript中有非常多的時(shí)間,比如:onclick(鼠標(biāo)點(diǎn)擊),onsubmit(按鈕提交),onchange(下拉菜單),onblur(失去焦點(diǎn))等等。(4)、javascript和cookie,cookie是一小段信息,當(dāng)用戶(hù)第一次訪問(wèn)服務(wù)器時(shí),服務(wù)器將它發(fā)給用戶(hù),這樣,以后當(dāng)用戶(hù)訪問(wèn)這個(gè)站點(diǎn)時(shí),服務(wù)器就可以通過(guò)cookie來(lái)識(shí)別用戶(hù)了。Cookie它的格式是有特定格式的,格式如下:
cookieName=cookieValue;expires=expirationDate;path=URLpath;domain=siteDomain其中只有第一部分cookieName是必須賦值的。(5)、DOM(文檔對(duì)象模型),它要求將HTML文檔看做是由節(jié)點(diǎn)組成的樹(shù)結(jié)構(gòu)。通過(guò)DOM給出的一些屬性及方法,我們可以添加、刪除和操作特定的節(jié)點(diǎn),以及在頁(yè)面上插入和替換節(jié)點(diǎn)。
①訪問(wèn)節(jié)點(diǎn):getElementByTagName()獲取標(biāo)簽名;getElementsByName()獲取name特性等于指定值的元素;getElementById()返回id特性等于指定的元素。②創(chuàng)建和操作節(jié)點(diǎn):createElement()創(chuàng)建標(biāo)簽元素;createTextNode()創(chuàng)建文本節(jié)點(diǎn);appendChild()把文本節(jié)點(diǎn)追加到標(biāo)簽元素中;removeChild()刪除節(jié)點(diǎn);replaceChild()替換節(jié)點(diǎn);insertBefore()插入節(jié)點(diǎn)。
(6)、關(guān)于ajax,它并非一個(gè)新的技術(shù),而是將很多原本存在的技術(shù)進(jìn)行了一個(gè)組合,其中的核心是XMLHttpRequest,Ajax技術(shù)讓自己的站點(diǎn)具有更好的響應(yīng)性、更吸引人,這會(huì)使站點(diǎn)的用戶(hù)在瀏覽過(guò)程中更愉快。它主要由下面這些技術(shù)組成:①使用HTML和CSS控制頁(yè)面結(jié)構(gòu)和表示方式;②使用DOM顯示和操縱頁(yè)面;
③使用瀏覽器的XMLHttpRequest對(duì)象在客戶(hù)機(jī)和服務(wù)器之間傳輸數(shù)據(jù);④使用XML(JSON)作為在客戶(hù)機(jī)和服務(wù)器之間傳輸?shù)臄?shù)據(jù)的格式;⑤使用JavaScript動(dòng)態(tài)地顯示所有內(nèi)容并且提供交互功能。使用ajax技術(shù),我們一般需要通過(guò)以下幾個(gè)步驟:①首先通過(guò)XMLHttpRequest獲得一個(gè)對(duì)象xhr;
②設(shè)置xhr的onreadystatechange事件處理程序。每當(dāng)xhr.readyState屬性值發(fā)生變化時(shí),就會(huì)觸發(fā)這個(gè)處理程序。③調(diào)用open()并且傳遞3個(gè)參數(shù):一個(gè)HTTP請(qǐng)求方法(例如"GET"、"POST"或"HEAD")、服務(wù)器上一個(gè)文件的URL和一個(gè)布爾值,這個(gè)布爾值告訴服務(wù)器請(qǐng)求是否異步(也就是說(shuō),我們是否會(huì)等待請(qǐng)求完成)。
④最后,我們用send()發(fā)送剛才創(chuàng)建的請(qǐng)求。如果要請(qǐng)求POST,就傳遞這里給出的參數(shù);若是GET,直接將參數(shù)設(shè)置為null。(7)、javascript一些其他知識(shí)點(diǎn):
①alert(“xxxxxxxxxx”)跳出提示框,只有提示信息;confir6(“xxxxxxx”),有兩個(gè)按鈕,用來(lái)確認(rèn)用戶(hù)的選擇;prompt(“xxxxxxxxx”,””),提示用戶(hù)輸入一個(gè)字符串,然后對(duì)這個(gè)字符串進(jìn)行操作。
②document.write(),用來(lái)向頁(yè)面輸出內(nèi)容;window.location完成頁(yè)面的轉(zhuǎn)換;
③比較字符串的時(shí)候,在javascript中只需要通過(guò)==即可,不需要像java一樣使用equals()。
④javascript中也有this,JavaScript關(guān)鍵字this使腳本能夠根據(jù)使用這個(gè)關(guān)鍵字的上下文將值傳遞給函數(shù)。
⑤javascript中的匿名函數(shù),樣式是:thisImage.onmouseout=function(){this.src=this.outImage.src;}
第一行開(kāi)始定義一個(gè)匿名函數(shù)(也就是沒(méi)有函數(shù)名的函數(shù))。本來(lái)也可以給它指定一個(gè)名稱(chēng)(比如rollOut()),但是因?yàn)樗挥幸恍写a,所以不需要命名。⑥在編寫(xiě)腳本時(shí),常常要檢查瀏覽器是否能夠理解我所使用的對(duì)象,常用于兼容中,我們常用對(duì)象探測(cè)技術(shù),如:if(document.getElementById){}else{}如果對(duì)象存在,if語(yǔ)句就為true,腳本繼續(xù)執(zhí)行。但是,如果瀏覽器不理解這個(gè)對(duì)象,測(cè)試就返回false,并執(zhí)行條件語(yǔ)句的else部分。在之前還有使用瀏覽器探測(cè)技術(shù)。
本周幾天時(shí)間對(duì)HTML、CSS、JavaScript進(jìn)行了學(xué)習(xí),HTML相對(duì)來(lái)說(shuō)是比較簡(jiǎn)單的,要掌握其中的標(biāo)簽難度也不是很大,主要是要明白它只控制文檔的結(jié)構(gòu),表現(xiàn)相關(guān)的交給CSS,行為相關(guān)的交給JavaScript;CSS中有眾多的屬性還不是很熟悉,因?yàn)樽约赫嬲暾季值木W(wǎng)站并沒(méi)有,但是對(duì)CSS大體結(jié)構(gòu)了解,因?yàn)樗男问较鄬?duì)來(lái)說(shuō)很單一,在實(shí)踐中多多運(yùn)用,私下自己做幾個(gè)簡(jiǎn)單的單頁(yè),個(gè)人覺(jué)得問(wèn)題不大;對(duì)于JavaScript之前并沒(méi)有接觸過(guò),經(jīng)過(guò)這段時(shí)間學(xué)習(xí),明白了其中的一些入門(mén)的含義,對(duì)其中具有的眾多對(duì)象,對(duì)象的很多方法與屬性還不是很熟悉,目前能夠進(jìn)行一些簡(jiǎn)單腳本的編寫(xiě)與閱讀,后面也需要再編寫(xiě)一些復(fù)雜的腳本來(lái)提高自己這方面的能力。對(duì)于這三方面知識(shí)點(diǎn)尚有疏漏的地方,望劉老師給予指導(dǎo)。
何磊
201*年11月6日
擴(kuò)展閱讀:java學(xué)習(xí)總結(jié)(基礎(chǔ)加web)
Java考試題
Java基礎(chǔ)部分
1、請(qǐng)簡(jiǎn)要描述oop的主要特征,并談?wù)剬?duì)這些特征的理解。
Oop主要特征:抽象,封裝,繼承,多態(tài);抽象:忽略與當(dāng)前主題無(wú)關(guān)的部分,抓住重點(diǎn)
封裝:使用方法將類(lèi)的屬性隱藏起來(lái),控制用戶(hù)對(duì)類(lèi)的修改和數(shù)據(jù)訪問(wèn)的程度,
繼承:子類(lèi)繼承父類(lèi)的方法和屬性,使程序結(jié)構(gòu)清晰,提高挨罵復(fù)用,一種isa的關(guān)系。多態(tài):不同對(duì)象對(duì)統(tǒng)一消息進(jìn)行回應(yīng)。一種多種同名方法共存
2、char型變量中能不能存貯一個(gè)中文漢字?為什么?
能,java中編碼方式是unicode,char占2個(gè)字節(jié),一個(gè)漢字剛好兩個(gè)字節(jié)所以可以
3、shorts1=1;s1=s1+1;有什么錯(cuò)?shorts1=1;s1+=1;有什么錯(cuò)?
錯(cuò),需要強(qiáng)制轉(zhuǎn)型為short,+=是java定義的運(yùn)算符故編譯是jvm會(huì)自動(dòng)處理
4、請(qǐng)說(shuō)明break,continue,return的作用。
Break,可用于switch分支一條case語(yǔ)句結(jié)束以后,可用于跳出循環(huán)Contiue:用于跳出里層循環(huán)
Return:也可用于終止循環(huán),有返回類(lèi)型的方法是用與返回
5、用abstract修飾符修飾的類(lèi)和方法有什么特點(diǎn)?
修飾的類(lèi)為抽象類(lèi),包含有抽象方法,
修飾的方法,為抽象方法只有方法體而沒(méi)有具體實(shí)現(xiàn)
6、protect修飾的方法與不加任何修飾的方法有什么不同?
加上為修飾后訪問(wèn)為同一包中和該類(lèi)的子類(lèi),不加為默認(rèn)的包訪問(wèn)權(quán)限。
7、什么是對(duì)象?什么是類(lèi)?它們之間有什么關(guān)系
對(duì)象:具有某些屬性和行為的名詞,類(lèi):具有相同屬性以及相同行為的一組對(duì)象,關(guān)系:對(duì)象是類(lèi)的實(shí)例化
8、請(qǐng)描述對(duì)象的初始化順序。
對(duì)象初始化順序:加載類(lèi),分配內(nèi)存空間,清零,加載變量然后方法。先父類(lèi)靜態(tài)變量,父類(lèi)靜態(tài)塊,子類(lèi)靜態(tài)成員變量,子類(lèi)靜態(tài)塊,父類(lèi)非靜態(tài)變量,父類(lèi)構(gòu)造函數(shù),子類(lèi)非靜態(tài)變量,子類(lèi)構(gòu)造函數(shù)
9、什么是繼承?繼承的特性可給面向?qū)ο缶幊處?lái)什么好處?
繼承:子類(lèi)繼承父類(lèi)的方法和屬性,使程序結(jié)構(gòu)清晰,提高代碼復(fù)用,一種isa的關(guān)系。
10、什么是方法的覆蓋?與方法的重載有何不同?方法的覆蓋與屬性的隱藏有何不同?
方法覆蓋:子類(lèi)重寫(xiě)與父類(lèi)同名的方法,擁有相同的參數(shù)名和返回值,多態(tài)的一種體先,重載:具有相同的方法名但是有不同的返回類(lèi)型或參數(shù)。
屬性隱藏:子類(lèi)定義與父類(lèi)同名的屬性,父類(lèi)的屬性就會(huì)被隱藏。
11、請(qǐng)簡(jiǎn)述接口和抽象類(lèi)的區(qū)別。并分別舉例說(shuō)明應(yīng)用場(chǎng)景。
接口:接口中全是抽象方法,若一個(gè)類(lèi)實(shí)現(xiàn)這個(gè)接口就必須是先接口中所有的方法。關(guān)鍵字implements和interface抽象類(lèi):用關(guān)鍵字abstract修飾,包含抽象方法(僅有方法體而沒(méi)有具體實(shí)現(xiàn)),可以包含普通方法和構(gòu)造方法,使用時(shí)不能用new創(chuàng)建實(shí)例
12、說(shuō)出ArrayList,Vector,LinkedList的存儲(chǔ)性能和特性
ArrayList和Vector都是集合,按數(shù)組的方式存儲(chǔ),查找比較快,vector是線程安全的,但效率上低于arraylist,Linkedlist:鏈?zhǔn)郊想p向鏈表,按序號(hào)索引數(shù)據(jù)進(jìn)行向前向后遍歷,所以插入和刪除數(shù)據(jù)最快。
13、請(qǐng)說(shuō)明Collection和Collections的區(qū)別。
Collection是一個(gè)j集合的接口,set和list都實(shí)現(xiàn)這個(gè)接口
Collection:是針對(duì)集合類(lèi)的一個(gè)幫助類(lèi),他提供一系列靜態(tài)方法實(shí)現(xiàn)對(duì)各種集合的搜索、排序、線程安全化等操作
14、Set里的元素是不能重復(fù)的,那么用什么方法來(lái)區(qū)分重復(fù)與否呢?
hashset我們自己區(qū)分的時(shí)候利用迭代器iterator,內(nèi)部利用hashcode然后equals方法實(shí)現(xiàn)區(qū)分是否重復(fù)。
15、Error和Exception它們繼承自哪個(gè)類(lèi)?有什么區(qū)別?
繼承Throwable這個(gè)類(lèi),
區(qū)別:error錯(cuò)誤,一般來(lái)說(shuō)很難回復(fù),如內(nèi)存溢出,exception,則為程序正常運(yùn)行時(shí)永遠(yuǎn)不會(huì)發(fā)生的的異常,程序員需要處理。
16、什么情況出現(xiàn)NullPointerException異常?怎樣處理?
使用一個(gè)對(duì)象是,對(duì)象為null,在適用對(duì)象前進(jìn)行判斷
17、請(qǐng)列舉Java類(lèi)中的方法修飾符,并簡(jiǎn)述其含義。
18、try{}里有一個(gè)return語(yǔ)句,那么緊跟在這個(gè)try后的finally{}里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return前
還是后?
會(huì),在return前
19、Java中如何讀寫(xiě)文件,請(qǐng)寫(xiě)出Java代碼實(shí)現(xiàn)讀寫(xiě)文件的基本過(guò)程。20、常見(jiàn)的xml解析方式有哪些?區(qū)別是什么?
Sax,dom:dom一次性全部讀取xml文件,創(chuàng)建一個(gè)一顆文檔樹(shù),故讀取大文件是熟讀緩慢
21、簡(jiǎn)要描述數(shù)據(jù)庫(kù)連接池的工作機(jī)制,并列出使用數(shù)據(jù)庫(kù)連接池的優(yōu)點(diǎn)。
程序運(yùn)行時(shí),創(chuàng)建一定數(shù)量的池連接,比在以后維持不少于這個(gè)數(shù)量的連接。提高程序運(yùn)行的效率
22、對(duì)于一個(gè)Linux命令,可以通過(guò)哪些方法了解其具體的使用方法。
Help,info,man,使用格式helpls;lshelp;infols;manls;
23、Linux系統(tǒng)中,請(qǐng)簡(jiǎn)要描述文件和目錄的訪問(wèn)權(quán)限的9個(gè)權(quán)限位的作用,請(qǐng)列舉修改權(quán)限的命令。
Xxxxxxxxx;前三位表示所有者的可讀可寫(xiě)可操作權(quán)限,中間所有者的所在用戶(hù)組;后三位是其他用戶(hù),Chmod777要更改權(quán)限的對(duì)象。
24、數(shù)據(jù)庫(kù)中,什么叫視圖(View),什么叫索引(Index)?什么情況下會(huì)用到索引,視圖的主要作用有哪些。
視圖:一張?zhí)摂M的邏輯表。并不包含實(shí)際的數(shù)據(jù),相當(dāng)于一個(gè)窗口,可通過(guò)該窗口對(duì)數(shù)據(jù)進(jìn)行查詢(xún)和修改。作用:使復(fù)雜查詢(xún)變得容易,提供數(shù)據(jù)獨(dú)立性,限制數(shù)據(jù)訪問(wèn)。索引:幫助查找數(shù)據(jù)。用指針加速取回?cái)?shù)據(jù)。
Javaweb部分
1、請(qǐng)簡(jiǎn)述對(duì)J2EE的理解。
由sun公司提供的一種企業(yè)級(jí)基于組件的java開(kāi)發(fā)規(guī)范。J2EE定義了13種組件如servlet,jsp,jdbc等。2、簡(jiǎn)要描述對(duì)mvc的理解,并舉例說(shuō)明在項(xiàng)目中的實(shí)現(xiàn)思路
Mvc是一種開(kāi)發(fā)模式,優(yōu)點(diǎn):耦合性低,可維護(hù)性高。,分別代表三個(gè)單詞:Modle,Veiw,Control,模型層控制程序的業(yè)務(wù)邏輯,視圖層,是接受用戶(hù)輸入和顯示數(shù)據(jù)給用戶(hù)與用戶(hù)交互,控制層:控制程序走向,模型層與視圖層的中間橋梁。3、Javascript有什么特點(diǎn)?并說(shuō)明其主要用途。
Javascript:一種腳本語(yǔ)言,是基于事件的面向?qū)ο笳Z(yǔ)言,弱數(shù)據(jù)類(lèi)型,安全,運(yùn)行速度快,有強(qiáng)大的函數(shù)庫(kù),
主要用途:客戶(hù)端驗(yàn)證用戶(hù)輸入,給用戶(hù)動(dòng)態(tài)的提示。美化頁(yè)面。4、什么是servlet容器?它的作用是什么?
Servlet容器:用于創(chuàng)建和維護(hù)servlet,提供一個(gè)運(yùn)行環(huán)境給servlet的東西。5、請(qǐng)描述servlet的生命周期以及在每個(gè)階段所調(diào)用的方法。
實(shí)例化:有容器進(jìn)行。初始化:調(diào)用init()方法。處理請(qǐng)求:根據(jù)請(qǐng)求方式的不同調(diào)用service()中的不同方法如:doget,dopost。銷(xiāo)毀:調(diào)用destroy方法。6、怎樣在web.xml文件中注冊(cè)一個(gè)servlet?
主要兩大塊:
7、請(qǐng)描述在servlet中forward和redirect的區(qū)別與聯(lián)系。
Forword:請(qǐng)求轉(zhuǎn)發(fā),服務(wù)器跳轉(zhuǎn),一次請(qǐng)求,地址欄不改變,request對(duì)象中的信息不丟失。Redirect:請(qǐng)求重定向,客戶(hù)端跳轉(zhuǎn),兩次請(qǐng)求,地址欄改變,request對(duì)象中的信息丟失。8、請(qǐng)描述jsp的執(zhí)行過(guò)程。
Jsp執(zhí)行經(jīng)過(guò)兩個(gè)階段:1、轉(zhuǎn)譯階段,將jsp轉(zhuǎn)譯為servlet,
2、編譯servlet,生成.class文件,
3、調(diào)用.class文件生成html頁(yè)面顯示給用戶(hù)。
9、如何執(zhí)行一個(gè)線程安全的JSP?
10、Jsp的9個(gè)內(nèi)置對(duì)象是什么?他們分別有什么作用。
Jsp九大內(nèi)置對(duì)象:page,request,response,session,application,pagecontext,config,exception,out。四個(gè)域?qū)ο螅簅ut輸出信息,e:處理異常,config:拿到一些配置信息。11、請(qǐng)列舉出至少5個(gè)request對(duì)象的常用的方法。12、Jsp的四個(gè)域?qū)ο笫鞘裁?他們的“域”指的是什么?/p>
Page,requerst,session、,application,域表示有效時(shí)間,及在什么范圍內(nèi)有效。13、請(qǐng)列列舉四個(gè)jsp指令,并說(shuō)明它們的含義。
Page:設(shè)置頁(yè)面屬性,taglib,:標(biāo)簽指令,include:包含指令。14、Jsp有哪些動(dòng)作?作用是什么?
15、請(qǐng)描述Jsp和servlet的區(qū)別與聯(lián)系。
。。。。。。。。
16、請(qǐng)說(shuō)出在jsp中靜態(tài)包含和動(dòng)態(tài)包含技術(shù)的異同點(diǎn)。
靜態(tài)是先包含再執(zhí)行,動(dòng)態(tài)為先執(zhí)行在編譯。
17、在JSP開(kāi)發(fā)過(guò)程中,對(duì)于同一個(gè)用戶(hù)的會(huì)話,要想在不同的頁(yè)面之間共享數(shù)據(jù),可以有幾種選擇?請(qǐng)一一列舉
Request,session,application,cookie,重寫(xiě)地址欄,隱藏域。18、請(qǐng)說(shuō)明過(guò)濾器的工作原理以及重要的接口。
過(guò)濾器:當(dāng)一個(gè)請(qǐng)求到達(dá)是過(guò)濾器會(huì)進(jìn)行攔截,服務(wù)器響應(yīng)消息時(shí)也會(huì)同樣攔截。根據(jù)編寫(xiě)的故偶濾器確定是否放行和是否要做相應(yīng)的處理。重要接口:filter,filterchain,filterconfig。19、什么是監(jiān)聽(tīng)器?它的作用是什么,請(qǐng)舉例說(shuō)明。
監(jiān)聽(tīng)器是:專(zhuān)門(mén)用于對(duì)其他對(duì)象身上發(fā)生的事件或狀態(tài)改變進(jìn)行監(jiān)聽(tīng)和相應(yīng)處理的對(duì)象,當(dāng)被監(jiān)視的對(duì)象發(fā)生情況時(shí)。監(jiān)聽(tīng)域?qū)ο笞陨淼膭?chuàng)建和銷(xiāo)毀的事件監(jiān)聽(tīng)器監(jiān)聽(tīng)域?qū)ο笾械膶傩缘脑黾雍蛣h除的事件監(jiān)聽(tīng)器
監(jiān)聽(tīng)綁定到HttpSession域中的某個(gè)對(duì)象的狀態(tài)的事件監(jiān)聽(tīng)器
20、使用http傳輸協(xié)議將客戶(hù)端的請(qǐng)求傳送至服務(wù)器端最常用的是哪兩種方式,他們的區(qū)別是什么。
Get,post,
Get:方式相對(duì)來(lái)說(shuō)速度較快,當(dāng)傳輸?shù)臄?shù)據(jù)量要小于1kb,傳輸?shù)男畔?huì)在地址欄顯示,安全性存在隱患。Post:比get方式安全,傳遞的數(shù)據(jù)量也比之要大。21、簡(jiǎn)述struts2的工作流程。
Struts2:核心為一個(gè)過(guò)濾器,當(dāng)一個(gè)請(qǐng)求到達(dá)的時(shí)候,服務(wù)器對(duì)之進(jìn)行攔截,參考struts.xml文件,尋找到對(duì)應(yīng)配置的action,尋找到action類(lèi),對(duì)請(qǐng)求做出相應(yīng)的處理。處理完后返回一個(gè)String,參考struts.xml文件中的配置的result顯示相應(yīng)的頁(yè)面給用戶(hù)
22、Struts2配置文件struts.xml中有哪些常用的配置項(xiàng),它們分別有什么作用?23、請(qǐng)說(shuō)明在ognl表達(dá)式中#、$、%的作用。
Ognl表達(dá)式:#是取非valuestack中的值時(shí)使用,如request.還有操作集合是時(shí)也可以用到。
$配置文件中那取action中的值是會(huì)使用到。國(guó)際化資源文件中引用ognl表達(dá)式%當(dāng)強(qiáng)制聲明為ognl表達(dá)式或字符串是會(huì)使用到
24、寫(xiě)出3組常見(jiàn)的Struts標(biāo)簽,并簡(jiǎn)述其作用。
25、valuestack是什么?它的作用是什么?在頁(yè)面中怎樣訪問(wèn)?
Struts的值棧,存放一些請(qǐng)求響應(yīng)信息,直接訪問(wèn)。26、請(qǐng)簡(jiǎn)要描述Struts2中攔截器的主要作用、配置及執(zhí)行流程。
攔截器,servlet中的過(guò)濾器相似,當(dāng)客戶(hù)端請(qǐng)求到達(dá)是經(jīng)過(guò)攔截器,響應(yīng)是也會(huì)經(jīng)過(guò),是一種aop的思想。配置:interceptor
Servlet是線程不安全的,采用多線程的方式調(diào)用service方法。CGI就是單線程,所以servlet比之效率高。Servlet實(shí)現(xiàn)單線程的方法:實(shí)現(xiàn)singleThreadmodel。
創(chuàng)建線程的兩種方式:繼承Thread這個(gè)類(lèi),或?qū)崿F(xiàn)runnable這個(gè)接口,啟動(dòng)線程:statrt(),啟動(dòng)后會(huì)調(diào)用run方法。Sleep和wait()區(qū)別:sleep不會(huì)釋放鎖。Wait()釋放鎖,必須有notify()喚醒。多線程中實(shí)現(xiàn)線程安全:利用關(guān)鍵字synchronized,一把鎖,實(shí)現(xiàn)同步。死鎖的條件:互斥條件,不可剝奪資源,循環(huán)等待,請(qǐng)求與保持條件。反射:加載驅(qū)動(dòng),Class.forName(“類(lèi)的完整類(lèi)名”)通過(guò)一個(gè)class對(duì)象拿到其相應(yīng)的方法屬性。組件:就是對(duì)數(shù)據(jù)和方法進(jìn)行了簡(jiǎn)單封裝。
友情提示:本文中關(guān)于《第二階段WEB開(kāi)發(fā)基礎(chǔ)學(xué)習(xí)總結(jié)》給出的范例僅供您參考拓展思維使用,第二階段WEB開(kāi)發(fā)基礎(chǔ)學(xué)習(xí)總結(jié):該篇文章建議您自主創(chuàng)作。
來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問(wèn)題,請(qǐng)聯(lián)系我們及時(shí)刪除。