資源描述:
《2019京東java》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、在軟件開(kāi)發(fā)過(guò)程中,我們可以采用不同的過(guò)程模型,下列有關(guān)?增量模型描述正確的是()是一種線性開(kāi)發(fā)模型,具有不可回溯性把待開(kāi)發(fā)的軟件系統(tǒng)模塊化,將每個(gè)模塊作為一個(gè)增量組件,從而分批次地分析、設(shè)計(jì)、編碼和測(cè)試這些增量組件適用于已有產(chǎn)品或產(chǎn)品原型(樣品),只需客戶化的工程項(xiàng)目軟件開(kāi)發(fā)過(guò)程每迭代一次,軟件開(kāi)發(fā)又前進(jìn)一個(gè)層次解析:增量模型是把待開(kāi)發(fā)的軟件系統(tǒng)模塊化,將每個(gè)模塊作為一個(gè)增量組件,從而分批次地分析、設(shè)計(jì)、編碼和測(cè)試這些增量組件。運(yùn)用增量模型的軟件開(kāi)發(fā)過(guò)程是遞增式的過(guò)程。相對(duì)于瀑布模型而言,采用增量模型進(jìn)行開(kāi)發(fā),開(kāi)發(fā)人員不需要一次性地把整個(gè)軟件產(chǎn)品提交給用戶,而是可以分批次進(jìn)行提交。2、下面有關(guān)值類型和引用類型描述正確的是()?值類型的變量賦值只是進(jìn)行數(shù)據(jù)復(fù)制,創(chuàng)建一個(gè)同值的新對(duì)象,而引用類型變量賦值,僅僅是把對(duì)象的引用的指針賦值給變量,使它們共用一個(gè)內(nèi)存地址。值類型數(shù)據(jù)是在棧上分配內(nèi)存空間,它的變量直接包含變量的實(shí)例,使用效率相對(duì)較高。而引用類型數(shù)據(jù)是分配在堆上,引用類型的變量通常包含一個(gè)指向?qū)嵗闹羔?,變量通過(guò)指針來(lái)引用實(shí)例。引用類型一般都具有繼承性,但是值類型一般都是封裝的,因此值類型不能作為其他任何類型的基類。值類型變量的作用域主要是在棧上分配內(nèi)存空間內(nèi),而引用類型變量作用域主要在分配的堆上。解析:B錯(cuò)在,值類型變量不包含實(shí)例,實(shí)例是針對(duì)于對(duì)象的概念,當(dāng)類實(shí)例化為對(duì)象的時(shí)候,這個(gè)時(shí)候可以稱為是類的一個(gè)實(shí)例。同時(shí),效率比較高這個(gè)概念比較模糊。C錯(cuò)在,封裝的概念也是針對(duì)類而言的,值類型數(shù)據(jù)不存在封裝概念。D錯(cuò)在,值類型變量可以作為成員變量存儲(chǔ)在堆里,例如一個(gè)ClassA中包含一個(gè)intvalue,那么value是作為成員變量存儲(chǔ)在堆中的。D選項(xiàng)表述有漏洞。3、如何在多線程中避免發(fā)生死鎖?
1允許進(jìn)程同時(shí)訪問(wèn)某些資源。允許進(jìn)程強(qiáng)行從占有者那里奪取某些資源。進(jìn)程在運(yùn)行前一次性地向系統(tǒng)申請(qǐng)它所需要的全部資源。把資源事先分類編號(hào),按號(hào)分配,使進(jìn)程在申請(qǐng),占用資源時(shí)不會(huì)形成環(huán)路。解析:死鎖:在多道程序設(shè)計(jì)環(huán)境下,多個(gè)進(jìn)程可能競(jìng)爭(zhēng)一定數(shù)量的資源,。一個(gè)進(jìn)程申請(qǐng)資源,如果資源不可用,那么進(jìn)程進(jìn)入等待狀態(tài)。如果所申請(qǐng)的資源被其他等待進(jìn)程占有,那么該等待的進(jìn)程有可能無(wú)法改變狀態(tài),這種情況下稱之為死鎖。死鎖的四個(gè)條件:互斥:至少有一個(gè)資源必須處在非共享模式,即一次只能有一個(gè)進(jìn)程使用,如果另一進(jìn)程申請(qǐng)?jiān)撡Y源,那么申請(qǐng)進(jìn)程必須延遲直到該資源釋放為止。占有并等待:一個(gè)進(jìn)程必須占有至少一個(gè)資源,并等待另一個(gè)資源,而該資源為其他進(jìn)程所占有。非搶占:資源不能被搶占。循環(huán)等待:有一組進(jìn)程{P0,P1,...Pn},P0等待的資源被P1占有,P1等待的資源被P2占有,Pn-1等待的資源被Pn占有,Pn等待的資源被P0占有。4、以下為求0到1000以內(nèi)所有奇數(shù)和的算法,從中選出描述正確的算法(?)①s=0;②i=1;③s=s+i;④i=i+2;⑤如果i≤1000,則返回③;⑥結(jié)束①s=0;②i=1;③i=i+2;④s=s+i;⑤如果i≤1000,則返回③;⑥結(jié)束①s=1;②i=1;③s=s+i;④i=i+2;⑤如果i≤1000,則返回③;⑥結(jié)束①s=1;②i=1;③i=i+2;④s=s+i;⑤如果i≤1000,則返回③;⑥結(jié)束解析:D算的是1+3+。。。+10001,A是0+1+3+。。。+999,就是D多算了一個(gè)5、關(guān)于遞歸法的說(shuō)法不正確的是(?)程序結(jié)構(gòu)更簡(jiǎn)潔占用CPU的處理時(shí)間更多要消耗大量的內(nèi)存空間,程序執(zhí)行慢,甚至無(wú)法執(zhí)行遞歸法比遞推法的執(zhí)行效率更高解析:遞歸就是一層一層的調(diào)用函數(shù)進(jìn)棧,會(huì)大量存儲(chǔ)重復(fù)的數(shù)據(jù),占用大量?jī)?nèi)存,且會(huì)有棧溢出的可能。而遞推就是不用存儲(chǔ)重復(fù)的數(shù)據(jù),從底層獲得了數(shù)據(jù)直接遞給上一層即可。
26、字符串”ABCD”和字符串”DCBA”進(jìn)行比較,如果讓比較的結(jié)果為真,應(yīng)選用關(guān)系運(yùn)算符()><=>=解析:比較的時(shí)候比的是ASCII碼,從第一位開(kāi)始比,如果第一位能比較出誰(shuí)大誰(shuí)小則直接返回,若相等,比較下一個(gè)字符,因此選B7、以下運(yùn)算符中運(yùn)算優(yōu)先級(jí)最高的是(?)+OR>\解析:?以上是我整理的運(yùn)算符優(yōu)先級(jí),數(shù)字越小表示優(yōu)先級(jí)越高。在這里我選的是+號(hào),如果+號(hào)表示的是正號(hào)的話那么優(yōu)先級(jí)是大于除/號(hào)的,這題目略微的不嚴(yán)謹(jǐn),望周知。8、采用哪種遍歷方法可唯一確定一棵二叉樹(shù)?(??)給定一棵二叉樹(shù)的先序和后序遍歷序列給定一棵二叉樹(shù)的后序和中序遍歷序列給定先序、中序和后序遍歷序列中的任意一個(gè)即可給定一棵二叉樹(shù)的先序和中序遍歷序列解析:前序加中序?或?后序加中序都是可以的。
39、已知小頂堆:{51,32,73,23,42,62,99,14,24,3943,58,65,80,120},請(qǐng)問(wèn)62對(duì)應(yīng)節(jié)點(diǎn)的左子節(jié)點(diǎn)是(沒(méi)有正確答案)99733943120解析:10、若串S=”UP!UP!JD”,則其子串的數(shù)目33373935解析:一個(gè)八個(gè)字符串公式n(n+1)/2+111、一顆二叉樹(shù)的葉子節(jié)點(diǎn)有5個(gè),出度為1的結(jié)點(diǎn)有3個(gè),該二叉樹(shù)的結(jié)點(diǎn)總個(gè)數(shù)是?11121314解析:因?yàn)槭嵌鏄?shù),所以度不能大于2。【度(子節(jié)點(diǎn)個(gè)數(shù))】。5個(gè)葉子節(jié)點(diǎn),三個(gè)度為1,則有上一層有4個(gè),葉子節(jié)點(diǎn)數(shù)=度為2的節(jié)點(diǎn)個(gè)數(shù)+1=5;所以度為2的節(jié)點(diǎn)數(shù)為4;總節(jié)點(diǎn)數(shù)=度為1的節(jié)點(diǎn)數(shù)+度為2的節(jié)點(diǎn)數(shù)+葉子節(jié)點(diǎn)數(shù)=3+4+5=12。12、權(quán)值分別為9、3、2、8的結(jié)點(diǎn),構(gòu)造一棵哈夫曼樹(shù),該樹(shù)的帶權(quán)路徑長(zhǎng)度是?36404546解析:計(jì)算帶權(quán)路徑長(zhǎng)度:結(jié)點(diǎn)的帶權(quán)路徑長(zhǎng)度為從根結(jié)點(diǎn)到該結(jié)點(diǎn)之間的路徑長(zhǎng)度與該結(jié)點(diǎn)的權(quán)的乘積=3*2+3*3+2*8+1*9=4013、在()中,只要指出表中任何一個(gè)結(jié)點(diǎn)的位置,就可以從它出發(fā)依次訪問(wèn)到表中其他所有結(jié)點(diǎn)。
4線性單鏈表雙向鏈表線性鏈表循環(huán)鏈表解析:循環(huán)鏈表只要沿一個(gè)方向一直走下去就可以遍歷。14、打電話使用的數(shù)據(jù)傳輸方式是(),手機(jī)上網(wǎng)使用的數(shù)據(jù)傳輸方式是()?電路交換,電路交換電路交換,分組交換分組交換,分組交換分組交換,電路交換解析:電路交換有預(yù)留,且分配一定空間,提供專用的網(wǎng)絡(luò)資源,提供有保證的服務(wù),應(yīng)用于電話網(wǎng);分組交換無(wú)預(yù)留,且不分配空間,存在網(wǎng)絡(luò)資源爭(zhēng)用,提供有無(wú)保證的服務(wù)。分組交換可用于數(shù)據(jù)報(bào)網(wǎng)絡(luò)和虛電路網(wǎng)絡(luò)。我們常用的Internet就是數(shù)據(jù)報(bào)網(wǎng)絡(luò),單位是Bit。15、后退N幀協(xié)議的發(fā)送窗口大小是(),接收窗口的大小是()?=1,=1=1,>1>1,>1>1,=1解析:滑動(dòng)窗口協(xié)議有:1、停止等待協(xié)議,發(fā)送窗口=1,接受窗口=1;2、退后N幀協(xié)議,發(fā)送>1,接收=1;3、選擇重傳協(xié)議,發(fā)送>1,接收>1;16、網(wǎng)絡(luò)管理員把優(yōu)盤(pán)上的源代碼給程序員參考,但要防止程序誤刪除或修改,以下正確的加載方式是(??????)
5mount-odefaults/dev/sdb1/toolsmount-r/dev/sdb1/toolsmount-oro/dev/sdb1/toolsmount-oro/dev/sdb/tools解析:-r:將文件系統(tǒng)作為只讀文件系統(tǒng)進(jìn)行安裝,而不考慮它先前在/etc/filesystems文件中指定的內(nèi)容或者先前的任何命令行選項(xiàng)。ro:將已安裝的文件指定為只讀文件,而不考慮它先前在/etc/filesystems文件中指定的選項(xiàng)或者先前的任何命令行選項(xiàng)。缺省值是rw。17、重復(fù)的數(shù)據(jù),會(huì)增加磁盤(pán)空間的占有率,延長(zhǎng)操作數(shù)據(jù)的時(shí)間??梢允褂靡?guī)范化處理數(shù)據(jù)冗余,以下對(duì)符合第一范式的表述正確的是:非鍵屬性和鍵(主鍵)屬性間沒(méi)有傳遞依賴非鍵屬性和鍵(主鍵)屬性間沒(méi)有部分依賴表中不應(yīng)該有重復(fù)組。列重復(fù)拆成另外一張表;行重復(fù)拆成多行一個(gè)表中的列值與其他表中的主鍵匹配解析:指數(shù)據(jù)庫(kù)表的每一列(即每個(gè)屬性)都是不可分割的基本數(shù)據(jù)項(xiàng),同一列中不能有多個(gè)值,即實(shí)體中的某個(gè)屬性不能有多個(gè)值或者不能有重復(fù)的屬性。簡(jiǎn)而言之,第一范式就是無(wú)重復(fù)的列。18、以下哪條SQL語(yǔ)句可以返回table1中的全部的key:selecttabel1.keyfromtable1jointabel2ontable1.key=table2.keyselecttabel1.keyfromtable1rightouterjointabel2ontable1.key=table2.keyselecttabel1.keyfromtable1leftsemijointabel2ontable1.key=table2.keyselecttabel1.keyfromtable1leftouterjointabel2ontable1.key=table2.key解析:由于需要返回table1中的全部的key,則需要左連接,而leftsemijoin表示只打印出左邊表中的key,但前提是左表中的key在右表中存在,否則會(huì)過(guò)濾掉
619、Mysql中表user的建表語(yǔ)句如下,CREATE?TABLE?`user`?(??`id`?bigint(20)?NOT?NULL?AUTO_INCREMENT?COMMENT?'主鍵Id',??`name`?varchar(255)?DEFAULT?NULL?COMMENT?'名稱',??`age`?int(11)?DEFAULT?NULL?COMMENT?'年齡',??`address`?varchar(255)?DEFAULT?NULL?COMMENT?'地址',??`created_time`?datetime?DEFAULT?NULL?COMMENT?'創(chuàng)建時(shí)間',??`updated_time`?datetime?DEFAULT?NULL?COMMENT?'更新時(shí)間',??PRIMARY?KEY?(`id`),??KEY?`idx_com1`?(`name`,`age`,`address`))?ENGINE=InnoDB?DEFAULT?CHARSET=utf8?COMMENT='用戶表';以下哪個(gè)查詢語(yǔ)句沒(méi)有使用到索引idx_com1?select*fromuserwherename='張三'andage=25andaddress='北京大興區(qū)';select*fromuserwherename='張三'andaddress='北京大興區(qū)';select*fromuserwhereage=25andaddress='北京大興區(qū)';select*fromuserwhereaddress='北京大興區(qū)'andage=25andname='張三'解析:索引的最左匹配特性:當(dāng)b+樹(shù)的數(shù)據(jù)項(xiàng)是復(fù)合的數(shù)據(jù)結(jié)構(gòu),比如(name,age,sex)的時(shí)候,b+數(shù)是按照從左到右的順序來(lái)建立搜索樹(shù)的,比如當(dāng)(張三,20,F)這樣的數(shù)據(jù)來(lái)檢索的時(shí)候,b+樹(shù)會(huì)優(yōu)先比較name來(lái)確定下一步的所搜方向,如果name相同再依次比較age和sex,最后得到檢索的數(shù)據(jù);但當(dāng)(20,F)這樣的沒(méi)有name的數(shù)據(jù)來(lái)的時(shí)候,b+樹(shù)就不知道下一步該查哪個(gè)節(jié)點(diǎn)20、public?class?Main?{????private?static?int?x?=?10;????private?static?Integer?y?=?10;????public?static?void?updateX(int?value)?{
7????????value?=?3?*?value;????}????public?static?void?updateY(Integer?value)?{????????value?=?3?*?value;????}????public?static?void?main(String[]?args)?{????????updateX(x);????????updateY(y);????}}執(zhí)行以上程序后,x和y的值分別是多少?10,1010,3030,1030,30解析:形參名value和字段x,字段y不同,運(yùn)算改變了內(nèi)存中value,但是xy沒(méi)有改變。當(dāng)方法updateX的形參名改為x,此時(shí)運(yùn)算會(huì)改變內(nèi)存中x的值,是30,y同理。總結(jié):僅當(dāng)形參名和字段名一樣,字段值才變。(本題一個(gè)叫value,一個(gè)叫x/y,不一樣,所以不變)21、JAVA的類加載期負(fù)責(zé)整個(gè)生命周期內(nèi)的class的初始化和加載工作,就虛擬機(jī)的規(guī)范來(lái)說(shuō),以下代碼會(huì)輸出什么結(jié)果?public?class?Test?{????public?static?void?main(String[]?args)?{????????System.out.println(Test2.a);????}
8}class?Test2{????public?static?final?String?a="JD";????static?{????????System.out.print("OK");????}}只有JD只有OK輸出JDOK輸出OKJD解析:22、繼承是JAVA語(yǔ)言的一個(gè)特性,針對(duì)類的繼承,虛擬機(jī)會(huì)如何進(jìn)行父類和子類的初始化加載呢?請(qǐng)閱讀代碼選擇出該段代碼的輸入結(jié)果。public?class?Test?{????public?static?void?main(String[]?args)?{????????System.out.print(B.c);????}}
9class?A?{????public?static?String?c?=?"C";????static?{????????System.out.print("A");????}}class?B?extends?A{????static?{????????System.out.print("B");????}}ACABCCBC解析:類加載的初始化階段會(huì)執(zhí)行靜態(tài)塊的代碼,通過(guò)子類去調(diào)用父類的靜態(tài)變量子類不會(huì)被初始化。23、根據(jù)類加載器加載類的初始化原理,推斷以下代碼的輸入結(jié)果為?public?class?Test?{????public?static?void?main(String[]?args)?throws?Exception{??????ClassLoader?classLoader=ClassLoader.getSystemClassLoader();??????Class?clazz=classLoader.loadClass("A");??????System.out.print("Test");??????clazz.forName("A");
10????}}class?A{????static?{????????System.out.print("A");????}}TestAATestAATestTest解析:用ClassLoader加載類,是不會(huì)導(dǎo)致類的初始化(也就是說(shuō)不會(huì)執(zhí)行方法).Class.forName(...)加載類,不但會(huì)將類加載,還會(huì)執(zhí)行會(huì)執(zhí)行類的初始化方法。24、public?class?Main?{????public?static?void?main(String[]?args)?{????????System.out.print(fun1());????}????public?static?String?fun1()?{????????try?{????????????System.out.print("A");????????????return?fun2();????????}?finally?{????????????System.out.print("B");
11????????}????}????public?static?String?fun2()?{????????System.out.print("C");????????return?"D";????}}執(zhí)行以上程序后,輸出結(jié)果正確的是?ABCDACDBACBD不確定解析:try中執(zhí)行完return的語(yǔ)句后,不返回,執(zhí)行finally塊,finally塊執(zhí)行結(jié)束后,返回到try塊中,返回try塊中最后return的值25、import?java.util.ArrayList;import?java.util.List;public?class?Main?{????public?static?void?main(String[]?args)?{????????List?list?=?new?ArrayList<>();????????for(int?i=0;i<100;i++){????????????list.add("a");????????}????}}JDK1.8中,執(zhí)行以上程序后,該list進(jìn)行了幾次擴(kuò)容?
124567解析:初始10,每次擴(kuò)容為原先的1.5倍26、import?java.util.concurrent.ArrayBlockingQueue;import?java.util.concurrent.ThreadPoolExecutor;import?java.util.concurrent.TimeUnit;public?class?Main?{????public?static?void?main(String[]?args)?{????????ThreadPoolExecutor?executor?=?new?ThreadPoolExecutor(5,?10,?15,?TimeUnit.SECONDS,????????????????new?ArrayBlockingQueue(5),?new?ThreadPoolExecutor.CallerRunsPolicy());????}}線程池executor在空閑狀態(tài)下的線程個(gè)數(shù)是?0510不確定解析:前三個(gè)參數(shù):核心線程有5個(gè),最大線程數(shù)是10個(gè),keepAliveTime是15s,如果線程池中的線程大于5,那么超15s的空閑線程就會(huì)被結(jié)束,也就是說(shuō),一定會(huì)保持5個(gè)線程不會(huì)被結(jié)束。當(dāng)所有任務(wù)完成后,會(huì)保持5個(gè)空閑的線程27、public?class?Main{????public?static?ArrayList?list?=?new?ArrayList<>();
13????public?static?void?main(String[]?args)?throws?Exception{????????Thread?t1?=?new?Main().new?MyThread();????????Thread?E10:E64t2?=?new?Thread(new?Main().new?MyRunnable());????????t1.setPriority(3);????????t2.setPriority(8);????????t1.start();????????t2.start();????????t2.join();????????for?(int?i?=?0;?i?100000;?i++)?{????????????i++;????????}????????list.add("main");????????????????t1.join();????????for?(String?s?:?list)?{????????????System.out.println(s);????????}????}????class?MyThread?extends?Thread{????????@Override????????public?void?run(){????????????for?(int?i?=?0;?i?100000;?i++)?{????????????????i++;????????????}
14????????????list.add("Thread?1");????????}????}????class?MyRunnable?implements?Runnable{????????@Override????????public?void?run(){????????????for?(int?i?=?0;?i?100000;?i++)?{????????????????Thread.yield();????????????????i++;????????????}????????????list.add("Thread?2");????????}????}}Thread1Thread2mainThread2Thread1mainThread2mainThread1無(wú)法判斷解析:Java線程中的Thread.yield()方法,譯為線程讓步。顧名思義,就是說(shuō)當(dāng)一個(gè)線程使用了這個(gè)方法之后,它就會(huì)把自己CPU執(zhí)行的時(shí)間讓掉,讓自己或者其它的線程運(yùn)行,注意是讓自己或者其他線程運(yùn)行,并不是單純的讓給其他線程。????yield()的作用是讓步。它能讓當(dāng)前線程由“運(yùn)行狀態(tài)”進(jìn)入到“就緒狀態(tài)”,從而讓其它具有相同優(yōu)先級(jí)的等待線程獲取執(zhí)行權(quán);但是,并不能保證在當(dāng)前線程調(diào)用yield()之后,其它具有相同優(yōu)先級(jí)的線程就一定能獲得執(zhí)行權(quán);也有可能是當(dāng)前線程又進(jìn)入到“運(yùn)行狀態(tài)”繼續(xù)運(yùn)行!???舉個(gè)例子:一幫朋友在排隊(duì)上公交車,輪到Y(jié)ield的時(shí)候,他突然說(shuō):我不想先上去了,咱們大家來(lái)競(jìng)賽上公交車。然后所有人就一塊沖向公交車,
15有可能是其他人先上車了,也有可能是Yield先上車了。???但是線程是有優(yōu)先級(jí)的,優(yōu)先級(jí)越高的人,就一定能第一個(gè)上車嗎?這是不一定的,優(yōu)先級(jí)高的人僅僅只是第一個(gè)上車的概率大了一點(diǎn)而已,最終第一個(gè)上車的,也有可能是優(yōu)先級(jí)最低的人。并且所謂的優(yōu)先級(jí)執(zhí)行,是在大量執(zhí)行次數(shù)中才能體現(xiàn)出來(lái)的。28、系統(tǒng)管理員編寫(xiě)掃描臨時(shí)文件的shell程序tmpsc.sh,?測(cè)試該程序時(shí)提示拒絕執(zhí)行,解決的方法有(??????)chmod644tmpsc.shchmod755tmpsc.shchmoda+xtmpsc.shchmodu+xtmpsc.sh29、在bash編程中,算術(shù)比較大于、大于等于的運(yùn)算符是(??????)>>=gegt解析:EQ就是EQUAL等于、NE就是NOTEQUAL不等于、GT就是GREATERTHAN大于、LT就是LESSTHAN小于、GE就是GREATERTHANOREQUAL大于等于、LE就是LESSTHANOREQUAL小于等于30、如何獲取上一條命令執(zhí)行的返回碼$!0$?$#解析:$0:Shell本身的文件名。$!:Shell最后運(yùn)行的后臺(tái)Process的PID(后臺(tái)運(yùn)行的最后一個(gè)進(jìn)程的進(jìn)程ID號(hào))。$?:最后運(yùn)行的命令的結(jié)束代碼(返回值)即執(zhí)行上一個(gè)指令的返回值(顯示最后命令的退出狀態(tài)。0表示沒(méi)有錯(cuò)誤,其他任何值表明有錯(cuò)誤)。$#:添加到Shell的參數(shù)個(gè)數(shù)。31、Shell?腳本(shell?script),是一種為?shell?編寫(xiě)的腳本程序?,F(xiàn)有一個(gè)test.sh文件,且有可執(zhí)行權(quán)限,文件中內(nèi)容為:#!/bin/bash
16aa='Hello?World?!'請(qǐng)問(wèn)下面選項(xiàng)中哪個(gè)能正常顯示Hello?World?!shtest.sh>/dev/null1&&echo$aa./test.sh>/dev/null1&&echo$aabashtest.sh>/dev/null1&&echo$aa../test.sh>/dev/null1&&echo$aa解析:點(diǎn)斜杠,點(diǎn)空格斜杠,兩者都可以執(zhí)行腳本,但是:第一種方式是在子進(jìn)程中運(yùn)行腳本,第二種方式是在當(dāng)前進(jìn)程中執(zhí)行腳本。非當(dāng)前進(jìn)程是看不到aa變量的————————————————