java永远是按值调用,也就是值传递,得到的基本类型是值的副本,引用类型是地址的副本
什么是传参
在方法中把参数传递进去
普通传参比如swap(10,20);
引用传参
Employee是一个类
swap(Employee x)
传入的变量是引用类型就叫做引用传参
注意下面这个语句
java
double percent =10;
System.out.println("Before:percent="+percent);
tripValue(percent);
public static void tripValue(double x){
x=3*x;
System.out.println("End of method:"+x);
}
方法里面传入的参数x是形式参数,而调用方法传入的参数percent是实际参数
java把实际参数percent的值拷贝一份给tripvalue()这个方法,precent变量值本身不会改变
StringBuilder
StringBuilder sb = new StringBuilder("java");
- append() 末尾追加内容
sb.append("学习"); // java学习 - insert() 指定位置插入
sb.insert(0,"开始"); // 开始java学习 - delete() 删除区间字符
sb.delete(0,2); // 删除前两位 - deleteCharAt() 删除单个下标字符
sb.deleteCharAt(1); - replace() 替换指定范围内容
sb.replace(1,3,"abc"); - reverse() 字符串反转
sb.reverse(); - length() 获取字符长度
int len = sb.length(); - charAt() 获取下标对应字符
char c = sb.charAt(0); - toString() 转为普通String
String str = sb.toString(); - setLength() 截断字符串
sb.setLength(3);
选择排序实现思路及实例
java
package oop9;
public class Main11 {
public static void main(String[] args) {
int[] arr={3,3,5,8,2,7};
// int min=arr[0];
//
// for(int i:arr){
// if(i<min)min=i;
// }
//第一个数字和数组中的每一个数作比较,如果这个数小于Min,那么就把这个数赋值给min
// System.out.println(min);
//选择排序,遇到小的值,不是把值赋给别人,而是先更新下标
for(int j=0;j<arr.length-1;j++) {
int index=j;
for (int i = j+1; i < arr.length; i++) {//每一次循环从无序数组的第二个位置开始
if (arr[i] < arr[index]) {
index=i;
}//用index存储数组中最小的数的下标
}
int temp=arr[0];
arr[0]=arr[index];
arr[index]=temp;//数组第一位和数组最小的数位置交换
}
//通过双层循环,循环一遍找到数组中的最小值的下标,让数组的最小值和数组第一个数交换
//遍历剩下的数组成的数组,继续找到最小的,从而实现数组的从小到大排序
//时间复杂度O(n方)空间复杂度O(1),
// 但是每轮找到一个最小的和数组的第一个进行交换,
// 一轮交换一次,所以交换次数略小于冒泡排序
//下标和数组中的第一个数交换,然后继续找数组下标,遍历剩下的数,
}
}