胡八一之Java(六):表示式的幾個簡單的小陷阱
1、複合賦值運算子的陷阱
a=a+5與a +=5 是有區別的。a +=5等價於 a=(a的型別)(a+5);這就是複合運算子中包含的隱式型別轉換。
在什麼時候會遇到此型別的錯誤呢?
short a =5;
a = (a-2);
此句編譯不通過,把一個int型別的值賦給short,所以報錯。
a -=2;
而這樣就不會發生錯誤,因為發生了隱式型別轉換。
2、輸入法導致的陷阱
我們在程式設計中輸入的空格和Tab都是在半形狀態下的。全形狀態下的空格,Tab會發生非法字元的報錯。
3、註釋字元必須合法
大部分時候,Java編譯器會直接忽略掉註釋部分,但有一種情況例外,Java要求註釋部分必須是合法的字元。Java中允許直接使用\uxxxx的形式來代表字元,所以當字元中出現了\unit4類似的\u開頭的註釋,有可能會報錯。
4、轉義字元的陷阱
java中可以使用轉義字元來表達某些東西,但不會對轉義字元進行任何的處理,例如:
System.out.println("abc\u000a".length());
此句便會報錯。
相關推薦
胡八一之Java(六):表示式的幾個簡單的小陷阱
1、複合賦值運算子的陷阱 a=a+5與a +=5 是有區別的。a +=5等價於 a=(a的型別)(a+5);這就是複合運算子中包含的隱式型別轉換。 在什麼時候會遇到此型別的錯誤呢? short a =5; a = (a-2); 此句編譯不通過,把一個int
胡八一之Java(三):java集合概述
JAVA集合概述 (一)、Collection 和Iterator介面 import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; public class Te
胡八一之Java(七):面向物件的陷阱
一、instanceof的陷阱: 如果前面運算元的編譯型別與後面的型別沒有任何關係,那麼編譯將不通過。例如: String a ="aaa"; System.out.println("a是否屬於MATH的型別:"+(a.instanceof Math)); Stri
胡八一之Java(八):多執行緒
多執行緒的優勢:多程序執行需要獨立的記憶體空間,而多執行緒可以共享記憶體,從而提高了執行緒的執行效率。 建立執行緒一般使用兩種方式: 1、繼承Thread類: import java.io.IOException; public class Test extends
我的C#跨平臺之旅(六):發布應用
版本 spa iis 服務器部署 ati spring 復制 發布應用 速度 由於此架構從一開始就將.NET Framework 的依賴降低到最低,且不依賴IIS,在ORM層面,完全實現代碼優先,即真正做到數據庫無關; Windows服務器部署: 在Window
我的機器學習之旅(六):決策樹
family 分配 根據 drop chrom labels arch ntp -o 決策樹概念: 分類決策樹模型是一種描述對實例進行分類的樹形結構。決策樹由結點和有向邊組成。結點有兩種類型:內部節點和葉節點,內部節點表示一個特征或屬性,葉節點表示一個類。 分類的時候,從根
C++學習之路(六):關於C++提供的強制類型轉換
code 記錄 是不是 通過 行修改 單元 c語言 enum 表達式 C語言中提供了舊式的強制類型轉換方法。比如: int a =1; char *p = (char *)&a; 上述將a的地址單元強制轉換為char類型的指針。這裏暫且不說上述轉換結果是否合理,但
OpenCV探索之路(六):邊緣檢測(canny、sobel、laplacian)
邊緣檢測的一般步驟: 濾波——消除噪聲 增強——使邊界輪廓更加明顯 檢測——選出邊緣點 Canny演算法 Canny邊緣檢測演算法被很多人推崇為當今最優秀的邊緣檢測演算法,所以我們第一個就介紹他。 opencv中提供了Canny函式。 #include<
Linux 學習之路(六):bash指令碼編寫
bash指令碼程式設計:整數測試及特殊變數 exit:退出指令碼 exit # 如果指令碼沒有明確定義退出狀態碼,那麼,最後執行的一條命令的退出碼即為指令碼的退出狀態碼。 bash中常用的條件測試有三種: 測試方法: 命令測試法 [ expression ] 關
activiti自定義流程之整合(六):獲取我的申請任務
流程啟動後,流程節點便進入到了任務相關的部分。可以看到我之前的做法是在啟動節點就綁定了form表單,啟動時就填寫相關的資料。實際上在之前我的做法是不對開始節點做任何操作,知道任務節點的時候再填寫相關的資料進行設定。 至於這兩種方式的優劣,我暫時還不太確定,單獨從功能上來說
詳解SVM系列(六):深入解析 序列最小最優化SMO演算法一
SMO演算法是幹啥的 首先要先搞明白一個基本的問題: SMO演算法是幹啥的? 通過前面的介紹,我們現在掌握了線性不可分支援向量機。其形式為如下的凸二次規劃: m
Struts2 學習之路(二):2.2 完成簡單的統計使用者線上人數小功能
實時更新使用者線上人數(通過將使用者人數資料放入application的域屬性裡實現) 使用者登入後,顯示使用者名稱和當前線上人數+1 使用者登出後,當前線上人數-1 程式碼 1.前臺請求頁面
(精)DEVC++的幾個實用小技巧
依賴 DEV C++ 5.11 最新版 下載安裝DEV C++後,使用DEV C++開啟一個隨便的cpp檔案,你看到的應該是這樣的介面。(為了節約讀者的流量,圖片進行了有失真壓縮,但是字看得清楚) 重點是確認工具欄有AStyle選項。 相信編譯執行什麼的同學們肯定都
物聯網平臺構架系列 (六):Amazon, Microsoft, IBM IoT 解決方案導論 之 結語
物聯網; iot; aws; 亞馬遜; greengrass;microsoft; azure;ibm; watson; bluemix最近研究了一些物聯網平臺技術資料,以做選型參考。腦子裏積累大量信息,便想寫出來做一些普及。作為科普文章,力爭通俗易懂,不確保概念嚴謹性。我會給考據癖者提供相關英文鏈接,以便深
Unity3D之Mecanim動畫系統學習筆記(六):使用腳本控制動畫
ont nim 復制代碼 info rip esc enter machine images 控制人物動畫播放 這裏我重新弄了一個簡單的場景和新的Animator Controller來作為示例。 下面先看看Animator Controller的配置: 人物在站
java學習筆記(六):變量類型
animal 單獨使用 div 位置 fin strong pub 局部變量 變量聲明 java一共三種變量: 局部變量(本地變量):方法調用時創建,方法結束時銷毀 實例變量(全局變量):類創建時創建,類銷毀時銷毀 類變量(靜態變量):程序啟動是創建,程序銷毀時銷毀
Scala入門系列(六):面向對象之object
所有 name 應用 eight lac box dfa port clas object Person { private var eyeNum = 2 println("this Person object") def getEyeNum = eyeNum
Java入門(六):數組
屬性 array 初始 圖片 nbsp 遍歷 屬性。 語法 規則 數組是一種數據結構,用於存儲同一類型值的集合,也可以看做是數據類型一致的一組數據。 一、語法和聲明數組 1、語法:數據類型[ ] array = new 數據類型[長度]; 註意: 使用長度創建數組的時候,每
JAVA基礎學習之路(六)數組與方法參數的傳遞
就是 .com 另一個 AS oid span 參數 spa nbsp 通常,向方法中傳遞的都是基本數據類型,而向方法中傳遞數組時,就需要考慮內存的分配 public class test2 { public static void main(String a
跟廠長學PHP內核7(六):變量之zval
extend bject mbo sta ast lar als ESS 內存大小 記得網上流傳甚廣的段子“PHP是世界上最好的語言”,暫且不去討論是否言過其實,但至少PHP確實有獨特優勢的,比如它的弱類型,即只需要$符號即可聲明變量,使得PHP入手門檻極低,成為大家所青