一.? CSS
1.?? 引入的方式有哪些?
1)外聯(lián):<link>標簽
2)內聯(lián):<style>標簽
3)元素內嵌:元素的style屬性
2.? CSS選擇符有哪些?
標簽選擇符、類選擇符强霎、id選擇符夏跷、組合選擇符
3.?$(this)?和?this?關鍵字在?jQuery?中有何不同宣吱?
前者是jQuery對象窃这,使用jQuery方法和屬性;后者是JavaScript對象征候,使用JavaScript方法和屬性杭攻。
4.? 列舉常用的幾種jQuery選擇器
1)基本選擇器:包括id選擇器、class選擇器和元素選擇器疤坝。
2)層次選擇器:也叫做路徑選擇器兆解,可以根據(jù)路徑層次來選擇相應的DOM元素。
3)過濾選擇器:在前面的基礎上過濾相關條件跑揉,得到匹配的dom元素:如屬性選擇器锅睛、表單選擇器等等
二.? JAVA基礎?
1.? 什么是java序列化埠巨,如何實現(xiàn)java序列化?(寫一個實例)
序列化:處理對象流的機制,所謂對象流也就是將對象的內容進行流化现拒±崩荩可以對流化后的對象進行讀寫操作,也可將流化后的對象傳輸于網絡之間印蔬。序列化是為了解決在對對象進行多謝操作時所引發(fā)的問題
序列化的實現(xiàn)(簡單的講):
????? 實現(xiàn)接口Serializable
????? 實現(xiàn)接口Externalizable
2.?java中==和eqauls()的區(qū)別
1)對于==勋桶,比較的是值是否相等
????????????如果作用于基本數(shù)據(jù)類型的變量,則直接比較其存儲的“值”是否相等侥猬;
如果作用于引用類型的變量例驹,則比較的是所指向的對象的地址
2)對于equals方法,注意:equals方法不能作用于基本數(shù)據(jù)類型的變量退唠,equals繼承Object類眠饮,比較的是是否是同一個對象
如果沒有對equals方法進行重寫,則比較的是引用類型的變量所指向的對象的地址铜邮;
諸如String、Date等類對equals方法進行了重寫的話寨蹋,比較的是所指向的對象的內容松蒜。
3.?hashCode()和equals()是什么?
hashCode()方法和equals()方法的作用其實一樣已旧,在Java里都是用來對比兩個對象是否相等一致秸苗。
4.?equals()和hashcode的區(qū)別
1).? ? 性能
重寫的equals()里一般比較的比較全面比較復雜,這樣效率就比較低运褪,而利用hashCode()進行對比惊楼,則只要生成一個hash值進行比較就可以了,效率很高秸讹。
2).? ? 可靠性
①? equals()相等的兩個對象他們的hashCode()肯定相等檀咙,也就是用equals()對比是絕對可靠的。
②? hashCode()相等的兩個對象他們的equals()不一定相等璃诀,也就是hashCode()不是絕對可靠的弧可。
5.?java中==、equals()和hashcode()區(qū)別
1).==運算符是判斷兩個對象是不是同一個對象劣欢,即他們的地址是否相等
2).object類中equals與==是等效的
3).覆寫equals更多的是追求兩個對象在邏輯上的相等棕诵,你可以說是值相等,也可說是內容相等凿将。(覆蓋以后,覆蓋equals時總要覆蓋hashCode )
4).hashCode用于返回對象的hash值校套,主要用于查找的快捷性,因為hashCode也是在Object對象中就有的牧抵,所以所有Java對象都有hashCode笛匙,在HashTable和HashMap這一類的散列結構中,都是通過hashCode來查找在散列表中的位置的。
6.?動態(tài)代理的兩種方式膳算,以及區(qū)別
答:jdk動態(tài)代理和cglib動態(tài)代理座硕;
JDK動態(tài)代理只能對實現(xiàn)了接口的類生成代理,而不能針對類涕蜂;cglib是針對類實現(xiàn)代理华匾,主要是對指定的類生成一個子類,覆蓋其中的方法机隙,因為是繼承蜘拉,所以該類或方法最好不要聲明稱final,final可以阻止繼承和多態(tài)有鹿;
7.? 排序都有哪幾種方法?請列舉旭旭。用JAVA實現(xiàn)一個快速排序?
排序的方法有:插入排序(直接插入排序、希爾排序)葱跋、交換排序(冒泡排序持寄、快速排序)、選擇排序(直接選擇排序娱俺、堆排序)稍味、歸并排序、分配排序(箱排序荠卷、基數(shù)排序)
8.? Overload和Override的區(qū)別模庐。Overloaded的方法是否可以改變返回值的類型?
不同:
Override:方法的重寫:子類覆蓋父類的方法,將子類傳與父類的引用油宜,調用的還是子類的方法
Overload:方法的重載:一個類多個方法掂碱,名稱相同,參數(shù)個數(shù)類型不同
相同:
兩者都是Java多態(tài)性的不同表現(xiàn)
Overload的方法時可以改變返回值的類型
9.?????&和&&的區(qū)別慎冤?
&是位運算符疼燥,表示按位與運算;&&是邏輯運算符蚁堤,表示邏輯與(and)
10.?????final類有什么特點?
1:這個關鍵字是一個修飾符悴了,可以修飾類,方法违寿,變量湃交。
2:被final修飾的類是一個最終類,不可以被繼承藤巢。
3:被final修飾的方法是一個最終方法搞莺,不可以被覆蓋。
4:被final修飾的變量是一個常量掂咒,只能賦值一次才沧。
11.?????final迈喉, finally, finalize的區(qū)別?
final用于聲明屬性温圆、方法和類挨摸,分別表示屬性不可變,方法不可被覆蓋岁歉,類不可繼承
finally是異常處理語句結構的一部分得运,表示總是執(zhí)行
finalize是Object類的一個方法,在垃圾收集器執(zhí)行的時候會調用被回收對象的此方法锅移,可以覆蓋此方法提供垃圾收集時的其他資源回收熔掺,如關閉文件等
?
12.?????Anonymous Inner Class(匿名內部類)是否可以extends(繼承)其他類,是否可以implements(實現(xiàn))interface(接口)非剃?
可以繼承其他累或完成其他接口置逻,在swing編程中常用此方式
?
13.?????Static Nested Class 和 Inner Class的不同?
Static nested class是被聲明為靜態(tài)(static)的內部類,它可以不依賴于外部類實例被實例化备绽。而通常的內部類需要在外部類實例化后才能實例化券坞。
14.?????static局部變量與全局變量的區(qū)別,編譯后映射文件是否包含此類變量的地址肺素。
? static全局變量只初使化一次报慕,防止在其他文件單元中被引用;
static局部變量和普通局部變量有什么區(qū)別:static局部變量只被初始化一次,下一次依據(jù)上一次結果值压怠;
static函數(shù)與普通函數(shù)有什么區(qū)別:static函數(shù)在內存中只有一份,普通函數(shù)在每個被調用中維持一份拷貝;
15.?????String and StringBuffer的區(qū)別?
他們都可以儲存和操作字符串飞苇,即包含多個字符的字符數(shù)據(jù)菌瘫。
String類提供數(shù)值不可改變的字符串
StringBuffer類提供字符串進行修改
?
16.?????String、StringBuffer與StringBuilder的相同點與區(qū)別--線程安全性體現(xiàn)
1.? ? ? String是不可改變的字符串布卡;StringBuffer和StringBuilder是可改變的字符串
2.? ? ? StringBuilder是線程非安全雨让,速度快,StringBuffer是線程安全
? ? ? ? ? ? 單線程操作字符串緩沖區(qū)忿等,操作大量數(shù)據(jù)使用StringBuilder栖忠。
? ? ? ? ? ? 多線程操作字符串緩沖區(qū),操作大量數(shù)據(jù)使用 StringBuffer贸街。
3.? ? ? String是final類庵寞,StringBuffer不是
4.? ? ? String重寫equals()和hashCode(),StringBuffer沒有
17.?????面向對象的7大設計原則
里氏原則薛匪,依賴倒置捐川,迪米特法則,單一職責逸尖,接口隔離古沥,開閉原則瘸右,缺少(聚合復用)
1:抽象方法只能定義在抽象類中,抽象類和抽象方法必須由abstract關鍵字修飾(可以描述類和方法岩齿,不可以描述變量)太颤。
2:抽象方法只定義方法聲明,并不定義方法實現(xiàn)盹沈。
3:抽象類不可以被創(chuàng)建對象(實例化)龄章。
4:只有通過子類繼承抽象類并覆蓋了抽象類中的所有抽象方法后,該子類才可以實例化襟诸。否則瓦堵,該子類還是一個抽象類。
5:?抽象類只能單繼承歌亲。
1:抽象類只能被繼承菇用,而且只能單繼承。
接口需要被實現(xiàn)陷揪,而且可以多實現(xiàn)惋鸥。
2:抽象類中可以定義非抽象方法,子類可以直接繼承使用悍缠。
接口中都有抽象方法卦绣,需要子類去實現(xiàn)。
3:抽象類使用的是? is a 關系飞蚓。
接口使用的 like a 關系滤港。
4:抽象類的成員修飾符可以自定義。
接口中的成員修飾符是固定的趴拧。全都是public的溅漾。
20.?????java中實現(xiàn)多態(tài)的機制是什么?
答:方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)著榴。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn)添履,重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。
21.?????構造器Constructor是否可被override?
構造器Constructor不能被繼承脑又,因此不能重寫Overriding暮胧,但可以被重載Overloading。