惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
IT之家
IT之家
Microsoft Security Blog
Microsoft Security Blog
博客园 - 司徒正美
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
D
DataBreaches.Net
B
Blog RSS Feed
博客园_首页
The GitHub Blog
The GitHub Blog
I
InfoQ
L
LangChain Blog
G
Google Developers Blog
M
MIT News - Artificial intelligence
美团技术团队
腾讯CDC
V
Visual Studio Blog
aimingoo的专栏
aimingoo的专栏
博客园 - 聂微东
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Apple Machine Learning Research
Apple Machine Learning Research
A
About on SuperTechFans
博客园 - 三生石上(FineUI控件)
博客园 - 叶小钗

明明如月成长笔记

个人数据的开源备份:从明清档案之殇想到的 简体字的双重优势:打字效率与扫盲成效全解析 四小时深圳书城奇遇:那些藏在书架间的偶然与必然 正式把我的笔记系统迁移到 Obsidian,为了和 AI 配合 Gemini CLI 登录踩坑记录:GOOGLE_CLOUD_PROJECT_ID 的坑与解法 在 MacOS 上,成功恢复存储卡上被误删的照片 AI CLI 工具:Claude Code, Codex, Gemini CLI, Qwen code, CodeBuddy cli, cursor-agent 我的常用命令 港漂日记62:父亲节独自带娃,室内游戏、香港公园探展、观鸟、品味米其林餐厅 南航随心飞机票爬虫解密 acw_sc__v2 港漂日记61:香港私立诊所首诊:商业医保如何改变我的就医体验? 香港历史博物馆:看秦始皇兵马俑,还能和孔子比身高? 港漂日记59:母亲节礼物!AI 涂色小技巧,让孩子的爱跃然纸上 港漂日记60:西营盘网红旧书店 Book & Go 淘书记 港漂日记58:萌娃中环学体操,课后老师狂点赞 五一游记D4:深圳笔架山儿童乐园,邂逅无人机送外卖 我的400篇博客都写了些什么 珊瑚海兔四岁啦 港漂日记D159:亲子同乐日:一场精彩的幼儿园嘉年华 蛇年春节自驾D10:东莞-深圳-香港 DeepSeek教我如何收拾行李箱 福田取逗留签 回港新方式 蛇年春节自驾D9:江门-顺德-东莞 中国侨都华侨华人博物馆 东莞迎宾馆 蛇年春节自驾D8:茂名-开平-江门 挥春作业 粤西堵车 开平碉楼 迎财神 茂名博物馆参观记 蛇年春节自驾D7:茂名 中国第一摊 茂名博物馆 亚朵酒店 蛇年春节自驾D6:南宁-茂名 发财树 青秀山 路途亲子游戏 蛇年春节自驾D5:南宁过大年 醒狮贺岁 三街两巷 特色美食 骑行穿城 琅西夜市 打铁花 新春好!我用DeepSeek写祝福,顺便送你三款红包封面 蛇年春节自驾D4:钦州-南宁 钦州老街,万丽年夜饭 蛇年春节自驾D3:海陵岛-钦州 绝美悬崖餐厅,海景房租赁行情 明明如月成长笔记2024年公众号创作回顾(含免费红包封面🧧) 蛇年春节自驾D2:深圳-阳江-海陵岛
【java学习笔记02】特殊的“值的传递”
lmm333 · 2011-02-10 · via 明明如月成长笔记

(1).String

//    基本数据类型->值传递(传递值)
//    引用数据类型->引用传递(传递地址)
//    特殊的引用传递String:因为是定长字符串,所以结果同值传递

public class TestString {
    static void change(String a, StringBuffer b) {
        a = "改变定长";
        //b.append("改变变长");
        b.replace(0, b.length(), "改变变长");
        System.out.println(a);
        System.out.println(b);
    }

    public static void main(String[] args) {
        String a = new String("定长");
        StringBuffer b = new StringBuffer("变长");
        System.out.println(a);
        System.out.println(b);

        change(a, b);
        System.out.println(a);
        System.out.println(b);

/*
运行结果
定长
变长

改变定长
改变变长

定长
改变变长
 */
    }
}

(2).交换对象
public class valuePKreference {

    int a, b;

    static void change(valuePKreference v1, valuePKreference v2) {
        v1.a++;
        v2.a++;
        valuePKreference v3;
        v3 = v1;
        v1 = v2;
        v2 = v3;

        System.out.println("chang里面");
        System.out.println("v1.a=" + v1.a);
        System.out.println("v1.b=" + v1.b);
        System.out.println("v2.a=" + v2.a);
        System.out.println("v2.b=" + v2.b);
        System.out.println("v3.a=" + v3.a);
        System.out.println("v3.b=" + v3.b);
    }

    public static void main(String[] args) {
        valuePKreference v1 = new valuePKreference();
        v1.a = 1;
        v1.b = 1;
        valuePKreference v2 = new valuePKreference();
        v2.a = 10;
        v2.b = 10;
        System.out.println("chang之前");
        System.out.println("v1.a=" + v1.a);
        System.out.println("v1.b=" + v1.b);
        System.out.println("v2.a=" + v2.a);
        System.out.println("v2.b=" + v2.b);
        change(v1, v2);
        System.out.println("chang之后");
        System.out.println("v1.a=" + v1.a);
        System.out.println("v1.b=" + v1.b);
        System.out.println("v2.a=" + v2.a);
        System.out.println("v2.b=" + v2.b);
    }
}
/*
 chang之前
v1.a=1
v1.b=1
v2.a=10
v2.b=10
chang里面
v1.a=11
v1.b=10
v2.a=2
v2.b=1
v3.a=2
v3.b=1
chang之后
v1.a=2
v1.b=1
v2.a=11
v2.b=10
 */

说明:

1.引用传递,所以change后a会增加

2.交换时交换的是新建的v1,,v2,v3所以能看见值的变化,但是源数据没有变化,即只交换了新建对象的指针指向,没有交换指向的数据