zoukankan      html  css  js  c++  java
  • Java语法糖

      语法糖(Syntactic Sugar),也称糖衣语法,是由英国计算机学家 Peter.J.Landin 发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。简而言之,语法糖让程序更加简洁,有更高的可读性。

      语法糖的存在主要是方便开发人员使用。但其实,Java虚拟机并不支持这些语法糖。这些语法糖在编译阶段就会被还原成简单的基础语法结构,这个过程就是解语法糖。

    语法糖一:switch支持String和枚举

      switch 语句中的变量类型可以是: byte、short、int 或者 char。对于byte、short、int类型,直接进行数值的比较。对于char类型则是比较其ascii码。所以,对于编译器来说,switch中其实只能使用整型,任何类型的比较都要转换成整型。

    public void switchString(String str) {
            switch (str) {
                case "huang":
                    System.out.println("huang");
                    break;
                case "chen":
                    System.out.println("chen");
                    break;
                default:
                    System.out.println("default");
                    break;
            }
        }
    
        public void switchEnum(SexEnum sexEnum) {
            switch (sexEnum) {
                case MALE:
                    System.out.println("male");
                    break;
                case FEMALE:
                    System.out.println("female");
                    break;
                default:
                    System.out.println("default");
                    break;
            }
        }

    idea编译后

    public void switchString(String str) {
            byte var3 = -1;
            switch(str.hashCode()) {
            case 3052494:
                if (str.equals("chen")) {
                    var3 = 1;
                }
                break;
            case 99628461:
                if (str.equals("huang")) {
                    var3 = 0;
                }
            }
    
            switch(var3) {
            case 0:
                System.out.println("huang");
                break;
            case 1:
                System.out.println("chen");
                break;
            default:
                System.out.println("default");
            }
    
        }
    
        public void switchEnum(SexEnum sexEnum) {
            switch(sexEnum) {
            case MALE:
                System.out.println("male");
                break;
            case FEMALE:
                System.out.println("female");
                break;
            default:
                System.out.println("default");
            }
    
        }

      

  • 相关阅读:
    Android绝黑剑之AutoCompleteTextView、MultiAutoCompleteTextView之智能联想
    F5 BIGIP负载均衡器配置实例与Web管理界面体验
    Java进阶之动态绑定
    某大型银行深化系统之二十:异常规范
    数据结构之排序
    数据结构之数组
    使用ssh来登录其它linux机器
    beanstalkc简易指令说明集
    ruby数组方法concat和push的区别
    uWSGI基础攻略
  • 原文地址:https://www.cnblogs.com/517cn/p/10879085.html
Copyright © 2011-2022 走看看