一、檢測字符串是否相等,可使用equals方法檢測,相等返回true,不然返回false。必定不能用==運算符檢測,緣由是這個運算符只可以肯定兩個字符串是否放置在同一個位置上。固然若是字符串放置在同一個位置上,他們必然相等,可是,徹底有可能將內容相同的多個字符串的拷貝放置在不一樣的位置上。實際上虛擬機中只有字符串常量是共享的(即放置在同一個位置),而用+或substring等操做產生的結果並非共享的。因此極可能會產生那種隨機產生的間歇性的bug。java
二、if/else語句的流程圖:算法
上圖是if - elseif - else語句流程圖,switch是另一種變種的if - elseif - else 語句api
三、while的流程圖數組
四、do-while的流程圖:網絡
五、for語句的流程圖優化
注:圖片爲網絡拷貝的,若有侵權請告知設計
六、java中的標籤code
Java 中的標籤是爲循環設計的,是爲了在多重循環中方便的使用break 和coutinue 。如下實例當在循環中使用 break 或 continue 循環時跳到指定的標籤處:對象
public static void main(String[] args) { // 標籤名: // 標籤是配合continue和break來使用,break out; 在標籤名爲out的後面的全部循環終止 // continue out; 跳事後面的全部內容,從標籤名爲out處開始下一次迭代循環 // 標籤後面必須是循環 // 通常適用於嵌套循環 boolean b = true; int i = 0; System.out.println("外層循環開始執行"); out: while (b) { i++; System.out.println("內層循環開始執行"); int j = 0; in: while (b) { j++; if (j == 5) { System.out.println("內層continue"); continue; } if (j == 10) { System.out.println("內層break"); break in; } System.out.println("j=" + j); } if (i == 3) { System.out.println("外層continue"); continue; } if (i == 5) { System.out.println("外層break"); break; } System.out.println("i=" + i); } System.out.println("程序結束"); }
七、數組的一些api排序
System.arrayCopy(Object from,int fromIndex,Object to,int toIndex,int count) 將第一個數組中的元素拷貝到第二個數組中,就是把from中的元素從from開始拷貝count個元素到to數組的toIndex後 from 任意類型的數組 fromIndex 原始數組中待拷貝元素的起始下標 to 與from同類型的數組 toIndex 目標數組中放置拷貝元素的起始下標 count 拷貝元素數量 Arrays中操做數組的方法 copyOf(type[] a ,int start,int end) 和上面的方法做用相似 toString(type[] a) 返回a中數據元素的字符串,這些數據元素被放在括號內,並用逗號分隔,這個經常使用於一維數組,若是多維數組的會要用deepToString sort(type[] a) 對a數組進行排序,採用的是優化的快速排序法 binarySearch(type[] a,type v) 採用二分搜索算法查找值v,若是查找成功返回響應的下標值,失敗返回負數
八、方法參數,值調用表示方法接收的是調用者提供的值,而引用調用表示方法接收的是調用者提供的變量地址。一個方法能夠修改傳遞引用所對應的值,而不能修改傳遞值調用所對應的變量值。值得注意的是,對象引用採用的也是值傳遞,若是想經過一個方法去交換兩個對象的引用是不可能成功的,如:
swap(Employee a, Employee b){ Employee temp = a; a = b; b = temp; }
這個是不能成功的,傳遞進來的a和b只是一個對象引用拷貝,這個只能交換兩個對象的引用拷貝,在方法介紹後,a和b被拋棄。
總結:一個方法不能修改一個基本數據類型的參數
一個方法能修改一個對象參數的狀態
一個方法不能實現讓對象參數引用另外一個新的對象