• foreach语句


    foreach语句他无非就是for循环的封装,为了提高开发速度才创造出来的。他其实跟for循环一样,只不过写起来比较简便,他是1.5版本才出来的一种封装语法。并没有什么奇特之处他里面的机制就是for循环。如图7.3所示:

      

      图7.3

      首先放在冒号后面的,他可以是数组的类型也可以是集合类型还可以是枚举类型,也就是说只要写上类似于这种容器,能够容乃多个的就是行。

      那这个i是什么意思呢?每次循环的时候,i他取出一个值交给变量j,变量j就是接收者,接收从数组或者集合里拿出来的值交给接收者,每次循环重新接收值。

      就算这样写但最后编成class文件他还是还原了以前的写法,他只是一种简写,就是为了加快开发的速度,他底层的东西是没有发生改变的,所以这只是一种简写的方式,最终还是转换成了机器认识的东西。

      任何的编程语言不管什么样的写法,他其实最终都会转成机器的代码,机器他永远认识的都那一个。为什么软件很容易破解如图6.31所示:

      

      图7.31

      用户写代码,转成机器认识的代码,机器码是可以翻译过来的,而源代码别人是看不到的,不知道逻辑是怎么运行的。

      比如饭店,有火爆的也有不火爆的,其实最重要的是管理的制度,做菜也是一样的材料,一样的地方好的,但是他做出来的就是好吃,或者人家的服务就是好,那么人家的做法,人家的服务就是人家的逻辑,你给的什么材料无非就是资源。所以逻辑是理念是看不到的,最终的结果就是一盘菜出来。

      所以做反编译,做解码那些大部分都是从机器码下手的,机器码都是可以看到的。只有中间的这个源代码部分看不到。什么是开源,开源就是把人能够看懂的代码开源出来。

      结合上面的内容,foreach语句紧紧只是一种简写的写法而已,不管到哪,他最终都会形成for循环的那种形式。也就是不管任何的编码他怎么做,他最终都会转成机器码去执行。

      需要注意的是,你的数组是什么类型的,那么foreach语句的接收者也得是什么类型的不然会报错如图7.32所示:

      

      图7.32

    技术分享:www.kaige123.com

  • 相关阅读:
    MySQL5.7 多主一从(多源复制)同步配置
    mysql 树形查询 结果
    【教程】Chrome 浏览器安装Vue插件方法 (十分详细)
    MySQL数据库备份
    nginx之ngnix搭建静态服务器,前端css,js,图片,视频等静态资源走nginx代理,实现Nginx缓存,压缩
    尽量不要让儿女从事这3种工作,钱再多也别做,坚持再久也没前途
    【MySQL】mysql5.7多源复制报错问题处理
    MyBatis 多条件查询、动态SQL、多表操作、注解开发,应有尽有,一网打尽!
    MySQL 5.7多源复制配置详解
    mysql 逆向生成Pmd 文件
  • 原文地址:https://www.cnblogs.com/kaige123/p/5982697.html
Copyright © 2020-2023  润新知