對(duì)大數(shù)據(jù)的認(rèn)識(shí)
大數(shù)據(jù):數(shù)據(jù)量大 ? 全量數(shù)據(jù)
數(shù)據(jù)處理模式:流處理 (storm) ?批處理(Hadoop、spark)?
應(yīng)用:管理 、 ?清洗 ?、 挖掘 ?
采集、 災(zāi)難備份等
大數(shù)據(jù)方向
大數(shù)據(jù)開發(fā)
數(shù)據(jù)分析美旧、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)
數(shù)據(jù)運(yùn)維
企業(yè)看重
職業(yè)認(rèn)識(shí)
團(tuán)隊(duì)能力
意識(shí)思維
知識(shí)深度
總的學(xué)習(xí)方式:及時(shí)反饋問題贬墩,進(jìn)行總結(jié)
面試筆試題
基礎(chǔ)陈症、思維、讀震糖、寫代碼能力 录肯、算法等。
集群
集群通信系統(tǒng)是一種計(jì)算機(jī)系統(tǒng)吊说, 它通過一組松散集成的計(jì)算機(jī)軟件和/或硬件連接起來高度緊密地協(xié)作完成計(jì)算工作论咏。在某種意義上,他們可以被看作是一臺(tái)計(jì)算機(jī)颁井。集群系統(tǒng)中的單個(gè)計(jì)算機(jī)通常稱為節(jié)點(diǎn)厅贪,通常通過局域網(wǎng)連接,但也有其它的可能連接方式雅宾。集群計(jì)算機(jī)通常用來改進(jìn)單個(gè)計(jì)算機(jī)的計(jì)算速度和/或可靠性养涮。一般情況下集群計(jì)算機(jī)比單個(gè)計(jì)算機(jī),比如工作站或超級(jí)計(jì)算機(jī)性能價(jià)格比要高得多
分布式
在計(jì)算機(jī)科學(xué)中眉抬,分布式計(jì)算(英語:Distributed computing贯吓,又譯為分散式計(jì)算)這個(gè)研究領(lǐng)域,主要研究分散系統(tǒng)(Distributed system)如何進(jìn)行計(jì)算蜀变。分散系統(tǒng)是一組電子計(jì)算機(jī)(computer)悄谐,通過計(jì)算機(jī)網(wǎng)絡(luò)相互鏈接與通信后形成的系統(tǒng)。把需要進(jìn)行大量計(jì)算的工程數(shù)據(jù)分區(qū)成小塊库北,由多臺(tái)計(jì)算機(jī)分別計(jì)算爬舰,在上傳運(yùn)算結(jié)果后们陆,將結(jié)果統(tǒng)一合并得出數(shù)據(jù)結(jié)論的科學(xué)。目前常見的分布式計(jì)算項(xiàng)目通常使用世界各地上千萬志愿者計(jì)算機(jī)的閑置計(jì)算能力情屹,通過互聯(lián)網(wǎng)進(jìn)行數(shù)據(jù)傳輸坪仇。如分析計(jì)算蛋白質(zhì)的內(nèi)部結(jié)構(gòu)和相關(guān)藥物的Folding@home項(xiàng)目,該項(xiàng)目結(jié)構(gòu)龐大垃你,需要驚人的計(jì)算量烟很,由一臺(tái)電腦計(jì)算是不可能完成的。
java垃圾回收機(jī)制(GC)
Java語言規(guī)范沒有明確地說明JVM使用哪種垃圾回收算法蜡镶,但是任何一種垃圾收集算法一般要做2件基本的事情:(1)發(fā)現(xiàn)無用信息對(duì)象;(2)回收被無用對(duì)象占用的內(nèi)存空間恤筛,使該空間可被程序再次使用官还。
部分面試題
1、請(qǐng)寫出以下代碼的輸出結(jié)果
public class TestThree{
? ? ? ?private void test(int param) {
? ? ? ?switch (param) {
? ? ? ? ? ? ? ? ?case 1:System.out.println("Selected 1.");
? ? ? ? ? ? ? ? ?case 2:System.out.println("Selected 2.");
? ? ? ? ? ? ? ? ? case 3:System.out.println("Selected 2.");
? ? ? default:
? ? ? ?System.out.println("Default seleted.");
? ? ? ?}
}
public static void main(String[] args) {
? ? ? ? ?new TestThree().test(2);
}
}
程序輸出結(jié)果為:
Selected 2.
Selected 3.
Default seleted.
注:在case語句后沒有break毒坛,所以后邊的語句被都執(zhí)行
2望伦、請(qǐng)寫出以下代碼的輸出結(jié)果
public class Test{
int a;
int b;
public void f(){
? ? ?a =0;
? ? ? b=0;
? ? ? ?int [] c ={0};
? ? ? g(b,c);
? ? ? System.out.println(a+" "+b+" "+c[0]+" ");
}
public voidg(int b,int[] c){
? ? ? ? ? a=1;
? ? ? ? ? b=1;
? ? ? ? ? c[0]=1;
}
public static ?voidmian(String[] ?args){
? ? ? ? ? Test obj = new Test();
? ? ? ? ? obj.f();
}
}
數(shù)組 :
1、數(shù)組(一種引用數(shù)據(jù)類型)
數(shù)組中的所有元素具有相同數(shù)據(jù)類型煎殷,長度確定(數(shù)組對(duì)象長度不可變屯伞,而不是數(shù)組的長度不可變)
可存儲(chǔ)基本類型,也可存儲(chǔ)引用類型
多維數(shù)組:數(shù)組中存放數(shù)組
定義數(shù)組:type[] arrayname或type arrayname[]
引用類型:聲明時(shí)實(shí)際內(nèi)容并沒有劃分
基礎(chǔ)類型變量:聲明時(shí)就劃分了空間
兩種初始化方式:靜態(tài)初始化? int a[]={1,2,3};不顯式說明長度豪直,通過具體的元素知道長度
動(dòng)態(tài)初始化? int b[]=new int[3];顯式說明長度劣摇,無實(shí)際元素
下標(biāo)從0開始
求最大值、最小值
折半查找(時(shí)間復(fù)雜度)
冒泡排序弓乙、選擇排序
數(shù)組的常見操作:
最大值末融、最小值實(shí)現(xiàn)
排序:
<1>利用Arrays帶有的排序方法快速排序
<2>冒泡排序算法
面向?qū)ο?br>
1、面向?qū)ο?Object Oriented,OO)是軟件開發(fā)方法暇韧。
一個(gè)很抽象的概念勾习,它相對(duì)面向過程而言。
過程與對(duì)象都是一種解決問題的思想懈玻。
面向過程:強(qiáng)調(diào)的是功能行為,一種過程,先干啥,再干啥;
面向?qū)ο螅簩⒐δ芊庋b到對(duì)象里巧婶,強(qiáng)調(diào)的是具備某功能的對(duì)象;
計(jì)算機(jī)語言為了更好的去描述現(xiàn)實(shí)生活中的事物,也一樣會(huì)按照生活中的思考方式來定義涂乌,這樣人們使用起來才會(huì)更方便艺栈。
2、面向?qū)ο蟮娜齻€(gè)特征:
封裝 ? ? 繼承 ? ? 多態(tài)
類的定義
構(gòu)造方法:用來構(gòu)造類的實(shí)例(默認(rèn)有一個(gè)無參的構(gòu)造方法湾盒,得使用new調(diào)用)
字段:類或?qū)ο笏臄?shù)據(jù)眼滤,對(duì)類狀態(tài)的一種描述;
方法:類或?qū)ο蟮奶卣骰蛐袨?/p>
對(duì)象的定義历涝、創(chuàng)建以及使用
格式:
類名? 對(duì)象名稱 = new 類名(); //其實(shí)是兩步操作
類名? 對(duì)象名稱 ; //聲明對(duì)象
對(duì)象名稱? =? new 類名(); //實(shí)例化對(duì)象
例:
CellPhone iphone? =? new CellPhone();
static關(guān)鍵字
特點(diǎn):
隨著類的加載而加載
優(yōu)先于對(duì)象存在
被所有對(duì)象所共享
可以直接被類名調(diào)用
用static修飾:
用static 修飾的成員表示它屬于這個(gè)類共有诅需,而不是屬于該類的單個(gè)實(shí)例漾唉。
沒使用static修飾的字段和方法,成員屬于類的單個(gè)實(shí)例堰塌,不屬于類赵刑。
對(duì)象的引用
CellPhone? phone? =? new CellPhone();
1. 創(chuàng)建了一個(gè)CellPhone? 的實(shí)例(對(duì)象),
2. 把這個(gè)CellPhone? 實(shí)例賦給 phone變量场刑。
phone.brand="Android";
引用變量指向?qū)ο蟀愦耍簿褪钦f引用型變量存放的僅僅是一個(gè)引用;
成員變量&局部變量
成員變量:(字段)
實(shí)例字段(無static修飾)
類字段(static修飾)
局部變量:
形參
方法局部變量
定義時(shí)不給初始值,沒問題牵现,但是不能使用铐懊,若要使用,必須給定初始值瞎疼。
代碼塊局部變量{}
數(shù)組中字符元素的排列
運(yùn)用遞歸科乎、迭代
Java中為什么是單繼承,怎樣實(shí)現(xiàn)多繼承
單繼承的原因
(1)如果在一個(gè)子類繼承的多個(gè)父類中擁有相同名字的實(shí)例變量贼急,子類在引用該變量時(shí)將產(chǎn)生歧義茅茂,無法判斷應(yīng)該使用哪個(gè)父類的變量
(2)如果在一個(gè)子類繼承的多個(gè)父類中擁有相同方法,子類中有沒有覆蓋該方法太抓,那么調(diào)用該方法時(shí)將產(chǎn)生歧義空闲,無法判斷應(yīng)該調(diào)用哪個(gè)父類的方法。
多繼承實(shí)現(xiàn)
1走敌、子類繼承父類碴倾,又所有的類是Object的子類,父類是object的子類掉丽,父類的子類同樣可以調(diào)用object中的成員變量和方法影斑;
2、接口可實(shí)現(xiàn)多繼承:
因?yàn)樵诮涌谥胁荒苡袑?shí)例變量机打,只能有靜態(tài)的常量矫户,不能有具體的方法(包含方法體),只能有抽象方法残邀,因此也就摒棄了多繼承的缺點(diǎn).
3皆辽、內(nèi)部類
包裝類
基本數(shù)據(jù)類型的包裝類
包裝類說明
除了Integer和Character定義的名稱和對(duì)應(yīng)的基本類型差異大,其他六種都是將首字母大寫就可以了芥挣。
Integer,Byte,Float,Double,Short,Long都是Number類的子類驱闷。(Number類后面講);
Character和Boolean都是Object直接子類空免;
8個(gè)類都是final修飾的(不可被繼承)空另。
整型類的享元模式:
Integer a = 123; Integer b = 123; 相等嗎?
Integer a = 246; Integer b = 246; 相等嗎蹋砚?
基本數(shù)據(jù)類型和包裝類相互轉(zhuǎn)換
把基本數(shù)據(jù)類型 → 包裝類:
通過對(duì)應(yīng)包裝類的構(gòu)造方法實(shí)現(xiàn)
除了Character外扼菠,其他包裝類都可以傳入一個(gè)字符串參數(shù)構(gòu)建包裝類對(duì)象摄杂。
包裝類 → 基本數(shù)據(jù)類型
包裝類的實(shí)例方法xxxValue();? ? // xxx表示包裝類對(duì)應(yīng)的基本數(shù)據(jù)類型
具體實(shí)現(xiàn)