您的位置:1010cc时时彩经典版 > 1010cc时时彩经典版 > 1010cc时时彩经典版jre7及以上版本中的switch支持

1010cc时时彩经典版jre7及以上版本中的switch支持

发布时间:2019-08-16 22:54编辑:1010cc时时彩经典版浏览(151)

    Java的开始化块、静态起先化块、构造函数的实行各类及用途商量,java构造函数

     

      Java与C 有叁个分歧之处在于,Java不但有构造函数,还或然有八个”伊始化块“(Initialization Block)的概念。上边斟酌一下它的实施顺序与也许的用处。

    String StringBuilder 以及StringBuffer
    [code="java"]

    ```

    在编制程序语言中大家,都会接触到枚举类型,日常大家实行夏朝的罗列来兑现部分范围。Java也不例外。Java中的枚举类型为Enum,本文将对枚举进行局部相比较尖锐的解析。

    Java7中的switch扶助String的落到实处细节

    作者: zsxwing 更新: 2013-03-04 21:08:02 发布: 2012-04-26 13:58:19

     

    在Java7以前,switch只可以援救byte、short、char、int只怕其相应的封装类以及Enum类型。在Java7中,呼吁比较久的String援救也好不轻易被加上了。

     

    譬喻,上边是一段switch中央银行使String的身体力行代码。

     

     1 public class Test {
     2 
     3     public void test(String str) {
     4         switch(str) {
     5         case "abc":
     6             System.out.println("abc");
     7             break;
     8         case "def":
     9             System.out.println("def");
    10             break;
    11         default:
    12             System.out.println("default");
    13         }
    14     }
    15 
    16 }
    

     

     

     

    在switch语句中,String的相比较用的是String.equals,因而我们能够放心的应用。

    内需注意的是,传给switch的String变量无法为null,同期switch的case子句中动用的字符串也不可能为null。

    怎么要有那个非null的限制呢?其实,大家只要将这段代码反汇编出来,看一下后面部分到底是何等贯彻的,就足以领略了。下边是汇编出来的代码。

     

    Compiled from "Test.java"

    public class Test extends java.lang.Object{

    public Test();

      Code:

       0:     aload_0

       1:     invokespecial     #1; //Method java/lang/Object."":()V

       4:     return

     

    public void test(java.lang.String);

      Code:

       0:     aload_1

       1:     astore_2

       2:     iconst_m1

       3:     istore_3

       4:     aload_2

       5:     invokevirtual     #2; //Method java/lang/String.hashCode:()I

       8:     lookupswitch{ //2

              96354: 36;

              99333: 50;

              default: 61 }

       36:     aload_2

       37:     ldc     #3; //String abc

       39:     invokevirtual     #4; //Method java/lang/String.equals:(Ljava/lang/Object;)Z

       42:     ifeq     61

       45:     iconst_0

       46:     istore_3

       47:     goto     61

       50:     aload_2

       51:     ldc     #5; //String def

       53:     invokevirtual     #4; //Method java/lang/String.equals:(Ljava/lang/Object;)Z

       56:     ifeq     61

       59:     iconst_1

       60:     istore_3

       61:     iload_3

       62:     lookupswitch{ //2

              0: 88;

              1: 99;

              default: 110 }

       88:     getstatic     #6; //Field java/lang/System.out:Ljava/io/PrintStream;

       91:     ldc     #3; //String abc

       93:     invokevirtual     #7; //Method java/io/PrintStream.println:(Ljava/lang/String;)V

       96:     goto     118

       99:     getstatic     #6; //Field java/lang/System.out:Ljava/io/PrintStream;

       102:     ldc     #5; //String def

       104:     invokevirtual     #7; //Method java/io/PrintStream.println:(Ljava/lang/String;)V

       107:     goto     118

       110:     getstatic     #6; //Field java/lang/System.out:Ljava/io/PrintStream;

       113:     ldc     #8; //String default

       115:     invokevirtual     #7; //Method java/io/PrintStream.println:(Ljava/lang/String;)V

       118:     return

     

    }

     

    估量有个别同学懒得看那么些汇编,其实把上面的汇编代码用Java写出来正是上面的指南了。

    写到这里,我们应该能驾驭为啥不能够用null了吧。

     

     1 public class Test {
     2     public void test(String str) {
     3         int i = -1;
     4         switch(str.hashCode()) {
     5         case 96354: // "abc".hashCode()
     6             if (str.equals("abc")) {
     7               i = 0;
     8             }
     9             break;
    10         case 99333: // "def".hashCode()
    11             if (str.equals("def")) {
    12               i = 1;
    13             }
    14             break;
    15         default:
    16             break;
    17         }
    18 
    19         switch(i) {
    20         case 0:
    21             System.out.println("abc");
    22             break;
    23         case 1:
    24             System.out.println("def");
    25             break;
    26         default:
    27             System.out.println("default");
    28         }
    29     }
    30 }
    

     

     

    倘若switch传入的null,那么在运作时对一个null对象调用hashCode方法会冒出NullPointerException。

    一旦switch的case写的是null,那么在编写翻译时不或许求出hashCode,因而在编写翻译时就能报错了。

     

    switch帮助String只是贰个语法糖,由javac来担任生成对应的代码。底层的JVM在switch上并未进行修改。

     

    参考

     

    假如switch传入的null,那么在运维时对贰个null对象调用hashCode方法会并发NullPointerException。

    例如switch的case写的是null,那么在编写翻译时力不能及求出hashCode,由此在编写翻译时就能够报错了。

     

    switch扶助String只是三个语法糖,由javac来顶住生成对应的代码。底层的JVM在switch上并从未开始展览修改。

     

    进行种种

      首先定义A, B, C八个类用作测量试验,当中B传承了A,C又继续了B,并分别给它们增进静态起先化块、非静态初叶化块和构造函数,里面都是一句轻易的出口。

      主类Main里面也照猫画虎。

    1010cc时时彩经典版 1 1 class A { 2 static { 3 System.out.println("Static init A."); 4 } 5 6 { 7 System.out.println("Instance init A."); 8 } 9 10 A() { 11 System.out.println("Constructor A."); 12 } 13 } 14 15 class B extends A { 16 static { 17 System.out.println("Static init B."); 18 } 19 20 { 21 System.out.println("Instance init B."); 22 } 23 24 B() { 25 System.out.println("Constructor B."); 26 } 27 } 28 29 class C extends B { 30 31 static { 32 System.out.println("Static init C."); 33 } 34 35 { 36 System.out.println("Instance init C."); 37 } 38 39 C() { 40 System.out.println("Constructor C."); 41 } 42 } 43 44 public class Main { 45 46 static { 47 System.out.println("Static init Main."); 48 } 49 50 { 51 System.out.println("Instance init Main."); 52 } 53 54 public Main() { 55 System.out.println("Constructor Main."); 56 } 57 58 public static void main(String[] args) { 59 C c = new C(); 60 //B b = new B(); 61 } 62 } 测验代码

     

      当然这里不选拔在那之中类,因为里面类不可能运用静态的定义;而用静态内部类就错失了一般。

      那么能够看出,当程序步向了main函数,并创建了二个类C的目的之后,输出是那样子的:

    Static init Main.
    Static init A.
    Static init B.
    Static init C.
    Instance init A.
    Constructor A.
    Instance init B.
    Constructor B.
    Instance init C.
    Constructor C.
    

     

      观看地点的出口,能够考查到五个有意思的场景:

      那么只要有三个实例化对象,又会不会产生变化呢?于是在首先个C类的指标前面,再实例化一个B类的目的,再观望输出:

    Static init Main.
    Static init A.
    Static init B.
    Static init C.
    Instance init A.
    Constructor A.
    Instance init B.
    Constructor B.
    Instance init C.
    Constructor C.
    Instance init A.
    Constructor A.
    Instance init B.
    Constructor B.
    

     

      可以窥见那输出眼前边的主干长得同样对啊?只是在背后多了4行,那是新的B类对象实例化时发生的音讯,一样也是父类A的开始化块和构造函数先实践,再轮到子类B的早先化块和构造函数实施;同期还发掘,静态伊始化块的输出只现身了一回,也正是说每一个类的静态早先化块都只在第一回实例化该类对象时实行一遍。

      无论如何,初始化块和构造函数总在一同试行是件好玩的业务,让大家反编写翻译一下看看吧!

      查看生成目录开掘已经变化了4个.class文件,分别是A.class, B.class, C.class, Main.class,先看看Main.class的组织(这里再一次讲明了new B):

    1 javap -c Main
    

    1010cc时时彩经典版 2 1 Compiled from "Main.java" 2 public class Main { 3 public Main(); 4 Code: 5 0: aload_0 6 1: invokespecial #1 // Method java/lang/Object."<init>":()V 7 4: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream; 8 7: ldc #3 // String Instance init Main. 9 9: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 10 12: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream; 11 15: ldc #5 // String Constructor Main. 12 17: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 13 20: return 14 15 public static void main(java.lang.String[]); 16 Code: 17 0: new #6 // class C 18 3: dup 19 4: invokespecial #7 // Method C."<init>":()V 20 7: astore_1 21 8: return 22 23 static {}; 24 Code: 25 0: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream; 26 3: ldc #8 // String Static init Main. 27 5: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 28 8: return 29 } Main.class的反编写翻译结果

     

      能够见见整个Main类被分成五个部分,static {}部分很显然,便是我们的static开头化块,在中间调用了println并出口了String“Static init Main.”;而main入口函数也很显著,首先新实例化了三个类C的靶子,然后调用了类C的构造函数,最终回来;而地点public Main();的一些就很有意思了,那是类Main的构造函数,但大家看出里面调用了两回println,分别出口了String“Instance init Main.”和String“Constructor Main.”。难道开始化块和构造函数被统一到一块儿了?

      大家再看看C类的反编写翻译结果吧:

    1 javap -c C
    

    1010cc时时彩经典版 3Compiled from "Main.java" class C extends B { C(); Code: 0: aload_0 1: invokespecial #1 // Method B."<init>":()V 4: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream; 7: ldc #3 // String Instance init C. 9: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 12: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream; 15: ldc #5 // String Constructor C. 17: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 20: return static {}; Code: 0: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream; 3: ldc #6 // String Static init C. 5: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 8: return } C.class的反编写翻译结果

     

      静态开首化块依旧单独分出一部分,输出了我们的调和语句。而另一部分,依旧照旧类C的构造函数C();,能够看到它先调用了父类B的构造函数,接着输出了大家初叶化块中的语句,然后才输出大家写在构造函数中的语句,最终回来。多次检测也都以这么。于是我们能够测度:初叶化块的代码是被参预到子类构造函数的前头,父类开始化的前边了。

     

    public class Test1 {

    public class Test{

    Enum是自Java 5 引进的表征,用来方便Java开采者实现枚举应用。一个回顾的Enum使用如下。

    唯恐的用途:

      既然进行顺序和大概原理都摸清了,那么就要研讨一下先河化块的也许的用处。

    /** * @param args */public static void main(String[] args){ long strbuilderTime1=System.currentTimeMillis(); StringBuilder str=new StringBuilder; for(int i=0;i<10000;i  ){ str.append; } System.out.println(str.toString; System.out.print("StringBuilder耗时:"); System.out.println(System.currentTimeMillis()-strbuilderTime1); long strbuilderTime2=System.currentTimeMillis(); StringBuffer str1=new StringBuffer; for(int i=0;i<10000;i  ){ str1.append; } System.out.println(str1.toString; System.out.print("StringBuffer耗时:"); System.out.println(System.currentTimeMillis()-strbuilderTime2); long strbuilderTime3=System.currentTimeMillis(); String str2="123"; for(int i=0;i<10000;i  ){ str2=str2 "1"; } System.out.println(str2.toString; System.out.print("String耗时:"); System.out.println(System.currentTimeMillis()-strbuilderTime3);}}
    

    static abstract class Human{

    // ColorEnum.java

    public enum ColorEmun {

    RED,

    GREEN,

    YELLOW

    }

    public void setColorEnum(ColorEmun colorEnum) {

    //some code here

    }

    setColorEnum(ColorEmun.GREEN);

     静态开头化块

      1.  用以初叶化静态成员变量

      比方给类C扩大三个静态成员变量sub,大家在static块里面给它赋值为5:

     1 class C extends B {
     2 
     3     static public int a;
     4 
     5     static {
     6         a = 5;
     7         System.out.println("Static init C.");
     8     }
     9 
    10 ......
    11 
    12 }
    

      main函数里输出这么些静态变量C.sub:

    1 public static void main(String[] args) {
    2     System.out.println("Value of C.sub: "   C.sub);
    3 }
    

      则输出结果:

    Static init Main.
    Static init A.
    Static init B.
    Static init C.
    Value of C.sub: 5
    

      符合类被第二遍加载时奉行静态伊始化块的下结论,且C.sub被科学赋值为5并出口了出来。

      可是乍一看似乎没有怎么用,因为静态成员变量在概念时就足以顺便赋值了。由此在赋值方面有一点点鸡肋。

     

      2.  实施初步化代码

      比如能够记录第贰回访谈类的日记,或方便人民群众单例方式的初始化等。对于单例格局,能够先用static块开头化一些只怕还被别的类访问的功底参数,等到真正需求加载多量财富的时候(getInstance)再组织单体,在构造函数中加载能源。

     

    反编译 的:
    Code:
    0: aload_0
    1: invokespecial #8; //Method java/lang/Object."":()V
    4: return

    }

    在Enum以前的大家利用类似如下的代码实现枚举的成效.

     非静态开始化块

      这些就没怎么好说的了,基本跟构造函数一个效果与利益,但比构造函数先实践。最常见的用法应该照旧代码复用,即七个重载构造函数皆有多少段同样的代码,那么能够把这几个再度的代码拉出去放到开首化块中,但照样要注意它的试行顺序,对一一有严厉要求的早先化代码就不吻合采纳了。

     

    public static void main(java.lang.String[]);
    Code:
    0: invokestatic #16; //Method java/lang/System.currentTimeMillis:()J
    3: lstore_1
    4: new #22; //class java/lang/StringBuilder
    7: dup
    8: ldc #24; //String 123
    10: invokespecial #26; //Method java/lang/StringBuilder."":(Ljava/la
    ng/String;)V
    13: astore_3
    14: iconst_0
    15: istore 4
    17: goto 30
    20: aload_3
    21: ldc #29; //String 1
    23: invokevirtual #31; //Method java/lang/StringBuilder.append:(Ljava/lang
    /String;)Ljava/lang/StringBuilder;
    26: pop
    27: iinc 4, 1
    30: iload 4
    32: sipush 10000
    35: if_icmplt 20
    38: getstatic #35; //Field java/lang/System.out:Ljava/io/PrintStream;
    41: aload_3
    42: invokevirtual #39; //Method java/lang/StringBuilder.toString:()Ljava/l
    ang/String;
    45: invokevirtual #43; //Method java/io/PrintStream.println:(Ljava/lang/St
    ring;)V
    48: getstatic #35; //Field java/lang/System.out:Ljava/io/PrintStream;
    51: ldc #48; //String StringBuilder耗时:
    53: invokevirtual #50; //Method java/io/PrintStream.print:(Ljava/lang/Stri
    ng;)V
    56: getstatic #35; //Field java/lang/System.out:Ljava/io/PrintStream;
    59: invokestatic #16; //Method java/lang/System.currentTimeMillis:()J
    62: lload_1
    63: lsub
    64: invokevirtual #53; //Method java/io/PrintStream.println:V
    67: invokestatic #16; //Method java/lang/System.currentTimeMillis:()J
    70: lstore 4
    72: new #56; //class java/lang/StringBuffer
    75: dup
    76: ldc #24; //String 123
    78: invokespecial #58; //Method java/lang/StringBuffer."":(Ljava/lan
    g/String;)V
    81: astore 6
    83: iconst_0
    84: istore 7
    86: goto 100
    89: aload 6
    91: ldc #29; //String 1
    93: invokevirtual #59; //Method java/lang/StringBuffer.append:(Ljava/lang/
    String;)Ljava/lang/StringBuffer;
    96: pop
    97: iinc 7, 1
    100: iload 7
    102: sipush 10000
    105: if_icmplt 89
    108: getstatic #35; //Field java/lang/System.out:Ljava/io/PrintStream;
    111: aload 6
    113: invokevirtual #62; //Method java/lang/StringBuffer.toString:()Ljava/la
    ng/String;
    116: invokevirtual #43; //Method java/io/PrintStream.println:(Ljava/lang/St
    ring;)V
    119: getstatic #35; //Field java/lang/System.out:Ljava/io/PrintStream;
    122: ldc #63; //String StringBuffer耗时:
    124: invokevirtual #50; //Method java/io/PrintStream.print:(Ljava/lang/Stri
    ng;)V
    127: getstatic #35; //Field java/lang/System.out:Ljava/io/PrintStream;
    130: invokestatic #16; //Method java/lang/System.currentTimeMillis:()J
    133: lload 4
    135: lsub
    136: invokevirtual #53; //Method java/io/PrintStream.println:V
    139: invokestatic #16; //Method java/lang/System.currentTimeMillis:()J
    142: lstore 7
    144: ldc #24; //String 123
    146: astore 9
    148: iconst_0
    149: istore 10
    151: goto 179
    154: new #22; //class java/lang/StringBuilder
    157: dup
    158: aload 9
    160: invokestatic #65; //Method java/lang/String.valueOf:(Ljava/lang/Objec
    t;)Ljava/lang/String;
    163: invokespecial #26; //Method java/lang/StringBuilder."":(Ljava/la
    ng/String;)V
    166: ldc #29; //String 1
    168: invokevirtual #31; //Method java/lang/StringBuilder.append:(Ljava/lang
    /String;)Ljava/lang/StringBuilder;
    171: invokevirtual #39; //Method java/lang/StringBuilder.toString:()Ljava/l
    ang/String;
    174: astore 9
    176: iinc 10, 1
    179: iload 10
    181: sipush 10000
    184: if_icmplt 154
    187: getstatic #35; //Field java/lang/System.out:Ljava/io/PrintStream;
    190: aload 9
    192: invokevirtual #71; //Method java/lang/String.toString:()Ljava/lang/Str
    ing;
    195: invokevirtual #43; //Method java/io/PrintStream.println:(Ljava/lang/St
    ring;)V
    198: getstatic #35; //Field java/lang/System.out:Ljava/io/PrintStream;
    201: ldc #72; //String String耗时:
    203: invokevirtual #50; //Method java/io/PrintStream.print:(Ljava/lang/Stri
    ng;)V
    206: getstatic #35; //Field java/lang/System.out:Ljava/io/PrintStream;
    209: invokestatic #16; //Method java/lang/System.currentTimeMillis:()J
    212: lload 7
    214: lsub
    215: invokevirtual #53; //Method java/io/PrintStream.println:V
    218: return

    static class Man extends Human{

    public static final int COLOR_RED = 0;

    public static final int COLOR_GREEN = 1;

    public static final int COLOR_YELLOW = 2;

    public void setColor(int color) {

    //some code here

    }

    //调用

    setColor(COLOR_RED)

    总结: 

      

     

    本文基于1010cc时时彩经典版 4文化分享具名-非商业性利用-同样格局分享4.0 国际许可协议发表,应接援用、转发或演绎,可是必须保留本文的签字BlackStorm以及本文链接

    Java与C 有二个差别之处在于,Java不但有构造函数,还也是有一...

    }

    }

    唯独下面的还是有欠缺完善的地点

    [/code]

    static class Woman extends Human{

    setColor(COLOR_RED)与setColor效果一样,而前面一个可读性相当不好,但却足以不荒谬运作

    注:
    jdk 用的是1.6的

    }

    setColor方法能够承受枚举之外的值,比方setColor,这种意况下程序可能出题目

    1231111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    StringBuilder耗时:31
    1231111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    StringBuffer耗时:16
    1231111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    String耗时:468

    public void sayHello(Human guy){

    蕴含来讲,古板枚举有如下七个缺欠

    String的 也是编译成StringBuilder,为啥耗费时间存在这么大的题目呀?why
    还会有上面反编写翻译的这个代码有权威帮解释一下吗
    [b]主题材料补充:[/b]
    对此StringBuffer和StringBuilder这么些频率是未有什么说的,测验的时候有个别标称误差,但是知道二个是线程安全,三个是非线程安全,不过String的 是同等:
    [code="java"]
    for(int i = 0; i < 10000; i ){

    System.out.println("hello guy");

    安全性

    sb = new StringBuilder;

    }

    可读性,尤其是打字与印刷日志时

    sb.append;

    public void sayHello(Man guy){

    因此Java引进了Enum,使用Enum,大家完毕地点的枚举就很简短了,并且还足以轻便幸免传入违规值的危害.

    str2 = sb.toString();

    System.out.println("hello gentleman");

    Java中Enum的本来面目实际上是在编写翻译时代调换来对应的类的样式。

    } [/code]

    }

    率先,为了研商枚举的准绳,大家先轻巧定义三个枚举类,这里以季节为例,类名字为Season,包罗春夏季新秋冬五个枚举条约.

    受益了

    public void sayHello(Woman guy){

    public enum Season {

    SPRING,

    SUMMER,

    AUTUMN,

    WINTER

    }

    System.out.println("hello lady");

    然后我们利用javac编写翻译上边的类,获得class文件.

    }

    javac Season.java

    public static void main(String[] args){

    下一场,大家使用反编写翻译的不二等秘书籍来看看字节码文件到底是什么.这里运用的工具是javap的粗略命令,先列举一下以此Season下的成套成分.

    Human man = new Man();

    ➜ company javap Season

    Warning: Binary file Season contains com.company.Season

    Compiled from "Season.java"

    public final class com.company.Season extends java.lang.Enum<com.company.Season> {

    public static final com.company.Season SPRING;

    public static final com.company.Season SUMMER;

    public static final com.company.Season AUTUMN;

    public static final com.company.Season WINTER;

    public static com.company.Season[] values();

    public static com.company.Season valueOf(java.lang.String);

    static {};

    }

    本文由1010cc时时彩经典版发布于1010cc时时彩经典版,转载请注明出处:1010cc时时彩经典版jre7及以上版本中的switch支持

    关键词:

上一篇:1010cc时时彩经典版Java每日一题

下一篇:没有了