java三目運算符規(guī)范是什么

這篇文章主要介紹“java三目運算符規(guī)范是什么”,在日常操作中,相信很多人在java三目運算符規(guī)范是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java三目運算符規(guī)范是什么”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),朝陽企業(yè)網(wǎng)站建設(shè),朝陽品牌網(wǎng)站建設(shè),網(wǎng)站定制,朝陽網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,朝陽網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

1.錯誤碼規(guī)范

之前版本中是沒有關(guān)于「錯誤碼」的整體說明的,而這個版本增加了很大的篇幅,來把這個前后端配合的重要環(huán)節(jié)「錯誤碼」部分,做了詳細(xì)的規(guī)范和說明,可謂非常的香,具體規(guī)范如下:

  • 【強(qiáng)制】錯誤碼的制定原則:快速溯源、簡單易記、溝通標(biāo)準(zhǔn)化。
  • 【強(qiáng)制】錯誤碼不體現(xiàn)版本號和錯誤等級信息。
  • 【強(qiáng)制】全部正常,但不得不填充錯誤碼時返回五個零:00000。
  • 【強(qiáng)制】錯誤碼為字符串類型,共 5 位,分成兩個部分:錯誤產(chǎn)生來源 + 四位數(shù)字編號。

說明:錯誤產(chǎn)生來源分為 A/B/C:

  • A:表示錯誤來源于用戶,比如參數(shù)錯誤,用戶安裝版本過低,用戶支付超時等問題;
  • B:表示錯誤來源于當(dāng)前系統(tǒng),往往是業(yè)務(wù)邏輯出錯,或程序健壯性差等問題;
  • C:表示錯誤來源于第三方服務(wù),比如 cdn 服務(wù)出錯,消息投遞超時等問題;四位數(shù)字編號從 0001 到 9999,大類之間的步長間距預(yù)留 100,詳情可見《Java開發(fā)手冊》正文。
 

2.擴(kuò)充了日期處理方案

一個寫死為 365 天的年份天數(shù),在閏年里讓大家嘗盡了悲傷痛楚,比如,緩存有效期 = 3652460*60 秒,結(jié)果提前一天所有緩存同時失效,高并發(fā)訪問時數(shù)據(jù)庫就跪了。

【強(qiáng)制】不要在程序中寫死一年為 365 天,避免在公歷閏年時出現(xiàn)日期轉(zhuǎn)換錯誤或程序邏輯錯誤。

正例:

// 獲取今年的天數(shù)
int daysOfThisYear = LocalDate.now().lengthOfYear();
// 獲取指定某年的天數(shù)
LocalDate.of(2011, 1, 1).lengthOfYear();
 

反例:

// 第一種情況:在閏年 366 天時,出現(xiàn)數(shù)組越界異常
int[] dayArray = new int[365];
// 第二種情況:一年有效期的會員制,今年 1 月 26 日注冊,硬編碼 365 返回的卻是 1 月 25 日
Calendar calendar = Calendar.getInstance();
calendar.set(2020, 1, 26);
calendar.add(Calendar.DATE, 365);
   

3.表別名規(guī)范

【強(qiáng)制】對于數(shù)據(jù)庫中表記錄的查詢和變更,只要涉及多個表,都需 表名)進(jìn)行限定。說明:對多表進(jìn)行查詢記錄、更新記錄、刪除記錄時,如果對操作列沒有限定表的別名(或表名),并且 操作列在多個表中存在時,就會拋異常。正例:select t1.name from table_first as t1 , table_second as t2 where t1.id=t2.id;

反例:在某業(yè)務(wù)中,由于多表關(guān)聯(lián)查詢語句沒有加表的別名(或表名)的限制,正常運行兩年后,最近在 某個表中增加一個同名字段,在預(yù)發(fā)布環(huán)境做數(shù)據(jù)庫變更后,線上查詢語句出現(xiàn)出 1052 異常:Column 'name' in field list is ambiguous。

【推薦】SQL 語句中表的別名前加 as,并且以 t1、t2、t3、...的順序依次命名。說明:

  • 別名可以是表的簡稱,或者是根據(jù)表出現(xiàn)的順序,以 t1、t2、t3 的方式命名。
  • 別名前加 as 使別名更容易識別。正例:select t1.name from table_first as t1, table_second as t2 where t1.id=t2.id;
 

4.三目運算符規(guī)范

原來在三目運算符中:

condition ? 表達(dá)式1 : 表達(dá)式2

表達(dá)式 1 和 2 在涉及算術(shù)計算或數(shù)據(jù)類型轉(zhuǎn)換時,會觸發(fā)自動拆箱。拆箱操作本來沒有問題,但是當(dāng)其中的操作數(shù)為 null 值時,一個大大的 NPE(NullPointerException)就砸到了我滴臉上,如下代碼所示:

Integer a = 1;
Integer b = 2;
Integer c = null;
Boolean flag = false;
Integer result = (flag ?  a * b  :  c);
 

注意:a*b 的結(jié)果是 int 類型,那么 c 會強(qiáng)制拆箱成 int 類型,拋出 NPE 異常。

【強(qiáng)制】三目運算符 condition? 表達(dá)式 1 : 表達(dá)式 2 中,高度注意表達(dá)式 1 和 2 在類型對齊時,可能拋出因自動拆箱導(dǎo)致的 NPE 異常。

說明:以下兩種場景會觸發(fā)類型對齊的拆箱操作:

  • 表達(dá)式 1 或表達(dá)式 2 的值只要有一個是原始類型。
  • 表達(dá)式 1 或表達(dá)式 2 的值的類型不一致,會強(qiáng)制拆箱升級成表示范圍更大的那個類型。

到此,關(guān)于“java三目運算符規(guī)范是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

文章標(biāo)題:java三目運算符規(guī)范是什么
分享URL:http://muchs.cn/article44/pishhe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、搜索引擎優(yōu)化、面包屑導(dǎo)航、標(biāo)簽優(yōu)化、域名注冊、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司