最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實(shí)體類不要使用基本類型的知識(shí)點(diǎn)總結(jié)

 更新時(shí)間:2020年02月04日 12:01:54   作者:幽暗森林之豬大屁  
在本篇文章里小編給大家整理的是關(guān)于Java包裝類之實(shí)體類不要使用基本類型的知識(shí)點(diǎn)內(nèi)容,需要的朋友們可以學(xué)習(xí)下。

今天來(lái)記錄一下,在項(xiàng)目中因?yàn)榛绢愋?,所產(chǎn)生的bug

包裝類:8種基本類型的包裝類

應(yīng)用場(chǎng)景:數(shù)據(jù)庫(kù)建立實(shí)體映射多用包裝類

這兩句話是重點(diǎn):就是建立實(shí)體類禁止使用基本數(shù)據(jù)量類型?。?!而用對(duì)應(yīng)的包裝類,

為什么呢,看以下場(chǎng)景。

JAVA代碼

<font style="color:rgb(77, 77, 77)"><font face="&quot"><font style="font-size:16px">/**
 * 8中基本類型的對(duì)應(yīng)包裝類'
 * byte short int long double float boolean char
 * Byte Short Integer Long Double Float Boolean Character
 * 區(qū)別:(舉例int,其余相同)
 * 1、int默認(rèn)為0,integer默認(rèn)為null
 * 2、int是java的基本數(shù)據(jù)類型,integer是int的包裝類
 * 3、integer必須new,int直接使用
 */
 
/**
 * 場(chǎng)景一:
 * 創(chuàng)建對(duì)應(yīng)數(shù)據(jù)庫(kù)的實(shí)體類字段
 * 1、創(chuàng)建一個(gè)類型(type),對(duì)應(yīng)數(shù)據(jù)庫(kù)的一個(gè)字段
 * 2、注意:此存在嚴(yán)重問題,基本類型都默認(rèn)有值。如int 默認(rèn)為0
 * 3、那在進(jìn)行數(shù)據(jù)庫(kù)新增的時(shí)候,如果不填,則會(huì)默認(rèn)為0。
 * 4、會(huì)產(chǎn)生嚴(yán)重的bug,應(yīng)該改為包裝類的引用類型
 */
//錯(cuò)誤示范
private int type;//代表類型
//正確,設(shè)置為integer類型
private Integer typeT;
</font></font></font>

所以,多用包裝類進(jìn)行賦值。

補(bǔ)充:

<font style="color:rgb(77, 77, 77)"><font face="&quot"><font style="font-size:16px">/**
 * 場(chǎng)景二:
 * 自動(dòng)裝箱And自動(dòng)拆箱
 */
private void testBox() {
 //原本轉(zhuǎn)換方式
 int t = 10;
 Integer ct = new Integer(t);
 int tt = ct.intValue();
 int i = 10;
 //自動(dòng)裝
 Integer c = i;
 //自動(dòng)拆
 int ic = c;
}
</font></font></font>

筆試題題如下?為什么一個(gè)為true,一個(gè)為false???

<font style="color:rgb(77, 77, 77)"><font face="&quot"><font style="font-size:16px">/**
 * 自動(dòng)裝拆箱
 */
public static void main(String[] args) {
 Integer integer0 = 127;
 Integer integer1 = 127;
 System.out.println(integer0 == integer1);//等于true
 Integer integer2 = 128;
 Integer integer3 = 128;
 System.out.println(integer2 == integer3);//等于false
 
 /** 源碼
  * public static Integer valueOf(int i) {
  *    if (i >= Integer.IntegerCache.low && i <= Integer.IntegerCache.high)
  *     return Integer.IntegerCache.cache[i + (-Integer.IntegerCache.low)];
  *    return new Integer(i);
  *   }
  * 通過(guò)上我們發(fā)現(xiàn),如果他的int值在最高和最低之間,他直接返回cache內(nèi)的數(shù)據(jù)
  * 否則, new Integer(i);
  * 那么最高值:?=high 127 ,最低值:?=low -128,
  * 所以:在-128至127內(nèi),他們引用的是緩存內(nèi)的數(shù)據(jù),地址相同,所以為true。超過(guò)此則為false
  *
  *  private static class IntegerCache {
  *   static final int low = -128;
  *   static final int high;
  *   static final Integer cache[];
  *
  *   static {
  *    // high value may be configured by property
  *    int h = 127;
  *    String integerCacheHighPropValue =
  *     sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high");
  *    if (integerCacheHighPropValue != null) {
  *     try {
  *      int i = parseInt(integerCacheHighPropValue);
  *      i = Math.max(i, 127);
  *      // Maximum array size is Integer.MAX_VALUE
  *      h = Math.min(i, Integer.MAX_VALUE - (-low) -1);
  *     } catch( NumberFormatException nfe) {
  *      // If the property cannot be parsed into an int, ignore it.
  *     }
  *    }
  *    high = h;
  *
  *    cache = new Integer[(high - low) + 1];
  *    int j = low;
  *    for(int k = 0; k < cache.length; k++)
  *     cache[k] = new Integer(j++);
  *
  *    // range [-128, 127] must be interned (JLS7 5.1.7)
  *    assert IntegerCache.high >= 127;
  *   }
  *
  *   private IntegerCache() {}
  *  }
  *
  */
}</font></font></font>

以上就是本次介紹的全部相關(guān)知識(shí)點(diǎn),大家如果有任何補(bǔ)充可以聯(lián)系腳本之家小編。

相關(guān)文章

  • Java設(shè)計(jì)模式之外觀模式示例詳解

    Java設(shè)計(jì)模式之外觀模式示例詳解

    外觀模式為多個(gè)復(fù)雜的子系統(tǒng),提供了一個(gè)一致的界面,使得調(diào)用端只和這個(gè)接口發(fā)生調(diào)用,而無(wú)須關(guān)系這個(gè)子系統(tǒng)內(nèi)部的細(xì)節(jié)。本文將通過(guò)示例詳細(xì)為大家講解一下外觀模式,需要的可以參考一下
    2022-03-03
  • spring boot參數(shù)驗(yàn)證注解@NotNull、@NotBlank和@NotEmpty區(qū)別解析

    spring boot參數(shù)驗(yàn)證注解@NotNull、@NotBlank和@NotEmpty區(qū)別解析

    使用spring boot參數(shù)驗(yàn)證是常常會(huì)使用@NotNull、@NotBlank和@NotEmpty三個(gè)判斷是否不為空的注解,中文都有不能為空的意思,大部分使用者都傻傻分清它們之間到底有什么區(qū)別,今天就讓咱們來(lái)一起探索它們之間的不同吧,感興趣的朋友一起看看吧
    2024-05-05
  • 深入剖析java中String、StringBuffer、StringBuilder的區(qū)別

    深入剖析java中String、StringBuffer、StringBuilder的區(qū)別

    下面小編就為大家?guī)?lái)一篇深入剖析java中String、StringBuffer、StringBuilder的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • Java中的byte & 0xff到底有什么作用?

    Java中的byte & 0xff到底有什么作用?

    這篇文章主要介紹了Java中的byte & 0xff到底有什么作用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Spring Boot中集成各種日志框架Logback、Log4j2和Java Util Logging的步驟和示例代碼

    Spring Boot中集成各種日志框架Logback、Log4j2和Java Util 

    這篇文章主要介紹了Spring Boot中集成各種日志框架Logback、Log4j2和Java Util Logging,通過(guò)實(shí)例代碼介紹了集成Logback、Log4j2和Java Util Logging的基本步驟,你可以根據(jù)自己的需求進(jìn)行配置和擴(kuò)展,以滿足更復(fù)雜的日志需求,需要的朋友可以參考下
    2023-11-11
  • java中如何使用MD5進(jìn)行加密

    java中如何使用MD5進(jìn)行加密

    這篇文章主要介紹了java實(shí)現(xiàn)md5加密示例,在各種應(yīng)用系統(tǒng)的開發(fā)中,經(jīng)常需要存儲(chǔ)用戶信息,很多地方都要存儲(chǔ)用戶密碼,有需要的小伙伴可以參考下。
    2016-11-11
  • Java中文件管理系統(tǒng)FastDFS詳解

    Java中文件管理系統(tǒng)FastDFS詳解

    這篇文章主要介紹了Java中文件管理系統(tǒng)FastDFS詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java中的ThreadLocal源碼及弱引用解析

    Java中的ThreadLocal源碼及弱引用解析

    這篇文章主要介紹了Java中的ThreadLocal源碼及弱引用解析,ThreadLocal類通過(guò)ThreadLocal可以實(shí)現(xiàn)全局變量在多線程環(huán)境下的線程隔離,每個(gè)線程都可以獨(dú)立地訪問和修改自己的全局變量副本,不會(huì)影響其他線程的副本,需要的朋友可以參考下
    2024-01-01
  • Java老矣 尚能飯否?

    Java老矣 尚能飯否?

    Java老矣,尚能飯否?各類編程語(yǔ)言橫空出世,紛戰(zhàn)不休,然而 TIOBE 的語(yǔ)言排行榜上,Java 卻露出了明顯的頹勢(shì)。這個(gè)老牌的語(yǔ)言,未來(lái)會(huì)是怎樣?
    2017-06-06
  • Spring6整合JUnit的詳細(xì)步驟

    Spring6整合JUnit的詳細(xì)步驟

    這篇文章主要介紹了Spring6整合JUnit的詳細(xì)步驟,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05

最新評(píng)論

桐梓县| SHOW| 桂阳县| 江源县| 新密市| 宣汉县| 博爱县| 桂阳县| 榕江县| 全南县| 柘城县| 五原县| 屯门区| 道孚县| 新兴县| 遵义市| 乌拉特中旗| 柏乡县| 湖南省| 邳州市| 双桥区| 乌兰察布市| 牙克石市| 山丹县| 和政县| 万州区| 静乐县| 宜黄县| 西乡县| 大庆市| 洛宁县| 安化县| 若尔盖县| 克拉玛依市| 渝北区| 平塘县| 麻江县| 黔西县| 大理市| 辽阳县| 巴彦县|