一张图片包含的JAVA知识点

103033yyp19pc44dqyedqq.jpg
微博看到一张图片,学过JAVA,很容易就算出来了,发现这个代码虽然短,但是包含知识点挺多的

先把代码写上注释

package Demo1;
public class Demo {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] arr =new int[]{8,2,1,0,3};  //存放手机号码的组成元素
        int[] index =new int[]{2,0,3,2,4,0,1,3,2,3,3};//存放arr[]数组的下标
        String tel="";
           for(int i:index){     //遍历数组,取index[]数组中每一个元素的值
            tel+=arr[i];
        }
          System.out.println("联系方式"+tel);
    }

}
 知识点
  • 数组:数组从0开始,所以index[]中的最大值4
  • 数组遍历:for each,翻译为,对于循环变量依次取数组每个元素的值,格式为for(声明变量:数组的名字)
疑问

arr[]int类型的数组,里面的元素为int类型,tel为String类型,但是在for循环中,进行了这样的操作tel+=arr[i](等价于tel=tel+arr[i]),两种不同的数据类型怎么可以相加呢?

解决

String并不是基本数据类型,而是一个类,并且是一个final类,final类是不可以修改的,只能用,不能继承.还有arr[i]中的元素为int类型,但是为什么在这个程序可以实现tel+=arr[i]呢?

实际上是String 类中特有的 + 运算符重载的作用(是编译器的做的手脚)

编译器就会把tel+=arr[i]就会变成tel=(new StringBuffer).append(tel).append(arr[i]).toString

JDK API中的StringBufferappend方法:
public StringBuffer append(int i)
Appends the string representation of the int argument to this sequence.
//把int参数以字符串形式追加到这个序列

append意思是追加,append方法中的参数可以是int类型的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值