java基础---一些没注意的

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");

  1. append() 末尾追加内容
    sb.append("学习"); // java学习
  2. insert() 指定位置插入
    sb.insert(0,"开始"); // 开始java学习
  3. delete() 删除区间字符
    sb.delete(0,2); // 删除前两位
  4. deleteCharAt() 删除单个下标字符
    sb.deleteCharAt(1);
  5. replace() 替换指定范围内容
    sb.replace(1,3,"abc");
  6. reverse() 字符串反转
    sb.reverse();
  7. length() 获取字符长度
    int len = sb.length();
  8. charAt() 获取下标对应字符
    char c = sb.charAt(0);
  9. toString() 转为普通String
    String str = sb.toString();
  10. 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),
        // 但是每轮找到一个最小的和数组的第一个进行交换,
        // 一轮交换一次,所以交换次数略小于冒泡排序
        //下标和数组中的第一个数交换,然后继续找数组下标,遍历剩下的数,

    }
}
相关推荐
码智社39 分钟前
Java实现RSA密钥生成、加密解密、加签验签
java
wear工程师1 小时前
ThreadLocal 在线程池里为什么会串数据:别只会答内存泄漏
java·后端
Iruoyaoxh1 小时前
栈和队列~
java·开发语言
审小匠OpenCPAi1 小时前
银行流水核查怎么自动化?单边匹配、双向勾稽与图聚类异常检测的工程对比
java·前端·人工智能·python·审计
Hrain-AI1 小时前
2026 企业 AI 编程智能体实战:Codex 与 Claude Code
开发语言·人工智能·kotlin
码上上班1 小时前
docker课程
java·docker·容器
腻害兔1 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:CRM 客户关系模块深度解析——从线索到回款,一套完整的 B2B 销售闭环是怎么搭的?
java·前端·javascript·vue.js·产品经理·ai编程
wdfk_prog1 小时前
嵌入式面试真题第 13 题:单硬件 Timer 下的高精度多路软件定时器架构设计
c语言·开发语言·面试·职场和发展·嵌入式
oort1232 小时前
吃上了自家的细糠,还挺丝滑,用起来手感还行,OortCloud发布新版AI编程平台,下载 OortCodex,Token多,免费薅
大数据·开发语言·人工智能·ai编程
达子6662 小时前
第9章_HarmonyOs图解 用Java开发UI
java·ui·harmonyos