Java基礎部分 Day47 2019-01-06

Java基礎部分

1. Java跨平臺原理

Java通過不同的系統峰搪、不同版本、不同位數的Java虛擬機(JVM)來屏蔽不同的系統指令集差異凯旭,而對外統一的接口(Java API)概耻。對開發(fā)者而言,按照接口開發(fā)即可尽纽。部署系統則只需要在不同的環(huán)境中安裝對應版本的虛擬機即可咐蚯。

2. 搭建一個Java開發(fā)環(huán)境

  1. 下載適用開發(fā)環(huán)境的jdk安裝,配置好JAVA_HOME弄贿,java應用(eclipse、tomcat等)會依賴于這個變量矫膨。
  2. 下載安裝eclipse差凹,設置workspace的默認編碼。
  3. 下載安裝tomcat侧馅,把tomcat集成到eclipse中危尿。
  4. 安裝其他開發(fā)插件。

3. Java基礎類型馁痴、占用字節(jié)及默認值

數據類型 大幸杲俊(二進制位) 范圍 默認值
byte 1字節(jié)(8bit) -128~127 0
short 2字節(jié)(16bit) -32768~32767 0
int 4字節(jié)(32bit) -2(31) ~ 2(31)-1 0
long 8字節(jié)(64bit) -2(31) ~ 2(31)-1 0
float 4字節(jié)(32bit) -2(63) ~ 2(63)-1 0.0f
double 8字節(jié)(64bit) -2(63) ~ 2(63)-1 0.0d
char 2字節(jié)(16bit) \u0000~\uffff \u0000
boolean 1字節(jié)(1bit) true/false false

4. 面向對象的特征

面向對象的四大特征:封裝罗晕、抽象、繼承小渊、多態(tài)。

  • 封裝:將對象封裝為一個高度自治和相對封閉的個體半等,對象狀態(tài)(屬性)由這個對象自己的行為(方法)來讀取和改變。
  • 抽象:把現實生活中一些事物相似和共性之處歸為一類杀饵,忽略和當前主題無關的方面,抽象為類烁登。
  • 繼承:把一個已經存在的類所定義的內容作為自己的內容蔚舀,并且可以加入自己的內容,或者修改原來的方法使之適用于當前特殊的需要狼牺。
  • 多態(tài):父類或者接口定義的引用變量可以指向子類或者具體實現類的實例對象礼患,而程序調用的方法在運行期才動態(tài)綁定。就是引用變量所指向的具體類型實例對象的方法悄泥,也就是內存里正在運行的那個對象的方法肤粱,而不是引用變量的類型中定義的方法。

5. 裝箱與拆箱

  • 裝箱:把基本的數據類型轉換成對于的包裝類型鸥鹉。
  • 拆箱:就是把包裝類型轉換為基本數據類型庶骄。
Integer i=1;//自動裝箱,實際編譯會調用Integer.valueOf方法來裝箱
int j= i;//自動拆箱 實際在編譯調用intValue int j = i.intValue();
  • Java是面向對象的語言灸异,而基本數據類型羔飞,不具備面向對象的特性。
  • 緩存值:對象緩存褥傍,基本數據類型會有對象緩存。
Integer i=1;
Integer j=1;
i==j;//對象相等蹦狂,是因為存在緩存值對象,所以i凯楔、j指向同一個對象

6. ==和equals方法的區(qū)別

  • == 用來判斷兩個變量之間的值是否相等,
    如果是基本數據類型的變量值直接比較值邻遏,引用類型比較要比較對應的引用的內存地址的首地址虐骑。
  • equals 用來比較兩個對象是否一樣,判斷某些特征是否一樣糊饱,實際上是調用對象的equals方法進行比較颠黎。

7. String 、StringBuilder夭坪、StringBuffer的區(qū)別

  • 都是用來表示和操作字符串过椎,也就是多個字符的集合的類。
  • String 是內容不可變的字符串竞惋。底層使用的是一個不可變的字符數組(final char[]);
  • StringBuilder灰嫉、StringBuffer是內容可改變的字符串讼撒,底層使用的是可變的字符數組(沒有使用final來修飾)股耽。
  • 拼接字符串不能使用String進行拼接,要使用StringBuilder物蝙、StringBuffer來拼接。因為String會創(chuàng)建很多新對象册赛,StringBuilder、StringBuffer不會森瘪。
  • StringBuilder是線程不安全的,效率高逮栅;
    StringBuffer是線程安全的窗宇,效率低,底層有加同步鎖侥加。

8. Java中的集合

  • Java中的集合分為value蝇完、key-value(collection Map)兩種。
  • 存儲值分為List和Set
    • List 是有序的短蜕,可以重復氢架。
    • Set 是無序的岖研,不可重復的警检,根據equals和hashcode判斷,因此一個對象要存儲在Set里面拓售,必須重寫equals和hashcode的方法镶奉。
  • 存儲key-value的為Map

9. ArrayList與linkedList的區(qū)別

  • ArrayList底層使用的是數組,linkedList使用的是鏈表鸽凶。
    • 數組具有索引建峭,查詢特定的元素比較快,而插入和刪除元素比較慢(數組在內存中是一塊連續(xù)內存時亿蒸,如果插入或刪除是需要移動內存的)掌桩。
    • 鏈表不要求內存是連續(xù)的拘鞋,在當前元素下存放上一個或下一個元素的地址矢门,查詢時需要從頭部開始,一個個的查找隔躲,所以查詢效率低物延。插入時不需要移動內存只需要改吧引用指向即可,所以插入或刪除效率高浑吟。
  • 使用場景
    • ArrayList使用在查詢比較多耗溜,但是插入和刪除比較少的情況。
    • linkedList 使用在查詢比較少燎字,插入和刪除比較多的情況。

10. HashMap與HashTable的區(qū)別,及ConcurrentHashMap

  • 相同點
    • 都可以用來存儲key-value的數據
  • 不同點
    • HashMap是可以可以把null作為key或value的候衍,而hashtable是不可以的蛉鹿。
    • HashMap是線程不安全的,效率比較高榨为。hashTable是現場安全的煌茴,但是效率低蔓腐。
  • ConcurrentHashMap

    通過把整個Map分為N個Segment(類似HashTable),可以提供相同的線程安全龄句,但是效率提升N倍散罕,默認提升16倍傀蓉。

11. 實現一個拷貝文件的工具類,使用字節(jié)流還是字符流

拷貝的文件不確定是只包含字符流误甚,有可能包含字節(jié)流(圖片谱净、聲音、影像等),為考慮通用性冈钦,要使用字節(jié)流李请。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市较幌,隨后出現的幾起案子认轨,更是在濱河造成了極大的恐慌,老刑警劉巖恩急,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纪蜒,死亡現場離奇詭異,居然都是意外死亡随珠,警方通過查閱死者的電腦和手機猬错,發(fā)現死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門倦炒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人拉讯,你說我怎么就攤上這事∧Э叮” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵蜻展,是天一觀的道長铺呵。 經常有香客問我,道長片挂,這世上最難降的妖魔是什么贞盯? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任躏敢,我火速辦了婚禮,結果婚禮上件余,老公的妹妹穿的比我還像新娘。我一直安慰自己旬渠,他們只是感情好端壳,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布损谦。 她就那樣靜靜地躺著,像睡著了一般照捡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上栅炒,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機與錄音,去河邊找鬼级历。 笑死,一個胖子當著我的面吹牛玩讳,可吹牛的內容都是我干的。 我是一名探鬼主播熏纯,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼樟澜,長吁一口氣:“原來是場噩夢啊……” “哼叮盘!你這毒婦竟也來了?” 一聲冷哼從身側響起柔吼,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤愈魏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后培漏,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡桩匪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年傻昙,在試婚紗的時候發(fā)現自己被綠了彩扔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡贾惦,死狀恐怖,靈堂內的尸體忽然破棺而出碰镜,到底是詐尸還是另有隱情,我是刑警寧澤绪颖,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布柠横,位于F島的核電站,受9級特大地震影響牍氛,放射性物質發(fā)生泄漏烟阐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一悠抹、第九天 我趴在偏房一處隱蔽的房頂上張望扩淀。 院中可真熱鬧,春花似錦驻谆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至勒魔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間抚吠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工楷力, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人萧朝。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓剪勿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親厕吉。 傳聞我的和親對象是個殘疾皇子头朱,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內容

  • (一)Java部分 1龄减、列舉出JAVA中6個比較常用的包【天威誠信面試題】 【參考答案】 java.lang;ja...
    獨云閱讀 7,104評論 0 62
  • 三重:代碼、底層內存烁巫、源碼 第一階段:開發(fā)常用JavaSE基礎宠能、IDE、Maven违崇、Gradle、SVN羞延、Git、...
    guodd369閱讀 16,529評論 1 44
  • 九種基本數據類型的大小伴箩,以及他們的封裝類。(1)九種基本數據類型和封裝類 (2)自動裝箱和自動拆箱 什么是自動裝箱...
    關瑋琳linSir閱讀 1,887評論 0 47
  • 大家對“亞健康”這詞并不陌生棺蛛,不學醫(yī)的呵恢,學醫(yī)的,醫(yī)院專家等常用的詞渗钉,連世界衛(wèi)生組織這個管全世界健康的機構也不...
    七色陽光l閱讀 1,702評論 0 3
  • 晴姑娘宣布脫單消息的時候,我足足愣了一分鐘术徊,任憑她在電話那頭怎么叫喊都不理會,然后我掛下電話子寓,定了去南城的高鐵票。...
    鹿小漠童鞋閱讀 2,081評論 21 26