欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

今天來記錄一下,在項目中因為基本類型,所產(chǎn)生的bug

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

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

這兩句話是重點(diǎn):就是建立實體類禁止使用基本數(shù)據(jù)量類型?。。《脤?yīng)的包裝類,

為什么呢,看以下場景。

JAVA代碼

<font style="color:rgb(77, 77, 77)"><font face="&quot"><font style="font-size:16px">/**
 * 8中基本類型的對應(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直接使用
 */
 
/**
 * 場景一:
 * 創(chuàng)建對應(yīng)數(shù)據(jù)庫的實體類字段
 * 1、創(chuàng)建一個類型(type),對應(yīng)數(shù)據(jù)庫的一個字段
 * 2、注意:此存在嚴(yán)重問題,基本類型都默認(rèn)有值。如int 默認(rèn)為0
 * 3、那在進(jìn)行數(shù)據(jù)庫新增的時候,如果不填,則會默認(rèn)為0。
 * 4、會產(chǎn)生嚴(yán)重的bug,應(yīng)該改為包裝類的引用類型
 */
//錯誤示范
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">/**
 * 場景二:
 * 自動裝箱And自動拆箱
 */
private void testBox() {
 //原本轉(zhuǎn)換方式
 int t = 10;
 Integer ct = new Integer(t);
 int tt = ct.intValue();
 int i = 10;
 //自動裝
 Integer c = i;
 //自動拆
 int ic = c;
}
</font></font></font>

筆試題題如下?為什么一個為true,一個為false???

<font style="color:rgb(77, 77, 77)"><font face="&quot"><font style="font-size:16px">/**
 * 自動裝拆箱
 */
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);
  *   }
  * 通過上我們發(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。超過此則為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)知識點(diǎn),大家如果有任何補(bǔ)充可以聯(lián)系腳本之家小編。

相關(guān)文章

  • javaSE基礎(chǔ)java自定義注解原理分析

    javaSE基礎(chǔ)java自定義注解原理分析

    這篇文章主要介紹了javaSE基礎(chǔ)對java自定義注解原理分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多度進(jìn)步,早日升職加薪
    2021-10-10
  • springboot運(yùn)行jar生成的日志到指定文件進(jìn)行管理方式

    springboot運(yùn)行jar生成的日志到指定文件進(jìn)行管理方式

    這篇文章主要介紹了springboot運(yùn)行jar生成的日志到指定文件進(jìn)行管理方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Springboot mybatis plus druid多數(shù)據(jù)源解決方案 dynamic-datasource的使用詳解

    Springboot mybatis plus druid多數(shù)據(jù)源解決方案 dynamic-datasource的使用詳

    這篇文章主要介紹了Springboot mybatis plus druid多數(shù)據(jù)源解決方案 dynamic-datasource的使用,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • SpringBoot淺析緩存機(jī)制之Redis單機(jī)緩存應(yīng)用

    SpringBoot淺析緩存機(jī)制之Redis單機(jī)緩存應(yīng)用

    在上文中我介紹了Spring Boot使用EhCache 2.x來作為緩存的實現(xiàn),本文接著介紹使用單機(jī)版的Redis作為緩存的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Java中類加載過程全面解析

    Java中類加載過程全面解析

    這篇文章主要介紹了Java中類加載過程全面解析,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • mybatisPlus更新字段值為null的解決方案

    mybatisPlus更新字段值為null的解決方案

    在使用mybatis-plus時,發(fā)現(xiàn)當(dāng)前端傳入的值為null值時,結(jié)果無論怎么操作后端都不執(zhí)行更新null字段的操作,下面這篇文章主要給大家介紹了關(guān)于mybatisPlus更新字段值為null的解決方案,需要的朋友可以參考下
    2023-04-04
  • Java 十大排序算法之希爾排序刨析

    Java 十大排序算法之希爾排序刨析

    希爾排序是希爾(Donald Shell)于1959年提出的一種排序算法。希爾排序也是一種插入排序,它是簡單插入排序經(jīng)過改進(jìn)之后的一個更高效的版本,也稱為縮小增量排序,同時該算法是沖破O(n2)的第一批算法之一。本文會以圖解的方式詳細(xì)介紹希爾排序的基本思想及其代碼實現(xiàn)
    2021-11-11
  • 詳解Jmeter中的BeanShell腳本

    詳解Jmeter中的BeanShell腳本

    BeanShell是一種完全符合Java語法規(guī)范的腳本語言,并且又擁有自己的一些語法和方法,所以它和java是可以無縫銜接的,學(xué)了Java的一些基本語法后,就可以來在Jmeter中寫寫B(tài)eanShell腳本了
    2021-12-12
  • Java排序算法總結(jié)之希爾排序

    Java排序算法總結(jié)之希爾排序

    這篇文章主要介紹了Java排序算法總結(jié)之希爾排序,較為詳細(xì)的分析了希爾排序的原理與java的實現(xiàn)技巧,需要的朋友可以參考下
    2015-05-05
  • Java實現(xiàn)規(guī)則幾何圖形的繪制與周長面積計算詳解

    Java實現(xiàn)規(guī)則幾何圖形的繪制與周長面積計算詳解

    隨著計算機(jī)的發(fā)展,人們對圖形的計算要求會越來越高。在各行各業(yè)中的計算人員會對圖形的計算要有便利的要求,規(guī)則幾何圖形問題求解程序應(yīng)運(yùn)而生!本文將用Java編寫一個程序,可以實現(xiàn)規(guī)則幾何圖形的繪制與周長面積計算,感興趣的可以了解一下
    2022-07-07

最新評論