一张图片包含的JAVA知识点

作者: lemonTreeTop | 来源:发表于2016-06-25 15:34 被阅读235次
    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类型的

    相关文章

      网友评论

        本文标题:一张图片包含的JAVA知识点

        本文链接:https://www.haomeiwen.com/subject/zbradttx.html