欧洲免费无码视频在线,亚洲日韩av中文字幕高清一区二区,亚洲人成人77777网站,韩国特黄毛片一级毛片免费,精品国产欧美,成人午夜精选视频在线观看免费,五月情天丁香宗合成人网

薈聚奇文、博采眾長(zhǎng)、見(jiàn)賢思齊
當(dāng)前位置:公文素材庫(kù) > 計(jì)劃總結(jié) > 工作總結(jié) > 第一次月考總結(jié)與反思

第一次月考總結(jié)與反思

網(wǎng)站:公文素材庫(kù) | 時(shí)間:2019-05-26 20:35:42 | 移動(dòng)端:第一次月考總結(jié)與反思

第一次月考總結(jié)與反思

擴(kuò)展閱讀:java中 null和“”的區(qū)別詳解

null和""的區(qū)別問(wèn)題一:

null和""的區(qū)別Strings=null;

string.trim()就會(huì)拋出為空的exceptionStrings="";

string.trim()就不會(huì)拋,為什么?答:

NULL代表聲明了一個(gè)空對(duì)象,根本就不是一個(gè)字符串。

""代表聲明了一個(gè)對(duì)象實(shí)例,這個(gè)對(duì)象實(shí)例的值是一個(gè)長(zhǎng)度為0的空字符串。

NULL代表聲明了一個(gè)空對(duì)象,對(duì)空對(duì)象做任何操作都不行的,除了=和==""是一個(gè)字符串了,只是這個(gè)字符串里面沒(méi)有內(nèi)容了

Strings=null;只是定義了一個(gè)句柄,也就是說(shuō)你有了個(gè)引用,但是這個(gè)引用未指鄉(xiāng)任何內(nèi)存空間

Strings="";這個(gè)引用已經(jīng)指向了一塊是空字符串的內(nèi)存空間,是一個(gè)實(shí)際的東東了,所以你可以對(duì)它操作,而不用擔(dān)心什么了

你說(shuō)數(shù)字0和沒(méi)有是不是一種概念啊??道理一樣的

而且,null可以賦值給任何對(duì)象.""就不行了.

這里""和NULL絕對(duì)是兩個(gè)概念

""代表一個(gè)字符串存在,它的值就是“”

NULL代表字符串根本沒(méi)有實(shí)際的值,你并不知道它是什么。。。

哦,我明白了,意思就是Stringstring=null跟Stringstring;是一回事兒

null是空對(duì)象""是空字符串

Strings=null;//null是未分配堆內(nèi)存空間

Stringa;//分配了一個(gè)內(nèi)存空間,沒(méi)存入任何對(duì)象Stringa="";//分配了一個(gè)內(nèi)存空間,存了一個(gè)字符串對(duì)象

問(wèn)題二:

Strings;和Strings=null;和Strings="a";有什么區(qū)別?

針對(duì)這三種情況,使用out.println(s);的時(shí)候,第一個(gè)會(huì)出現(xiàn)異常,第二個(gè)會(huì)輸出null.第三個(gè)則會(huì)輸出a.

這是為什么呢?這三句聲明語(yǔ)句,各自作了什么呢?答:

第一個(gè)只是定義了一個(gè)String類(lèi)型變量s,并沒(méi)有給它賦初值,在Java中,默認(rèn)在使用一個(gè)變量的時(shí)候必須賦予它初值(降低風(fēng)險(xiǎn))。第二個(gè)和第三個(gè)都定義了String類(lèi)型變量s,并賦予它初值,只不過(guò)第二個(gè)賦予的值為null(空)罷了

主要要理解的是Strings;s為一個(gè)引用~~它不是對(duì)象第一個(gè)是沒(méi)有初始化的引用;第二個(gè)為空引用;

第三個(gè)是在字符串池里寫(xiě)入一個(gè)字符"a",然后用s指向它。另外,

Strings="a"和Strings=newString("a");是有本質(zhì)上的區(qū)別的前者是在字符串池里寫(xiě)入一個(gè)字符"a",然后用s指向它;后者是在堆上創(chuàng)建一個(gè)內(nèi)容為"a"的字符串對(duì)象。

Stringstr="aaa";//于棧上分配內(nèi)存Stringstr=newString("aaa");//于堆上分配內(nèi)存

Strings;系統(tǒng)會(huì)自動(dòng)賦值null

Strings;只是給s分配一個(gè)內(nèi)存空間

Strings=null;是分配的空間中存儲(chǔ)的值為空值

Strings="a";這句就不用我多說(shuō)了分配的空間的值為字符a

問(wèn)題三:

聲明了一個(gè)stringa;變量

在以后的判斷中,a==""和a==null有何不同?答:

如果沒(méi)有給a賦過(guò)值,a==""會(huì)導(dǎo)致異常。

在實(shí)際處理時(shí),往往認(rèn)為""和null代表相同的含義,即都代表無(wú)值。此時(shí)建議用如下語(yǔ)法:if(a==null||a==""){}

如果a為null,就不會(huì)執(zhí)行后面的判斷,直接返回true。

null是用來(lái)判斷引用類(lèi)型是否分配了存儲(chǔ)空間""是針對(duì)字符串的;

string類(lèi)型實(shí)際上是字符串指針,也即是一個(gè)引用類(lèi)型所以如果沒(méi)有給a賦過(guò)值,a==""會(huì)導(dǎo)致異常

所以if(a==null||a==""){}這種寫(xiě)法也是正確的

問(wèn)題四:Stringabc=null;Stringabc="";Stringabc;三種寫(xiě)法有什么區(qū)別?答:

1:創(chuàng)建一個(gè)空字符串對(duì)象,

2:創(chuàng)建一個(gè)字符串為空的字符串對(duì)象。

3:聲明一個(gè)字符串對(duì)象,但并沒(méi)有分配內(nèi)存,而1,2已經(jīng)分配了內(nèi)存

對(duì)于最后一種表示,你不能if(abc==null),或者intlength=abc.length();編譯的時(shí)候會(huì)提示可能沒(méi)有初始化.

Stringabc=null;Stringabc="";一般推薦使用第二種第一種abc指向null,很多時(shí)候要判斷字符串是否為空時(shí),容易漏掉這種情況,在調(diào)用String的相關(guān)方法的時(shí)候就會(huì)出錯(cuò)

第二種則相對(duì)簡(jiǎn)單,String的方法都可以用,判斷的時(shí)候也不會(huì)出錯(cuò)

1)Stringabc=null;2)Stringabc;3)Stringa="";4)Stringb="";

5)Stringc=newString("");6)Stringd=newString("");//1)等于2),和C語(yǔ)言不同,JAVA為安全原因不允許一個(gè)懸掛引用,沒(méi)有賦值的引用地址一律自動(dòng)賦值為NULL,以防止訪問(wèn)到任意內(nèi)存

//3)和4)中,變量a和b將會(huì)指向同一內(nèi)存地址(""的地址)

//5)和6)中,變量c和d不會(huì)指向同一地址,而是兩個(gè)""內(nèi)容的地址,并且和a,b不同,實(shí)際上,3)和4)相當(dāng)于newString("").intern().

//String類(lèi)維護(hù)著一個(gè)字符串池,對(duì)于像3)和4)這樣的賦值方法,String會(huì)在這個(gè)池中查找字符串是否已經(jīng)在池中,如果在,就直接指向該地址,

如果不在,生成一個(gè)實(shí)例放入池中再指向那個(gè)地址,可見(jiàn)對(duì)于同樣內(nèi)容的字符串多次引用時(shí)3)4)的方法要比5)6)的方法剩內(nèi)存,之所以這樣做,是

因?yàn)镾tring是一個(gè)內(nèi)容不可變的量,運(yùn)用的是設(shè)計(jì)模式GOF.FlyWeight

但有個(gè)關(guān)鍵的一點(diǎn),沒(méi)有人說(shuō)到,這就是:

Strings;在什么情況下可以等同于Strings=null;而在什么情況下又不等同?!考慮下面的代碼://StringTest.java

publicclassStringTest{staticStrings;//*

publicstaticvoidmain(String[]args){//Strings;//**System.out.println(s);}}

編譯并運(yùn)行上面的代碼,將打印null。

可見(jiàn)標(biāo)有*號(hào)的行是自動(dòng)初始化了的(s被自動(dòng)初始化為null)。

而如果把標(biāo)有**號(hào)的行取消注釋,代碼將不能通過(guò)編譯,這是因?yàn)檫@行定義的是本地變量,而本地變量是不會(huì)自動(dòng)初始化的。由此得出結(jié)論:

在成員變量的定義中,Strings;等同于Strings=null;

而在本地變量(方法變量)的定義中,Strings;不等同于Strings=null;,這時(shí)要使用s必須顯式地賦值。

這些雖然是小知識(shí)點(diǎn),但在實(shí)際應(yīng)用中很重要,也很容易被一些人忽視,特此提出。還有一點(diǎn)要說(shuō)明的是:

只要是在方法在中定義變量都要顯示賦初值,main()方法也不例外,而在方法之外編譯器回自動(dòng)賦初值。

友情提示:本文中關(guān)于《第一次月考總結(jié)與反思》給出的范例僅供您參考拓展思維使用,第一次月考總結(jié)與反思:該篇文章建議您自主創(chuàng)作。

來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問(wèn)題,請(qǐng)聯(lián)系我們及時(shí)刪除。


第一次月考總結(jié)與反思》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請(qǐng)保留原作者信息,謝謝!
鏈接地址:http://www.7334dd.com/gongwen/442035.html