zoukankan      html  css  js  c++  java
  • java中的语法糖

    其实语法糖只不过是编译器实现的一些小把戏而已。

    这些小把戏包含条件编译、断言、Switch语句与枚举及字符串结合、可变参数、自动装箱/拆箱、枚举、内部类、泛型擦除、增强for循环、lambda表达式、try-with-resources语句、JDK10的局部变量类型推断等等。。。

    我感觉JDK版本的更迭只不过多了些语法糖而已,其底层以及jvm并没有发生太大的改变

    下面举两个例子,以便记忆。

    条件编译

    /**
     * 条件编译
     * option: 不需要参数
     */
    public void ifCompilerTest() {
        if(false) {
            System.out.println("false if");
        }else {
            System.out.println("true else");
        }
    }

    然后编译反编译之后的代码如下图所示:

    很明显, javac编译器在编译时期的解语法糖阶段, 会将条件分支不成立的代码进行消除

    可变参数

    /**
     * 可变参数
     * option: --arrayiter false
     */
    public void varargsTest(String ... arr) {
        for (String s : arr) {
            System.out.println(s);
        }
    }

    然后编译反编译之后的代码如下图所示:

    可变参数其实就是一个不定长度的数组, 数组长度随传入方法的对应参数个数来决定。可变参数只能在参数列表的末位使用

  • 相关阅读:
    Beta 冲刺(5/7)
    Beta 冲刺(4/7)
    Beta 冲刺(3/7)
    Beta 冲刺(2/7)
    Beta 冲刺(1/7)
    福大软工 · 第十次作业
    PTA-B 1039 到底买不买 解题思路记录
    SDN负载均衡
    团队作业——项目验收与总结博客
    个人作业——软件工程实践总结作业
  • 原文地址:https://www.cnblogs.com/caotao0918/p/10990076.html
Copyright © 2011-2022 走看看