java基础知识,望大神指教!

public class Texttwo {
public void play(){
int[] arr=new int []{8,2,1,0,3};
int[] index=new int[]{2,0,3,2,4,0,1,3,2,3,3};
String tel="";

    for(int i:index){   
        tel+=arr[i];

    }
    System.out.print(tel);
}

}

在上面程序中
tel+=arr[i]这一句,为什么String可以接收int?

字符串和数字直接相加,是把数字当成了字符串,这是JAVA的装箱机制,最终相当于字符串的连接。

没看懂,你是指print函数为什么接受整形吗?这个函数有这个签名。

tel+=arr[i]----->tel=tel+arr[i]---------》tel=""+arr[i]---->数字和“”相加被转成字符串了,所以可以直接接受字符串了

重点在tel+=arr[i],需要把它还原为tel = tel + arr[i].

在Java里面,整型

tel+=arr[i],这里的+号是字符串拼接符。

  • 连接两个字符串 tel = tel + arr[i]

tel+=a[i]即tel=tel+a[i],+进行字符串拼接的本质是通过new StringBuild(tel).append(a[i])实现的。java在编译期就完成了上述代码的替换。了解本质多看下JAVA编译后class文件再反编译的源代码,希望解答了你的疑惑图片说明

类似C++
的操作符重载,其实没什么为什么,编译器怎么实现都可以,任性点的用减号减一个整形也是可以做的

首先定义一个空字符串String tel="";然后如果有int类型,因为是由小字节类型转大字节类型,所以无需强转,只需要在int后面加一个""就可以转为String类型

+=变成了字符串拼接了 所以得到的就会是String型