【程序源代碼】java 每日高頻面試題【day3】
“ 關(guān)鍵字: java 學(xué)習(xí) 每日 高頻 面試題 每日高頻面試題 ,一起沖進(jìn)大廠"
導(dǎo)讀:
大家好,我是程序源代碼,算算入行的時(shí)候我已算入行10以上的老兵了,畢業(yè)在北京北漂8年,13年回到省會(huì)石家莊,一直就在河北這塊土地上生活著?,F(xiàn)在人了快到了中年,感覺現(xiàn)在生活壓力都比較多大。夢(mèng)想著有一天能進(jìn)入大廠,實(shí)現(xiàn)一個(gè)大廠夢(mèng)。其實(shí)我感覺大家應(yīng)該和我一樣,都想有進(jìn)入大廠工作畢竟生活需要理想,還需要茍且(掙高工資),其實(shí)現(xiàn)在大廠并不是特別容易進(jìn),作為一名好多年的Java選手,其實(shí)我感覺進(jìn)入大廠,首先要把自己的技術(shù)和面試這兩個(gè)重要點(diǎn)做好。
? 主要涵蓋的知識(shí)點(diǎn)我簡(jiǎn)單列了一下,計(jì)劃從這些方面出發(fā)進(jìn)行學(xué):Java基礎(chǔ)知識(shí)、集合容器、并發(fā)編程、JVM、Spring全家桶、MyBatis等ORMapping框架、MySQL數(shù)據(jù)庫、Redis緩存、RabbitMQ消息隊(duì)列、Linux操作技巧等。
01
—
int 和integer的區(qū)別?
java是面向?qū)ο蟮木幊陶Z言,為了編程方便java引入了基本數(shù)據(jù)類型(8種:byte/short/int/long/float/double/boolean/char)。但為了操作這8種數(shù)據(jù)類型java從5開始引入了對(duì)應(yīng)的包裝類型,通過自動(dòng)拆箱、裝箱實(shí)現(xiàn)每種類型間的轉(zhuǎn)換。
public class Main<intger> {
public static void main(String[] args) {
int a = 1;
Integer b = new Integer(1);
Integer c = 1;
System.out.println(a==b);//true
System.out.println(c==b);//flase
System.out.println(a==c);//true
}
}02
—
ArrayList 和 LinkedList的區(qū)別是什么?
ArrayList :基于動(dòng)態(tài)數(shù)組,它需要連接內(nèi)存存儲(chǔ)。它比較適合于下標(biāo)訪問,它一般會(huì)聲明一個(gè)固定長(zhǎng)度。
LinkedList:基于鏈表。它可以分散存儲(chǔ)到內(nèi)存。它比較適合于數(shù)據(jù)插入和刪除。不適合于查詢。遍歷必須使用iterator不能使用for循環(huán)。因?yàn)閒or時(shí)它是從頭到尾進(jìn)行一一遍歷的,這個(gè)狀態(tài)下非常消耗性能。同時(shí)它在插入對(duì)象時(shí)需要?jiǎng)?chuàng)建大量的node對(duì)象。
一般在實(shí)際使用時(shí)建議使用ArrayList ;因?yàn)?strong style="font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;font-size: 16px;orphans: 4;text-align: start;white-space: pre-wrap;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;">ArrayList 可以通過固定長(zhǎng)度,同時(shí)結(jié)合使用尾部插入法,提高插入性能。
03
—
線程的創(chuàng)建方法有幾種?
1、繼承Tread 創(chuàng)建線程實(shí)例,同時(shí)調(diào)用start()方法來啟動(dòng)線程。
//定義一個(gè)繼承Thread類的子類
class SomeThead extends Thraad
{
public void run(){}
}
//構(gòu)造子類的一個(gè)對(duì)象:
SomeThread oneThread = new SomeThread();
//啟動(dòng)線程:
oneThread.start();
2、實(shí)現(xiàn)runnable 接口,但實(shí)現(xiàn)接口只是創(chuàng)建了一個(gè)可執(zhí)行的任務(wù),還需要一個(gè)線程對(duì)象才能啟動(dòng)線程。
class SomeRunnable implements Runnable
{
public void run()
{
//do something here
}
}
//創(chuàng)建一個(gè)類對(duì)象:
Runnable oneRunnable = new SomeRunnable();
//由Runnable創(chuàng)建一個(gè)Thread對(duì)象:
Thread oneThread = new Thread(oneRunnable);
//啟動(dòng)線程:
oneThread.start();
3、實(shí)現(xiàn)callable接口
Callable接口(也只有一個(gè)方法)定義如下:
public interface Callable<V>
{
V call() throws Exception;
}
//創(chuàng)建實(shí)現(xiàn)Callable接口的類SomeCallable<Integer>(略);
//創(chuàng)建一個(gè)類對(duì)象:
Callable<Integer> oneCallable = new SomeCallable<Integer>()
//由Callable<Integer>創(chuàng)建一個(gè)FutureTask<Integer>對(duì)象:
//FutureTask<Integer>是一個(gè)包裝器,它通過接受Callable<Integer>來創(chuàng)建,它同時(shí)實(shí)現(xiàn)了Future和Runnable接口。
FutureTask<Integer> oneTask = new FutureTask<Integer>(oneCallable);
//由FutureTask<Integer>創(chuàng)建一個(gè)Thread對(duì)象:
Thread oneThread = new Thread(oneTask);
//啟動(dòng)線程:
oneThread.start();
04
—
聯(lián)
方
式
公眾號(hào)ID: itcode
微信ID: itcoder
免
聲
明
—————————————

———————

————————
