java空字符的作用?为什么空字符在前在后输出顺序不同?

1.java空字符:String s=""; 在前在后的顺序为什么会影响结果的顺序?
2.代码如下:

public class Null {
public static void main (String [] args){
    String s="";
    for(char i='a';i<'d';i++){
        s=s+i;//输出结果:abc
        //s=i+s;//输出的结果:cba
    }

    System.out.println(s);
}
}

图片说明

图片说明

3.如上图所示为什么空字符s放在表达式前后,输出的结果相反?为什么空字符会有这样的作用?原理和机制是什么?

s=s+i //是把i添加至s后面 自然就是abc
而s=i+s//是把s添加到i后面再赋给s 自然就是 cba

第一个问题,空字符串跟数字 0 的作用类似,代表没有内容。
第二个问题,放置的顺序影响字符串的拼接顺序,所以就不难理解最终输出的结果了。

你定义的s是字符串,就像一条链子,每次吧i放在前面或者放在后面,到最后自己也是从头来读这条链

运行过程:
第1次 i=a的时候,s=i+s; s="a"+""="a";
第2次i=b的时候,s=i+s; s="b"+"a"="ba";
第3次i=c的时候,s=i+s; s="c"+"ba"="cba";
同理可得,s=s+i;的顺序与之输出结果相反。