我還是一個閑不住的人,在學習java的過程中,我還去了誠邁面試,當時只是去試試,看看這些外包公司到底是咋么樣的?需要我們這些本科生具備什么樣的能力,然后在我完成了他們的筆試題以后,然后參加了他們的面試,面試官可能是臨時拉過來面試的吧~~老感覺他不太樂意~~~然后面試官開始問我各種問題,什么多態,什么安卓的源碼你有沒有看過~~~基本我是被問倒了,要知道我也是剛剛開始自學java和安卓的人啊,你問我這個,讓我如何跟你說詳細呢?然后他看我寫的簡歷,說你是咋么統計代碼量,知道什么是代碼量不?我就說按我的理解就是我寫的代碼啊~他是公司一個人一天有效代碼最多就500行,你拿出這樣的簡歷也不怕別人笑話,好吧,面試官果然是大神,不過先工作的面試官,如果我也是工作了幾年的人當然也不會犯這樣的錯誤是嗎?做人,我總是覺得應該留點后路,對嗎?萬一以后我們是同事呢?不過,我十分感謝你,讓我看到了自己足夠的不足,我開始反思自己了,面試官指出你既然知道sqlit3的使用,就該知道這個數據庫是咋么實現,是的,我在這里學到了一點,那就是我真的沒有深入地去理解我自己所學的東西,應該更加深入地學習,不是嗎?
當時我可能在拿到華碩的offer以后就開始松懈了,這點必須承認,因為我發現我腦海里面已經沒有像開始那樣地可以用很專業的術語來解釋我的理解了,我只有用我自己的言語來解釋我的理解,誠然,開始是有點背書的嫌疑吧,不過我還是喜歡去自己慢慢理解,于是我忘記了許多的術語,就剩下一些自己的理解了!
面向對象
不得不說,面向對象是我們現在最主流的編程語言了,相對于面向過程的C語言有太多的優勢了,面向對象有3大特點,這是經常被考的一個面試題吧,當然我是指技術面哦!當然最受不了的就是面試官故意把我們經常忽視的一個特點挑出來問我們了--抽象,這個是來自C++的一個特性吧,我對C++不是很熟,但是在JAVA和C#中很少會提及這個特點。
當時我就被問到了什么是抽象,我是這樣答的:我們寫的代碼就是把具體的有共同特點的特性取出來,抽象成一個類! 后來我也查了資料,別人是這樣說的:
1、面向對象本身來說是一種抽象能力。
2、數據結構,算法針對機器來抽象。
3、面向對象針對人來抽象。
{
抽象:
抽象類定義:不能被實例化的類 抽象方法:方法的實現由子類決定,在父類中我們將該方法聲明為抽象方法 關鍵字:abstract 如果將一個方法聲明為抽象方法只有兩個結果: 1,類也必須聲明為抽象類,如果一個類包含了抽象方法,那么該類也必須是抽象的。 2,任何子類必須重寫抽象方法,除非子類本身也是抽象的
}
下面介紹三大特點:
(1)繼承:
我的理解:兩個類具備一些相同的特性,子類可以有父類的特性,而子類也可以有自己的特性方法這就區別于父類了!(我的想象就是兒子可以繼承老子的財產,但兒子也可以自己創造財富,這世界上還沒有父親繼承兒子的財產的情況吧~~~)
術語:繼承是一種聯結類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼 承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實例變量,并且類可以修改或增 加新的方法使之更適合特殊的需要。
(2)封裝:
我的理解:封裝,就是封裝啊,把一些你不想暴露給被人看到的東西進行封裝,不給其他人直接使用,防止出現錯誤,要修改的話必須通過get/set函數(我不知道我這樣理解是否對,但是面試官覺得我就懂些皮毛,開始問我什么基類的作用~~,好吧,我這個真的沒去研究,貌似又是C++的內容,看來我得好好看看C++了)
術語:封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。面向對象計算始于這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。
(3)多態:
我的理解:其實在做項目中,我用的最少的就是多態,除了arraylist<string>等,我真的不太清楚它是用來干什么的?我理解為類或者是對象的多種狀態!面試官從我口中就知道我對這方面沒有太多經驗,特意讓我寫一個多態的使用,List<String> = new ArrayList<String>(),當時我腦子是一片空白,不知道我應該如何寫的,于是瞎寫,他問我知道為什么用list去接不?有什么作用?表示我真的不清楚。至今我還是不太理解多態的真正意圖,知道它可以加強代碼的擴展性~~
術語:多態性是指允許不同類的對象對同一消息作出響應。多態性包括參數化多態性和包含多態性。多態性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程序函數同名問題。
JAVA入門
下面我將介紹java的一些入門性的知識,也是作為我自己在學習過程中的筆記好了,不過我的更新可能比較慢,因為我自己也在研究ARM9的,沒有很多時間來進行完整的整理,我只是拎出一部分我認為自己在學習中碰到的一些重點提煉出來給大家,我覺得我寫的東西應該適合那些有點基礎的人吧~~
首先,我在面對bool變量的時候,java中是boolean這是與C不一樣的地方,數組方面的話 int [] a = new int [] {1,2,3,4},申明和初始化也與C有很大的差別哦!然后那些控制流、循環等,我就不再一一說了,這個真的是萬變不離其中!
好了,我今天就寫到這里了,找時間我繼續寫,堅持寫出一系列來,同時我也希望大家關注我的微博哦!
MSP王寧斌ASUS
http://weibo.com/samuelwnb
當然也可以發郵箱與我進行聯系:samuel_wnb@live.com
新聞熱點
疑難解答