一张图片包含的JAVA知识点

来源:互联网 发布:java文件断点续传 编辑:程序博客网 时间:2024/06/03 03:47

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
原创粉丝点击