<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    2015年12月31日

    地址:https://irusist.github.io


    !





    posted @ 2015-12-31 00:37 irusisit 閱讀(82) | 評論 (0)編輯 收藏

    2012年1月10日

        java虛擬機(jī)處理byte,short,char,int類型之間的“+”操作都是將他們轉(zhuǎn)化成int類型,壓入操作數(shù)棧,用int類型來做加法操作的,當(dāng)java程序中有還有l(wèi)ong,float,double中的一種時,會轉(zhuǎn)化成他們之中優(yōu)先級最高的,優(yōu)先級從long,float,double依次增高。boolean類型與上面所說的4種類型進(jìn)行"+"運算,編譯報錯不通過。基礎(chǔ)類型與String以外的引用類型進(jìn)行"+"操作時,編譯器報錯不通過。 當(dāng)兩個非String的引用類型進(jìn)行“+”操作時,編譯器會報錯不通過。
        當(dāng)byte,short,int類型與String的引用類型進(jìn)行“+”操作時,比如,在一個靜態(tài)方法里定義如下:
               byte b = 127;
            String str1 = "string";
             String str = b + str1;  

       產(chǎn)生的字節(jié)碼為:

             0:   bipush  127
             2:   istore_1
             3:   ldc     #2; //String string
             5:   astore_2
             6:   new     #3; //class java/lang/StringBuilder
             9:   dup
            10:  invokespecial   #4; //Method java/lang/StringBuilder."<init>":()V
            13:  iload_1
            14:  invokevirtual   #5; //Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
            17:  aload_2
            18:  invokevirtual   #6; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            21:  invokevirtual   #7; //Method java/lang/StringBuilder.toString:()Ljava/lang/String;
            24:  astore_3
            25:  return
         可見,String對象的與byte進(jìn)行“+”操作會先生成一個StringBuilder(jdk5以后,jdk5以前是StringBuffer)對象,將byte類型轉(zhuǎn)換為int類型傳入StringBuilder.append(int)的方法內(nèi),再將String對象傳入StringBuilder.append(String)方法內(nèi),最后調(diào)用這個StringBuilder對象的toString方法得到String對象。同理,short,boolean,long,float,double類型,引用類型與String對象進(jìn)行“+”操作也是同樣處理,分別調(diào)用StringBuilder的不同參數(shù)的重載方法,不過char對象與short會有所不同,他不會轉(zhuǎn)換成int類型,而是直接將char類型的值傳遞給StringBuilder的append(char)的方法。

     

    posted @ 2012-01-10 22:35 irusisit 閱讀(198) | 評論 (0)編輯 收藏

    2012年1月7日

        昨天晚上公司年會,散了之后一個人走在大街上,想到了很多,來南京有9個月了,2012,新的一年又該何去何從呢。有時候理想和生活很難并行,在一個好的公司上班,有個好的領(lǐng)導(dǎo),是最讓人期望的了,想起了剛來時面試的一道面試題。
        大概講的是一幅撲克牌,四種花色從A、2、到K,每種花色13張,一共52張,一開始每種花色的按順序擺放,然后進(jìn)行洗牌:分成2半,將一半的第一張放到另一半的第一張下面,第2張放到另一半的第2張下面,直到一半的所有牌都放到另一半的下面,一次洗牌完成,問至少要洗多少次牌才能恢復(fù)成原來的順序。
        假設(shè)將這52張牌排好序,分別為1到52,則1到13為一個花色,14到26為一個花色,27到39一共花色,40到52為一個花色。假設(shè)洗牌之前牌的序號為i,經(jīng)過一次洗牌過后,1到13序號的牌分到了1到25,則洗牌過后的序號為2i-1;14到26序號的牌被分到27到51,洗牌過后的序號為2(i-13) - 1 + 26;27到39的牌分到了2到26,洗牌過后的序號為2(i - 26) ;40到52序號的牌被分到28到52,洗牌過后的序號為 2(i - 39)  + 26。
        用代碼來表示就是
            public static List<Integer> nextResult(List<Integer> list){
            // return array
            Integer[] retArray = new Integer[52];
            // array index
            int index = 0;
            
            for(int i=1;i<list.size()+1;i++){
                if(i<=13){
                    index = 2 * i -1;
                } else if(i >13 && i <= 26){
                    index = 2 * (i-13) - 1 + 26;
                }else if(i >26 && i <= 39){
                    index = (i - 26) * 2;
                }else if(i >39 && i <= 52){
                    index = (i - 39) * 2 + 26;
                }
                
                retArray[index-1] = list.get(i-1);
            }
            
            return Arrays.asList(retArray);
        }
        在main方法里,用下面方式的num便是所要求的最小洗牌次數(shù)
            List<Integer> list = new ArrayList<Integer>();
            
            for(int i=1;i<53;i++){
                list.add(i);
            }
            
            // change num
            int num = 0;
            List<Integer> list1 = list;
            while(true){
                num++;
                List<Integer> retList = nextResult(list1);
                if(list.equals(retList)){
                    break;
                }
                list1 = retList;
            }
        
    posted @ 2012-01-07 22:29 irusisit 閱讀(142) | 評論 (0)編輯 收藏
    僅列出標(biāo)題  
     
    主站蜘蛛池模板: 成年女人18级毛片毛片免费| 91麻豆国产免费观看| 拔擦拔擦8x华人免费久久| 亚洲国产最大av| 黄色成人网站免费无码av| 亚洲欧美成人一区二区三区| 毛片在线免费视频| 精品亚洲麻豆1区2区3区| a级毛片在线免费看| 亚洲日本韩国在线| 无遮挡免费一区二区三区| 吃奶摸下高潮60分钟免费视频| 中文字幕在线日亚洲9| 无人影院手机版在线观看免费| 亚洲第一成年人网站| 免费精品国产自产拍在线观看图片| 91大神亚洲影视在线| 最近2022中文字幕免费视频 | 新最免费影视大全在线播放| 国产午夜鲁丝片AV无码免费| 久久精品国产亚洲AV电影网| 免费va人成视频网站全| 五月天婷婷免费视频| 情人伊人久久综合亚洲| 久久精品成人免费看| 亚洲理论片中文字幕电影| 在线永久免费的视频草莓| 国产精品亚洲综合五月天| 日韩精品免费一区二区三区| 亚洲av日韩aⅴ无码色老头| 亚洲不卡AV影片在线播放| 中文在线日本免费永久18近| 久久综合亚洲鲁鲁五月天| 一二三四视频在线观看中文版免费 | 亚洲字幕AV一区二区三区四区| 国产精品美女午夜爽爽爽免费| 亚洲男人的天堂网站| 国产乱子伦精品免费无码专区| 精品免费久久久久国产一区| 亚洲精品高清国产一久久| 成年女人喷潮毛片免费播放|