一、检测字符串是否相等,可使用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被抛弃。
总结:一个方法不能修改一个基本数据类型的参数
一个方法能修改一个对象参数的状态
一个方法不能实现让对象参数引用另外一个新的对象