成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaAPI學(xué)習(xí)——java.lang(二)

princekin / 2955人閱讀

摘要:已知常用子接口實(shí)現(xiàn)該接口的類可以成為語(yǔ)句的目標(biāo)唯一方法返回一個(gè)在一組類型的元素上進(jìn)行迭代的迭代器。使用遍歷對(duì)象判斷是否存在下一個(gè)元素獲取下一個(gè)元素移除該元素為類專門(mén)創(chuàng)建的接口。

6 Iterable

已知常用子接口:Collection、List、Set;

實(shí)現(xiàn)該接口的類可以成為foreach 語(yǔ)句的目標(biāo)

List list = new ArrayList();
for(List item : list){
    do something...
}

唯一方法:Iterator iterator():返回一個(gè)在一組 T 類型的元素上進(jìn)行迭代的迭代器。

    //使用Iterator 遍歷Collection對(duì)象
    List list = new ArrayList();
        for (int i = 0; i < 10; i++) {
            list.add(i);
        }
        Iterator iterator = list.iterator();
        while(iterator.hasNext()){ //判斷是否存在下一個(gè)元素
            int itme = (int) iterator.next(); //獲取下一個(gè)元素
            System.out.println(itme);
            iterator.remove(); //移除該元素
        }
7 Readable: 為Scanner類專門(mén)創(chuàng)建的接口。

實(shí)例化一個(gè)Scanner對(duì)象,構(gòu)造方法的入?yún)⒖梢允侨魏螌?shí)現(xiàn)了Readable接口的類的對(duì)象,該類實(shí)現(xiàn)Readable接口的read()方法,當(dāng)調(diào)用Scanner對(duì)象的next()方法時(shí),講使用自己實(shí)現(xiàn)的read()方法。

package com.heisenberg.Learn;

import java.nio.CharBuffer;
import java.util.Scanner;
import static java.lang.System.*;

public class Test implements Readable{
    private int readCount = 1;//read()執(zhí)行次數(shù)  
    private int loopCount = 1;  
    public Test() {  }   
    public int read(CharBuffer cb) {  

        if (loopCount == 1){
            out.println("進(jìn)入read執(zhí)行第" + readCount + "次");
            readCount++;
            cb.append("aa bb cc ");
            loopCount++;return 1;
        }//僅僅在第一次和第六次給CharBuffer添加3個(gè)數(shù)據(jù)  
        if (loopCount == 2){
            out.println("進(jìn)入read執(zhí)行第" + readCount + "次");
            readCount++;
            loopCount++;
            return 1;
        }//其他的時(shí)候返回1,但是并不往Buffer中存放數(shù)據(jù),來(lái)騙被調(diào)用者h(yuǎn)asNext(),來(lái)觀察出現(xiàn)了什么現(xiàn)象  
        if (loopCount == 3){
            out.println("進(jìn)入read執(zhí)行第" + readCount + "次");
            readCount++;
            loopCount++;
            return 1;
        }  
        if (loopCount == 4){
            out.println("進(jìn)入read執(zhí)行第" + readCount + "次");
            readCount++;
            loopCount++;
            return 1;
        }  
        if (loopCount == 5){
            out.println("進(jìn)入read執(zhí)行第" + readCount + "次");
            readCount++;
            loopCount++;
            return 1;
        }  

        if (loopCount == 6){
            out.println("進(jìn)入read執(zhí)行第" + readCount + "次");
            readCount++;
            cb.append("oo pp qq ");
            loopCount++;
            return 1;
        }  
        if (loopCount == 7){
            out.println("進(jìn)入read執(zhí)行第" + readCount + "次");
            readCount++;
            loopCount++;
            return 1;
        }  
        if (loopCount == 8){
            out.println("進(jìn)入read執(zhí)行第" + readCount + "次");
            readCount++;
            loopCount++;
            return 1;
        }  
        if (loopCount == 9){
            out.println("進(jìn)入read執(zhí)行第" + readCount + "次");
            readCount++;
            loopCount++;
            return 1;
        }  
        if (loopCount == 10){
            out.println("進(jìn)入read執(zhí)行第" + readCount + "次");
            readCount++;
            return -1;
        }  
        return 1;     
    }  

    public static void main(String[] args) {  
        int a = 1;//外層循環(huán)的次數(shù)  
        Scanner s = new Scanner(new Test())  ;
        while(s.hasNext()){//這個(gè)hasNext()方法會(huì)調(diào)用read()方法的  
            out.println("第" + a + "次執(zhí)行外層循環(huán)");  
            a ++;  
            System.out.println("從cb中讀出 " + s.next());  
        }  
    }  

}

以上demo的運(yùn)行結(jié)果為:
進(jìn)入read執(zhí)行第1次
第1次執(zhí)行外層循環(huán)
從cb中讀出 aa
第2次執(zhí)行外層循環(huán)
從cb中讀出 bb
第3次執(zhí)行外層循環(huán)
從cb中讀出 cc
進(jìn)入read執(zhí)行第2次
進(jìn)入read執(zhí)行第3次
進(jìn)入read執(zhí)行第4次
進(jìn)入read執(zhí)行第5次
進(jìn)入read執(zhí)行第6次
第4次執(zhí)行外層循環(huán)
從cb中讀出 oo
第5次執(zhí)行外層循環(huán)
從cb中讀出 pp
第6次執(zhí)行外層循環(huán)
從cb中讀出 qq
進(jìn)入read執(zhí)行第7次
進(jìn)入read執(zhí)行第8次
進(jìn)入read執(zhí)行第9次
進(jìn)入read執(zhí)行第10次

當(dāng)調(diào)用s.hasNext()時(shí),程序會(huì)判斷字符緩沖區(qū)中是否還有未讀字符,如果有,則返回true,調(diào)用s.next()時(shí),返回未讀字符串第一個(gè)空格前的所有字符。如果緩沖區(qū)中沒(méi)有未讀字符,則調(diào)用Readable.read()方法,向字符緩沖區(qū)中放入字符,Readabel.read()返回-1之外的任何整數(shù),當(dāng)字符緩沖區(qū)沒(méi)有未讀字符時(shí),都將會(huì)繼續(xù)調(diào)用Readable.read()方法,直到Readable.read()方法返回-1,才會(huì)結(jié)束while循環(huán)體。

8 Runnable

實(shí)現(xiàn)該接口的類必須實(shí)現(xiàn)run()方法,run()方法的實(shí)現(xiàn)將在新的線程中執(zhí)行;

Thread類實(shí)現(xiàn)了Runnable接口,所以一個(gè)類通過(guò)繼承Thread類實(shí)現(xiàn)多線程,也是間接的采用實(shí)現(xiàn)Runnable接口。

package com.heisenberg.Learn;

import static java.lang.System.*;

public class Test implements Runnable{
    

    @Override
    public void run() {
        for (int i = 0 ; i< 10; i++) {
            out.println("新線程中的第" + i + "次循環(huán)");
        }
        
    }

    public static void main(String[] args) {  
        Thread newThread = new Thread(new Test());
        newThread.start();
        for (int i = 0 ; i< 10; i++) {
            out.println("main方法中的第" + i + "次循環(huán)");
        }
    }  

}

可能的一種運(yùn)行結(jié)果為:
main方法中的第0次循環(huán)
main方法中的第1次循環(huán)
新線程中的第0次循環(huán)
新線程中的第1次循環(huán)
main方法中的第2次循環(huán)
main方法中的第3次循環(huán)
main方法中的第4次循環(huán)
main方法中的第5次循環(huán)
main方法中的第6次循環(huán)
main方法中的第7次循環(huán)
main方法中的第8次循環(huán)
main方法中的第9次循環(huán)
新線程中的第2次循環(huán)
新線程中的第3次循環(huán)
新線程中的第4次循環(huán)
新線程中的第5次循環(huán)
新線程中的第7次循環(huán)
新線程中的第8次循環(huán)
新線程中的第9次循環(huán)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/68311.html

相關(guān)文章

  • JavaAPI學(xué)習(xí)——java.lang(三)

    摘要:中的枚舉是一個(gè)類,所以枚舉也可一后構(gòu)造函數(shù)和其他的方法只是枚舉繼承了類,所以它不能再繼承其它的類。如果給每個(gè)枚舉值指定屬性,則必須給枚舉類提供枚舉值屬性對(duì)應(yīng)數(shù)據(jù)類型的構(gòu)造方法。紅色藍(lán)色白色運(yùn)行的結(jié)果為藍(lán)色 二、類 1、Enum 枚舉 java 語(yǔ)言所有枚舉類型的公共類; 枚舉用來(lái)替換使用常量表示列入顏色、方式、類別等數(shù)量有限,形式離散有表示明確的量; 枚舉是類型安全的,超出枚舉類型的...

    ranwu 評(píng)論0 收藏0
  • JavaAPI學(xué)習(xí)——java.lang(一)

    摘要:一接口能夠被添加字符序列和字符的對(duì)象。對(duì)于多線程訪問(wèn)而言沒(méi)必要是安全的。是值的一個(gè)可讀序列。此接口對(duì)許多不同種類的序列提供統(tǒng)一的只讀訪問(wèn)。如果該對(duì)象小于等于或大于指定對(duì)象,則分別返回負(fù)整數(shù)零或正整數(shù)。 一、接口 1、Appendable 能夠被添加字符序列(CharSequence)和字符(char)的對(duì)象。CharSequence已知實(shí)現(xiàn)的類有:CharBuffer、Segment...

    roland_reed 評(píng)論0 收藏0
  • Elasticsearch入門(mén)學(xué)習(xí)(四):使用javaAPI學(xué)習(xí)ES

    摘要:一依賴剛開(kāi)始少這個(gè)包創(chuàng)建索引失敗官方文檔并沒(méi)有給這個(gè)提示二開(kāi)始之前的準(zhǔn)備官方文檔連接操作所用到的實(shí)體類三關(guān)于索引的操作官方文檔新增索引索引名稱分片副本內(nèi)容查詢指定索引索引名稱刪除索引四關(guān)于文檔的操作官方文檔創(chuàng)建文檔索引名稱前 一、Maven依賴 org.elasticsearch elasticsearch 7.1.0...

    kun_jian 評(píng)論0 收藏0
  • Java的類加載機(jī)制

    摘要:如果需要支持類的動(dòng)態(tài)加載或需要對(duì)編譯后的字節(jié)碼文件進(jìn)行解密操作等,就需要與類加載器打交道了。雙親委派模型,雙親委派模型,約定類加載器的加載機(jī)制。任何之類的字節(jié)碼都無(wú)法調(diào)用方法,因?yàn)樵摲椒ㄖ荒茉陬惣虞d的過(guò)程中由調(diào)用。 jvm系列 垃圾回收基礎(chǔ) JVM的編譯策略 GC的三大基礎(chǔ)算法 GC的三大高級(jí)算法 GC策略的評(píng)價(jià)指標(biāo) JVM信息查看 GC通用日志解讀 jvm的card table數(shù)據(jù)...

    aervon 評(píng)論0 收藏0
  • Java反射:Web學(xué)習(xí)的靈魂

    摘要:反射學(xué)習(xí)的靈魂我們從最初的,到面向?qū)ο蟛糠?,我們可以將代碼在計(jì)算機(jī)中經(jīng)歷的階段分為三部分源代碼階段類對(duì)象階段運(yùn)行時(shí)階段而我們知道,中一個(gè)類在源代碼階段,是存儲(chǔ)在硬盤(pán)中的,而編譯后,就已經(jīng)被加載到內(nèi)存中區(qū),那么有沒(méi)有一種方法可以在這種情況下 反射:Web學(xué)習(xí)的靈魂 我們從最初的 javac -HelloWorld.java,到面向?qū)ο蟛糠?,我們可以將Java代碼在計(jì)算機(jī)中經(jīng)歷的階段分為三...

    Vultr 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<