您好,登錄后才能下訂單哦!
這篇文章主要介紹“java三目運算符規范是什么”,在日常操作中,相信很多人在java三目運算符規范是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java三目運算符規范是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
之前版本中是沒有關于「錯誤碼」的整體說明的,而這個版本增加了很大的篇幅,來把這個前后端配合的重要環節「錯誤碼」部分,做了詳細的規范和說明,可謂非常的香,具體規范如下:
說明:錯誤產生來源分為 A/B/C:
一個寫死為 365 天的年份天數,在閏年里讓大家嘗盡了悲傷痛楚,比如,緩存有效期 = 3652460*60 秒,結果提前一天所有緩存同時失效,高并發訪問時數據庫就跪了。
【強制】不要在程序中寫死一年為 365 天,避免在公歷閏年時出現日期轉換錯誤或程序邏輯錯誤。
正例:
// 獲取今年的天數
int daysOfThisYear = LocalDate.now().lengthOfYear();
// 獲取指定某年的天數
LocalDate.of(2011, 1, 1).lengthOfYear();
反例:
// 第一種情況:在閏年 366 天時,出現數組越界異常
int[] dayArray = new int[365];
// 第二種情況:一年有效期的會員制,今年 1 月 26 日注冊,硬編碼 365 返回的卻是 1 月 25 日
Calendar calendar = Calendar.getInstance();
calendar.set(2020, 1, 26);
calendar.add(Calendar.DATE, 365);
【強制】對于數據庫中表記錄的查詢和變更,只要涉及多個表,都需 表名)進行限定。說明:對多表進行查詢記錄、更新記錄、刪除記錄時,如果對操作列沒有限定表的別名(或表名),并且 操作列在多個表中存在時,就會拋異常。正例:select t1.name from table_first as t1 , table_second as t2 where t1.id=t2.id;
反例:在某業務中,由于多表關聯查詢語句沒有加表的別名(或表名)的限制,正常運行兩年后,最近在 某個表中增加一個同名字段,在預發布環境做數據庫變更后,線上查詢語句出現出 1052 異常:Column 'name' in field list is ambiguous。
【推薦】SQL 語句中表的別名前加 as,并且以 t1、t2、t3、...的順序依次命名。說明:
原來在三目運算符中:
condition ? 表達式1 : 表達式2
表達式 1 和 2 在涉及算術計算或數據類型轉換時,會觸發自動拆箱。拆箱操作本來沒有問題,但是當其中的操作數為 null 值時,一個大大的 NPE(NullPointerException)就砸到了我滴臉上,如下代碼所示:
Integer a = 1;
Integer b = 2;
Integer c = null;
Boolean flag = false;
Integer result = (flag ? a * b : c);
注意:a*b 的結果是 int 類型,那么 c 會強制拆箱成 int 類型,拋出 NPE 異常。
【強制】三目運算符 condition? 表達式 1 : 表達式 2 中,高度注意表達式 1 和 2 在類型對齊時,可能拋出因自動拆箱導致的 NPE 異常。
說明:以下兩種場景會觸發類型對齊的拆箱操作:
到此,關于“java三目運算符規范是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。