<samp id="fumjk"></samp><dfn id="fumjk"><menuitem id="fumjk"></menuitem></dfn>
      肩上芭蕾,hodv-21134,马腾你别走电影完整版在线观看,快乐美美向前冲 0627,藜麦的正确吃法,高清命悬一枪未删减,儿媳与爸爸免费观看电视剧全集 ,韩剧苦尽甘来遇见你
      java語言

      詳解JAVA8的10大新特性

      時間:2025-05-23 17:13:58 java語言

      詳解JAVA8的10大新特性

        本文是百分網(wǎng)小編搜索整理的關(guān)于詳解JAVA8的10大新特性,有需要的朋友們一起看看吧!想了解更多相關(guān)信息請持續(xù)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!

        一、接口的默認(rèn)方法

        Java 8允許我們給接口添加一個非抽象的方法實現(xiàn),只需要使用 default關(guān)鍵字即可,這個特征又叫做擴(kuò)展方法,示例如下:

        代碼如下:

        interface Formula {

        double calculate(int a);

        default double sqrt(int a) {

        return Math.sqrt(a);

        }

        }

        Formula接口在擁有calculate方法之外同時還定義了sqrt方法,實現(xiàn)了Formula接口的子類只需要實現(xiàn)一個calculate方法,默認(rèn)方法sqrt將在子類上可以直接使用。

        代碼如下:

        Formula formula = new Formula() {

        @Override

        public double calculate(int a) {

        return sqrt(a * 100);

        }

        };

        formula.calculate(100);     // 100.0

        formula.sqrt(16);           // 4.0

        文中的formula被實現(xiàn)為一個匿名類的實例,該代碼非常容易理解,6行代碼實現(xiàn)了計算 sqrt(a * 100)。在下一節(jié)中,我們將會看到實現(xiàn)單方法接口的更簡單的做法。

        譯者注: 在Java中只有單繼承,如果要讓一個類賦予新的特性,通常是使用接口來實現(xiàn),在C++中支持多繼承,允許一個子類同時具有多個父類的接口與功能,在其他語言中,讓一個類同時具有其他的可復(fù)用代碼的方法叫做mixin。新的Java 8 的這個特新在編譯器實現(xiàn)的角度上來說更加接近Scala的trait。 在C#中也有名為擴(kuò)展方法的概念,允許給已存在的類型擴(kuò)展方法,和Java 8的這個在語義上有差別。

        二、Lambda 表達(dá)式

        首先看看在老版本的Java中是如何排列字符串的:

        代碼如下:

        List<String> names = Arrays.asList("peter", "anna", "mike", "xenia");

        Collections.sort(names, new Comparator<String>() {

        @Override

        public int compare(String a, String b) {

        return b.compareTo(a);

        }

        });

        只需要給靜態(tài)方法 Collections.sort 傳入一個List對象以及一個比較器來按指定順序排列。通常做法都是創(chuàng)建一個匿名的比較器對象然后將其傳遞給sort方法。

        在Java 8 中你就沒必要使用這種傳統(tǒng)的匿名對象的方式了,Java 8提供了更簡潔的語法,lambda表達(dá)式:

        代碼如下:

        Collections.sort(names, (String a, String b) -> {

        return b.compareTo(a);

        });

        看到了吧,代碼變得更段且更具有可讀性,但是實際上還可以寫得更短:

        代碼如下:

        Collections.sort(names, (String a, String b) -> b.compareTo(a));

        對于函數(shù)體只有一行代碼的,你可以去掉大括號{}以及return關(guān)鍵字,但是你還可以寫得更短點:

        代碼如下:

        Collections.sort(names, (a, b) -> b.compareTo(a));

        Java編譯器可以自動推導(dǎo)出參數(shù)類型,所以你可以不用再寫一次類型。接下來我們看看lambda表達(dá)式還能作出什么更方便的東西來:

        三、函數(shù)式接口

        Lambda表達(dá)式是如何在java的類型系統(tǒng)中表示的呢?每一個lambda表達(dá)式都對應(yīng)一個類型,通常是接口類型。而“函數(shù)式接口”是指僅僅只包含一個抽象方法的接口,每一個該類型的lambda表達(dá)式都會被匹配到這個抽象方法。因為 默認(rèn)方法 不算抽象方法,所以你也可以給你的函數(shù)式接口添加默認(rèn)方法。

        我們可以將lambda表達(dá)式當(dāng)作任意只包含一個抽象方法的接口類型,確保你的接口一定達(dá)到這個要求,你只需要給你的接口添加 @FunctionalInterface 注解,編譯器如果發(fā)現(xiàn)你標(biāo)注了這個注解的接口有多于一個抽象方法的時候會報錯的。

        示例如下:

        代碼如下:

        @FunctionalInterface

        interface Converter<F, T> {

        T convert(F from);

        }

        Converter<String, Integer> converter = (from) -> Integer.valueOf(from);

        Integer converted = converter.convert("123");

        System.out.println(converted);    // 123

        需要注意如果@FunctionalInterface如果沒有指定,上面的代碼也是對的。

        譯者注 將lambda表達(dá)式映射到一個單方法的接口上,這種做法在Java 8之前就有別的語言實現(xiàn),比如Rhino JavaScript解釋器,如果一個函數(shù)參數(shù)接收一個單方法的接口而你傳遞的是一個function,Rhino 解釋器會自動做一個單接口的實例到function的適配器,典型的應(yīng)用場景有 org.w3c.dom.events.EventTarget 的addEventListener 第二個參數(shù) EventListener。

        四、方法與構(gòu)造函數(shù)引用

        前一節(jié)中的代碼還可以通過靜態(tài)方法引用來表示:

        代碼如下:

        Converter<String, Integer> converter = Integer::valueOf;

        Integer converted = converter.convert("123");

        System.out.println(converted);   // 123

        Java 8 允許你使用 :: 關(guān)鍵字來傳遞方法或者構(gòu)造函數(shù)引用,上面的代碼展示了如何引用一個靜態(tài)方法,我們也可以引用一個對象的方法:

        代碼如下:

        converter = something::startsWith;

        String converted = converter.convert("Java");

        System.out.println(converted);    // "J"

        接下來看看構(gòu)造函數(shù)是如何使用::關(guān)鍵字來引用的,首先我們定義一個包含多個構(gòu)造函數(shù)的簡單類:

        代碼如下:

        class Person {

        String firstName;

        String lastName;

        Person() {}

        Person(String firstName, String lastName) {

        this.firstName = firstName;

        this.lastName = lastName;

        }

        }

        接下來我們指定一個用來創(chuàng)建Person對象的對象工廠接口:

        代碼如下:

        interface PersonFactory<P extends Person> {

        P create(String firstName, String lastName);

        }

        這里我們使用構(gòu)造函數(shù)引用來將他們關(guān)聯(lián)起來,而不是實現(xiàn)一個完整的工廠:

        代碼如下:

        PersonFactory<Person> personFactory = Person::new;

        Person person = personFactory.create("Peter", "Parker");

        我們只需要使用 Person::new 來獲取Person類構(gòu)造函數(shù)的引用,Java編譯器會自動根據(jù)PersonFactory.create方法的簽名來選擇合適的構(gòu)造函數(shù)。

        五、Lambda 作用域

        在lambda表達(dá)式中訪問外層作用域和老版本的匿名對象中的方式很相似。你可以直接訪問標(biāo)記了final的外層局部變量,或者實例的字段以及靜態(tài)變量。

        六、訪問局部變量

        我們可以直接在lambda表達(dá)式中訪問外層的局部變量:

        代碼如下:

        final int num = 1;

        Converter<Integer, String> stringConverter =

        (from) -> String.valueOf(from + num);

        stringConverter.convert(2);     // 3

        但是和匿名對象不同的是,這里的變量num可以不用聲明為final,該代碼同樣正確:

        代碼如下:

        int num = 1;

        Converter<Integer, String> stringConverter =

        (from) -> String.valueOf(from + num);

        stringConverter.convert(2);     // 3

        不過這里的num必須不可被后面的代碼修改(即隱性的具有final的語義),例如下面的就無法編譯:

        代碼如下:

        int num = 1;

        Converter<Integer, String> stringConverter =

        (from) -> String.valueOf(from + num);

        num = 3;

        在lambda表達(dá)式中試圖修改num同樣是不允許的。

        七、訪問對象字段與靜態(tài)變量

        和本地變量不同的是,lambda內(nèi)部對于實例的字段以及靜態(tài)變量是即可讀又可寫。該行為和匿名對象是一致的:

        代碼如下:class Lambda4 {

        static int outerStaticNum;

        int outerNum;

        void testScopes() {

        Converter<Integer, String> stringConverter1 = (from) -> {

        outerNum = 23;

        return String.valueOf(from);

        };

        Converter<Integer, String> stringConverter2 = (from) -> {

        outerStaticNum = 72;

        return String.valueOf(from);

        };

        }

        }

        八、訪問接口的默認(rèn)方法

        還記得第一節(jié)中的formula例子么,接口Formula定義了一個默認(rèn)方法sqrt可以直接被formula的實例包括匿名對象訪問到,但是在lambda表達(dá)式中這個是不行的。

        Lambda表達(dá)式中是無法訪問到默認(rèn)方法的,以下代碼將無法編譯:

        代碼如下:

        Formula formula = (a) -> sqrt( a * 100);

        Built-in Functional Interfaces

        JDK 1.8 API包含了很多內(nèi)建的函數(shù)式接口,在老Java中常用到的比如Comparator或者Runnable接口,這些接口都增加了@FunctionalInterface注解以便能用在lambda上。

        Java 8 API同樣還提供了很多全新的函數(shù)式接口來讓工作更加方便,有一些接口是來自Google Guava庫里的,即便你對這些很熟悉了,還是有必要看看這些是如何擴(kuò)展到lambda上使用的。

        Predicate接口

        Predicate 接口只有一個參數(shù),返回boolean類型。該接口包含多種默認(rèn)方法來將Predicate組合成其他復(fù)雜的邏輯(比如:與,或,非):

        代碼如下:

        Predicate<String> predicate = (s) -> s.length() > 0;

        predicate.test("foo");              // true

        predicate.negate().test("foo");     // false

        Predicate<Boolean> nonNull = Objects::nonNull;

        Predicate<Boolean> isNull = Objects::isNull;

        Predicate<String> isEmpty = String::isEmpty;

        Predicate<String> isNotEmpty = isEmpty.negate();

        Function 接口

        Function 接口有一個參數(shù)并且返回一個結(jié)果,并附帶了一些可以和其他函數(shù)組合的默認(rèn)方法(compose, andThen):

        代碼如下:

        Function<String, Integer> toInteger = Integer::valueOf;

        Function<String, String> backToString = toInteger.andThen(String::valueOf);

        backToString.apply("123");     // "123"

        Supplier 接口

        Supplier 接口返回一個任意范型的值,和Function接口不同的是該接口沒有任何參數(shù)

        代碼如下:

        Supplier<Person> personSupplier = Person::new;

        personSupplier.get();   // new Person

        Consumer 接口

        Consumer 接口表示執(zhí)行在單個參數(shù)上的操作。

        代碼如下:

        Consumer<Person> greeter = (p) -> System.out.println("Hello, " + p.firstName);

        greeter.accept(new Person("Luke", "Skywalker"));

        Comparator 接口

        Comparator 是老Java中的經(jīng)典接口, Java 8在此之上添加了多種默認(rèn)方法:

        代碼如下:

        Comparator<Person> comparator = (p1, p2) -> p1.firstName.compareTo(p2.firstName);

        Person p1 = new Person("John", "Doe");

        Person p2 = new Person("Alice", "Wonderland");

        comparator.compare(p1, p2);             // > 0

        comparator.reversed().compare(p1, p2);  // < 0

        Optional 接口

        Optional 不是函數(shù)是接口,這是個用來防止NullPointerException異常的輔助類型,這是下一屆中將要用到的重要概念,現(xiàn)在先簡單的看看這個接口能干什么:

        Optional 被定義為一個簡單的容器,其值可能是null或者不是null。在Java 8之前一般某個函數(shù)應(yīng)該返回非空對象但是偶爾卻可能返回了null,而在Java 8中,不推薦你返回null而是返回Optional。

        代碼如下:

        Optional<String> optional = Optional.of("bam");

        optional.isPresent();           // true

        optional.get();                 // "bam"

        optional.orElse("fallback");    // "bam"

        optional.ifPresent((s) -> System.out.println(s.charAt(0)));     // "b"

        Stream 接口

        java.util.Stream 表示能應(yīng)用在一組元素上一次執(zhí)行的操作序列。Stream 操作分為中間操作或者最終操作兩種,最終操作返回一特定類型的計算結(jié)果,而中間操作返回Stream本身,這樣你就可以將多個操作依次串起來。Stream 的創(chuàng)建需要指定一個數(shù)據(jù)源,比如 java.util.Collection的子類,List或者Set, Map不支持。Stream的操作可以串行執(zhí)行或者并行執(zhí)行。

        首先看看Stream是怎么用,首先創(chuàng)建實例代碼的用到的數(shù)據(jù)List:

        代碼如下:

        List<String> stringCollection = new ArrayList<>();

        stringCollection.add("ddd2");

        stringCollection.add("aaa2");

        stringCollection.add("bbb1");

        stringCollection.add("aaa1");

        stringCollection.add("bbb3");

        stringCollection.add("ccc");

        stringCollection.add("bbb2");

        stringCollection.add("ddd1");

        Java 8擴(kuò)展了集合類,可以通過 Collection.stream() 或者 Collection.parallelStream() 來創(chuàng)建一個Stream。下面幾節(jié)將詳細(xì)解釋常用的Stream操作:

        Filter 過濾

        過濾通過一個predicate接口來過濾并只保留符合條件的元素,該操作屬于中間操作,所以我們可以在過濾后的結(jié)果來應(yīng)用其他Stream操作(比如forEach)。forEach需要一個函數(shù)來對過濾后的元素依次執(zhí)行。forEach是一個最終操作,所以我們不能在forEach之后來執(zhí)行其他Stream操作。

        代碼如下:

        stringCollection

        .stream()

        .filter((s) -> s.startsWith("a"))

        .forEach(System.out::println);

        // "aaa2", "aaa1"

        Sort 排序

        排序是一個中間操作,返回的是排序好后的Stream。如果你不指定一個自定義的Comparator則會使用默認(rèn)排序。

        代碼如下:

        stringCollection

        .stream()

        .sorted()

        .filter((s) -> s.startsWith("a"))

        .forEach(System.out::println);

        // "aaa1", "aaa2"

        需要注意的是,排序只創(chuàng)建了一個排列好后的Stream,而不會影響原有的數(shù)據(jù)源,排序之后原數(shù)據(jù)stringCollection是不會被修改的:

        代碼如下:

        System.out.println(stringCollection);

        // ddd2, aaa2, bbb1, aaa1, bbb3, ccc, bbb2, ddd1

        Map 映射

        中間操作map會將元素根據(jù)指定的Function接口來依次將元素轉(zhuǎn)成另外的對象,下面的示例展示了將字符串轉(zhuǎn)換為大寫字符串。你也可以通過map來講對象轉(zhuǎn)換成其他類型,map返回的Stream類型是根據(jù)你map傳遞進(jìn)去的函數(shù)的返回值決定的。

        代碼如下:

        stringCollection

        .stream()

        .map(String::toUpperCase)

        .sorted((a, b) -> b.compareTo(a))

        .forEach(System.out::println);

        // "DDD2", "DDD1", "CCC", "BBB3", "BBB2", "AAA2", "AAA1"

        Match 匹配

        Stream提供了多種匹配操作,允許檢測指定的Predicate是否匹配整個Stream。所有的匹配操作都是最終操作,并返回一個boolean類型的值。

        代碼如下:

        boolean anyStartsWithA =

        stringCollection

        .stream()

        .anyMatch((s) -> s.startsWith("a"));

        System.out.println(anyStartsWithA);      // true

        boolean allStartsWithA =

        stringCollection

        .stream()

        .allMatch((s) -> s.startsWith("a"));

        System.out.println(allStartsWithA);      // false

        boolean noneStartsWithZ =

        stringCollection

        .stream()

        .noneMatch((s) -> s.startsWith("z"));

        System.out.println(noneStartsWithZ);      // true

        Count 計數(shù)

        計數(shù)是一個最終操作,返回Stream中元素的個數(shù),返回值類型是long。

        代碼如下:

        long startsWithB =

        stringCollection

        .stream()

        .filter((s) -> s.startsWith("b"))

        .count();

        System.out.println(startsWithB);    // 3

        Reduce 規(guī)約

        這是一個最終操作,允許通過指定的函數(shù)來講stream中的多個元素規(guī)約為一個元素,規(guī)越后的結(jié)果是通過Optional接口表示的:

        代碼如下:

        Optional<String> reduced =

        stringCollection

        .stream()

        .sorted()

        .reduce((s1, s2) -> s1 + "#" + s2);

        reduced.ifPresent(System.out::println);

        // "aaa1#aaa2#bbb1#bbb2#bbb3#ccc#ddd1#ddd2"

        并行Streams

        前面提到過Stream有串行和并行兩種,串行Stream上的操作是在一個線程中依次完成,而并行Stream則是在多個線程上同時執(zhí)行。

        下面的例子展示了是如何通過并行Stream來提升性能:

        首先我們創(chuàng)建一個沒有重復(fù)元素的大表:

        代碼如下:

        int max = 1000000;

        List<String> values = new ArrayList<>(max);

        for (int i = 0; i < max; i++) {

        UUID uuid = UUID.randomUUID();

        values.add(uuid.toString());

        }

        然后我們計算一下排序這個Stream要耗時多久,

        串行排序:

        代碼如下:

        long t0 = System.nanoTime();

        long count = values.stream().sorted().count();

        System.out.println(count);

        long t1 = System.nanoTime();

        long millis = TimeUnit.NANOSECONDS.toMillis(t1 - t0);

        System.out.println(String.format("sequential sort took: %d ms", millis));

        // 串行耗時: 899 ms

        并行排序:

        代碼如下:

        long t0 = System.nanoTime();

        long count = values.parallelStream().sorted().count();

        System.out.println(count);

        long t1 = System.nanoTime();

        long millis = TimeUnit.NANOSECONDS.toMillis(t1 - t0);

        System.out.println(String.format("parallel sort took: %d ms", millis));

        // 并行排序耗時: 472 ms

        上面兩個代碼幾乎是一樣的,但是并行版的快了50%之多,唯一需要做的改動就是將stream()改為parallelStream()。

        Map

        前面提到過,Map類型不支持stream,不過Map提供了一些新的有用的方法來處理一些日常任務(wù)。

        代碼如下:

        Map<Integer, String> map = new HashMap<>();

        for (int i = 0; i < 10; i++) {

        map.putIfAbsent(i, "val" + i);

        }

        map.forEach((id, val) -> System.out.println(val));

        以上代碼很容易理解, putIfAbsent 不需要我們做額外的存在性檢查,而forEach則接收一個Consumer接口來對map里的每一個鍵值對進(jìn)行操作。

        下面的例子展示了map上的其他有用的函數(shù):

        代碼如下:

        map.computeIfPresent(3, (num, val) -> val + num);

        map.get(3);             // val33

        map.computeIfPresent(9, (num, val) -> null);

        map.containsKey(9);     // false

        map.computeIfAbsent(23, num -> "val" + num);

        map.containsKey(23);    // true

        map.computeIfAbsent(3, num -> "bam");

        map.get(3);             // val33

        接下來展示如何在Map里刪除一個鍵值全都匹配的項:

        代碼如下:

        map.remove(3, "val3");

        map.get(3);             // val33

        map.remove(3, "val33");

        map.get(3);             // null

        另外一個有用的方法:

        代碼如下:

        map.getOrDefault(42, "not found");  // not found

        對Map的元素做合并也變得很容易了:

        代碼如下:

        map.merge(9, "val9", (value, newValue) -> value.concat(newValue));

        map.get(9);             // val9

        map.merge(9, "concat", (value, newValue) -> value.concat(newValue));

        map.get(9);             // val9concat

        Merge做的事情是如果鍵名不存在則插入,否則則對原鍵對應(yīng)的值做合并操作并重新插入到map中。

        九、Date API

        Java 8 在包java.time下包含了一組全新的時間日期API。新的日期API和開源的Joda-Time庫差不多,但又不完全一樣,下面的例子展示了這組新API里最重要的一些部分:

        Clock 時鐘

        Clock類提供了訪問當(dāng)前日期和時間的方法,Clock是時區(qū)敏感的,可以用來取代 System.currentTimeMillis() 來獲取當(dāng)前的微秒數(shù)。某一個特定的時間點也可以使用Instant類來表示,Instant類也可以用來創(chuàng)建老的java.util.Date對象。

        代碼如下:

        Clock clock = Clock.systemDefaultZone();

        long millis = clock.millis();

        Instant instant = clock.instant();

        Date legacyDate = Date.from(instant);   // legacy java.util.Date

        Timezones 時區(qū)

        在新API中時區(qū)使用ZoneId來表示。時區(qū)可以很方便的使用靜態(tài)方法of來獲取到。 時區(qū)定義了到UTS時間的時間差,在Instant時間點對象到本地日期對象之間轉(zhuǎn)換的時候是極其重要的。

        代碼如下:

        System.out.println(ZoneId.getAvailableZoneIds());

        // prints all available timezone ids

        ZoneId zone1 = ZoneId.of("Europe/Berlin");

        ZoneId zone2 = ZoneId.of("Brazil/East");

        System.out.println(zone1.getRules());

        System.out.println(zone2.getRules());

        // ZoneRules[currentStandardOffset=+01:00]

        // ZoneRules[currentStandardOffset=-03:00]

        LocalTime 本地時間

        LocalTime 定義了一個沒有時區(qū)信息的時間,例如 晚上10點,或者 17:30:15。下面的例子使用前面代碼創(chuàng)建的時區(qū)創(chuàng)建了兩個本地時間。之后比較時間并以小時和分鐘為單位計算兩個時間的時間差:

        代碼如下:

        LocalTime now1 = LocalTime.now(zone1);

        LocalTime now2 = LocalTime.now(zone2);

        System.out.println(now1.isBefore(now2));  // false

        long hoursBetween = ChronoUnit.HOURS.between(now1, now2);

        long minutesBetween = ChronoUnit.MINUTES.between(now1, now2);

        System.out.println(hoursBetween);       // -3

        System.out.println(minutesBetween);     // -239

        LocalTime 提供了多種工廠方法來簡化對象的創(chuàng)建,包括解析時間字符串。

        代碼如下:

        LocalTime late = LocalTime.of(23, 59, 59);

        System.out.println(late);       // 23:59:59

        DateTimeFormatter germanFormatter =

        DateTimeFormatter

        .ofLocalizedTime(FormatStyle.SHORT)

        .withLocale(Locale.GERMAN);

        LocalTime leetTime = LocalTime.parse("13:37", germanFormatter);

        System.out.println(leetTime);   // 13:37

        LocalDate 本地日期

        LocalDate 表示了一個確切的日期,比如 2014-03-11。該對象值是不可變的,用起來和LocalTime基本一致。下面的例子展示了如何給Date對象加減天/月/年。另外要注意的是這些對象是不可變的,操作返回的總是一個新實例。

        代碼如下:

        LocalDate today = LocalDate.now();

        LocalDate tomorrow = today.plus(1, ChronoUnit.DAYS);

        LocalDate yesterday = tomorrow.minusDays(2);

        LocalDate independenceDay = LocalDate.of(2014, Month.JULY, 4);

        DayOfWeek dayOfWeek = independenceDay.getDayOfWeek();

        System.out.println(dayOfWeek);    // FRIDAY

        從字符串解析一個LocalDate類型和解析LocalTime一樣簡單:

        代碼如下:

        DateTimeFormatter germanFormatter =

        DateTimeFormatter

        .ofLocalizedDate(FormatStyle.MEDIUM)

        .withLocale(Locale.GERMAN);

        LocalDate xmas = LocalDate.parse("24.12.2014", germanFormatter);

        System.out.println(xmas);   // 2014-12-24

        LocalDateTime 本地日期時間

        LocalDateTime 同時表示了時間和日期,相當(dāng)于前兩節(jié)內(nèi)容合并到一個對象上了。LocalDateTime和LocalTime還有LocalDate一樣,都是不可變的。LocalDateTime提供了一些能訪問具體字段的方法。

        代碼如下:

        LocalDateTime sylvester = LocalDateTime.of(2014, Month.DECEMBER, 31, 23, 59, 59);

        DayOfWeek dayOfWeek = sylvester.getDayOfWeek();

        System.out.println(dayOfWeek);      // WEDNESDAY

        Month month = sylvester.getMonth();

        System.out.println(month);          // DECEMBER

        long minuteOfDay = sylvester.getLong(ChronoField.MINUTE_OF_DAY);

        System.out.println(minuteOfDay);    // 1439

        只要附加上時區(qū)信息,就可以將其轉(zhuǎn)換為一個時間點Instant對象,Instant時間點對象可以很容易的轉(zhuǎn)換為老式的java.util.Date。

        代碼如下:

        Instant instant = sylvester

        .atZone(ZoneId.systemDefault())

        .toInstant();

        Date legacyDate = Date.from(instant);

        System.out.println(legacyDate);     // Wed Dec 31 23:59:59 CET 2014

        格式化LocalDateTime和格式化時間和日期一樣的,除了使用預(yù)定義好的格式外,我們也可以自己定義格式:

        代碼如下:

        DateTimeFormatter formatter =

        DateTimeFormatter

        .ofPattern("MMM dd, yyyy - HH:mm");

        LocalDateTime parsed = LocalDateTime.parse("Nov 03, 2014 - 07:13", formatter);

        String string = formatter.format(parsed);

        System.out.println(string);     // Nov 03, 2014 - 07:13

        和java.text.NumberFormat不一樣的是新版的DateTimeFormatter是不可變的,所以它是線程安全的。

        關(guān)于時間日期格式的詳細(xì)信息:http://download.java.net/jdk8/docs/api/java/time/format/DateTimeFormatter.html

        十、Annotation 注解

        在Java 8中支持多重注解了,先看個例子來理解一下是什么意思。

        首先定義一個包裝類Hints注解用來放置一組具體的Hint注解:

        代碼如下:

        @interface Hints {

        Hint[] value();

        }

        @Repeatable(Hints.class)

        @interface Hint {

        String value();

        }

        Java 8允許我們把同一個類型的注解使用多次,只需要給該注解標(biāo)注一下@Repeatable即可。

        例 1: 使用包裝類當(dāng)容器來存多個注解(老方法)

        代碼如下:

        @Hints({@Hint("hint1"), @Hint("hint2")})

        class Person {}

        例 2:使用多重注解(新方法)

        代碼如下:

        @Hint("hint1")

        @Hint("hint2")

        class Person {}

        第二個例子里java編譯器會隱性的幫你定義好@Hints注解,了解這一點有助于你用反射來獲取這些信息:

        代碼如下:

        Hint hint = Person.class.getAnnotation(Hint.class);

        System.out.println(hint);                   // null

        Hints hints1 = Person.class.getAnnotation(Hints.class);

        System.out.println(hints1.value().length);  // 2

        Hint[] hints2 = Person.class.getAnnotationsByType(Hint.class);

        System.out.println(hints2.length);          // 2

        即便我們沒有在Person類上定義@Hints注解,我們還是可以通過 getAnnotation(Hints.class) 來獲取 @Hints注解,更加方便的方法是使用 getAnnotationsByType 可以直接獲取到所有的@Hint注解。

        另外Java 8的注解還增加到兩種新的target上了:

        代碼如下:

        @Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE})

        @interface MyAnnotation {}

      【詳解JAVA8的10大新特性】相關(guān)文章:

      詳解Java8的default方法02-26

      PHP7的五大新特性有哪些08-11

      Java8的default方法講解03-14

      java8環(huán)境變量設(shè)置03-24

      你應(yīng)該學(xué)習(xí)的10個PHP特性05-28

      四川2016年起藝體類高考政策有三大新變化(詳解)05-24

      10個你應(yīng)該學(xué)習(xí)使用的PHP特性07-27

      2017年建筑設(shè)計行業(yè)10大新生態(tài)02-01

      詳解與DirectAccess有關(guān)的10件事情07-24

      主站蜘蛛池模板: 个人取向电视剧| 法国《足球宝贝2》| 米小圈把李黎亲哭了| 白日梦我电视剧全集免费观看高清| 菊色宫先锋影音 | 解冻电影| 铿锵三人行| 美少女死神还我之魂| 色降无码| 南北少林电影| 亲爱的自己电视剧免费看| 新野县| 星光大道朱之文全集| 韩国电影中文字幕美国片我要爸爸播种| 机动战士z高达剧场版1| 出关电视剧全集在线| 无憾坎贝奇完整版视频在线观看| 冰冷长街| 9966在线观看免费高清电影| 食物链电影在线| 儿女英雄| 黛比浪漫女教师在线 | 只要为你活一天电影| 《玉女心经3:阴阳和合》免费看叶子媚 | 《品味人生》观看免费| 糊涂的爱小品| 《善良的大胸女学生| 人民的名义2在线观看免费完整版| 朋友的闺蜜id中字| 初恋是姐姐动漫全集免费观看 | 原罪免费在线观看| 韩剧《姐姐的闺蜜》免费观看| 尘落网电视在线观看| 乌海市| 药王神篇| 做爱aj电视剧视频| 泰剧是你| 《驯服小峓子》2在线| 我的老板娘3韩国| 北越暴行2高清版| 电视剧民国大侦探在线观看完整版| 哈哈哈哈哈第五季免费观看完整版| 晋州市| 遇龙电视剧完整版免费| 天注定在线观看免费完整版| 女教师被学生强伦女教师| 泰囧完整版| 女儿需要播种电影美国| 杀破狼3免费观看完整国语版| 电视剧门当户对| 法国空姐2019免费高清原声满天星奔跑吧| 上错花轿嫁对郎在线观看| 美国一级父女播种视频中文版| 卢沟桥事变电影| 瓢虫贝贝| 示范销售避孕套2剧情解析| 捉妖记bt| 好好疼在爱里5季免费观看| 广西白沙大道一大楼倒塌系谣言| 薛之谦再回应盗摄| 射雕英雄传 胡歌| 电视剧风筝在线观看| 罗丽星克莱尔迷宫在线观看| 来了来了终于来了| 情书免费| 黑蝴蝶刘敏涛完整版在线观看| 红蜘蛛5| XL司令在线观看完整版动漫| 黄晓明潜行者电视剧| 《小麦进城》免费看| 奇妙的发型屋2中文版翻译| 致命弯道4高清全集| 追风行动电视剧全集免费观看| 金州疫情| 灭火宝贝电影| 做aj的电视剧大全免费观看大陆| 客厅享受的两小时| 韩剧《嫌疑人》在线观看 | 凌云壮志女版满天星法版免费| 罗马帝国艳情史 下载| 龚玥菲新剧全集在线观看高清| 韩国R片| 《恋爱禁区》电影| 电视剧逍遥免费观看全集| 高冈早纪《怪物》| 惊魂记电影| 电影《第八日》凯登克罗斯| 东方红的简谱| 第七套广播体操音乐| 创可贴韩剧全集免费观看| 痴汉系列a| 电影《千金与佣人》免费观看全集| 速度与激情11| 双人调教电影观看| 《淮水竹亭》免费观看| 凪光替夫还账的电影最后的时刻| 玄奘之路纪录片| 韩国电影女主叫梅川的电影| 南拳北腿粤语| 两个好媳妇中文版本免费观看全集| 一起来看流星雨12| 拿下丈夫的下属| 《纣王妲己》全集观看| G点1985无删减免费看| 感觉我的爱| 老板的年轻妻子免费观看电视剧| 浪客行高清| 井底之蛙免费| 妈妈的职业完整版结局在线看免费高清 | 神雕侠侣古天乐| 《外出》电影在线观看| 手足情电视剧| 《导师》完整版电影| 早春二月免费| 加勒比女海盗2电影在线观看| 原生鸿蒙之夜| 人间中毒在线观看完整版爱| 善良的妈妈| 《21世纪Xa指南》完整版| 双周一成| 《尖帽子的魔法工坊》| 王多鱼的视频高清视频| 包公奇案| 特殊的游泳课4| 阿罗汉国语| 日本混血女大学生按摩电影| 上将许世友下载| 军事不当行为电影网| 《俄版女儿国》高清版| 淫之教室| 终结者5创世纪| 木凛凛演的电影逃亡花| 我的女神室友| 比思论坛东方美人| 子弹慢镜头| 最高的爱人诏哪里能看| 超凡蜘蛛侠3在线观看完整免费版| 伦理《法国空乘5》HD| 韩国年轻子1| 盲战在线观看免费| 性婬女兵俱乐部| 为奴十二年| 大头儿子和小头爸爸全集动画片| 鸭王2电影在线免费观看| 《逍遥》全集免费观看| 《法官李汉英》| 需要爸爸的播种免费观看| flowover第一季在线播放免费观看| 龙月泰剧1集免费观看| 伦理厨房的岳5| 《逃犯》高清完整版| 夺命金免费| 仙剑奇侠传3全集| 电视剧《父与子》| 谈情说案电视剧| 小岛可奈子| 圣特罗佩斯的姑娘们 (1982) [ 演员 ] | 逃跑的公主| 丰满的继牳3小早川怜子电影| 我们免费观看高清完整版日本| 需要爸爸播种子电影免费播放英文| 上海滩黄晓明版| 邻居漂亮的妻子5| 私人助理2完整版| 遇见波莉| 西部牛仔满天星免费版| 仙逆年番第二部| 鲁佩的玫瑰免费观看| 新居之约第9集| 韩国电影男按摩师| 回魂之夜电影| 暴躁100集全部免费观看下载| 龙帅归来全集免费| 女刑警2肉体完整版色吗| 王小虎陈晶晶短剧2022年| 被誉为乡土文学之父的是| 《3对1:两个人一次性体检》免费观看| 赘婿免费观看| 护士交换粗吟配乱大交| 暖暖在线观看免费高清完整版| 昆仑神宫在线观看2022| 舒淇电影| 浪人电影| 满天星版杨玉环| 怀念战友刀郎| xl司令第一季无马赛克全集在线观看完整版免费动漫 | 《忠者无敌》电视剧| 力王之监狱力王电影百度影音| 法国护士长在线| 暮光之城4下| 《可疑诊疗室:特殊待遇》中文版 电影《香醇的绣感》男主吴绮珊 欧式少女第16集全集高清版观看网站 | 总统夫人罗丽星克莱尔| 天赋异禀北极星免费观看| 同学的母亲| 龙珠国语版| 盗墓笔记动漫| 黑白恋曲在线观看| 电视剧野丫头| 官方通报柳州一干部相关情况| 吴昕李维嘉同框| Jizz日本| 特利迦奥特曼全集免费观看| 壮志凌云满天星女版免费在线观看| 罗密欧与朱丽叶电影| 欧美剧情电视剧免费观看电视剧大全勇敢的三兄弟 | 锦衣之下全集免费高清| 疯狂荷尔蒙6| 星球大战原力释放| 《壮志凌云》法国版 播放| 地狱乐动画在线观看| 和部长一起出差电影名字| 妻子的谎言 电视剧剧情免费观看| 双女任务电影完整在线观看| 好姐妹高清韩剧| 电影在线观看高清完整免费观看| 遇见未知的自己在线阅读| 包青天菩萨岭| 圣经传说| 海扁王2百度影音| 儿子爱上日本妈妈| 差一分的美味电视剧免费播放| 一个好妈妈的D6申字 | 《牙医姐妹》1986版在线观看| 我 伊蒂丝女皇免费观看完整版| 探案电影| 伦理《法国空乘13》观看| 丁小芹孙协志| 由菱开始电影免费观看| 印度电影免费观看| 人间中毒电影高清未删减完整版| 哇嘎高清电影在线观看| 东宫电视剧全集免费观看完整版| 爱的点滴| 香港tvb粤语免费观看| 爱上电视剧| 阿姨爱上小鲜肉电视剧| 午夜日皮| 人皮灯笼电影| 一马换三羊电视剧| 娃娃脸 4| 世界围绕你电视剧| 《渔夫的荒野史记》在线观看完整版| 天海翼电影全集| 盛唐风流电影在线观看高清国语| 阿信的故事电视剧在线观看| 《双乳丰满的女学生》HD| 巨人的进击| jizz分类| 商朝电视剧| 电影种马猎场在线观看| 星际迷航6| 苍空电影全集在线观看| 19岁大学生观看电视剧韩剧| 斗罗大陆106集| la论坛最新地址| 姐姐妹妹闯北京| 小贝有几个孩子| 爸爸在这儿| 魔法保姆| 战狼欧试少女九| 伤痛的不止是一个| 理发店里的特殊待遇4伦理片| 热播剧电视剧最近最火在线播放| 七个世界一个星球| 鬼作在线观看| 快餐车免费| 非洲姑娘高清电影播放| 妈妈说带套可以给我| 神探夏洛克字幕| 《小兵张嘎》| 女人高清免费观看在线播放电视剧| 战长沙电视剧全集| 妻子的秘密按摩里面用的什么精油| 祖海的歌| 小林家的龙丫头:怕寂寞的龙电影 | 为新中国前进| 蒙古电影《销售女孩》的导演是谁| 黑蝴蝶刘敏涛免费观看全集 | 办公室韩国电影免费观看完整| 新还珠格格电视剧全集免费观看| 《龙之战》电影美国在线看| 哪吒之魔童降免费观看| 艾曼妞3| 《哪吒1》免费完整版| 一龙吊打空手道黑带| 玉女心经电影舒淇主演的| 但愿你所求都能如愿是什么歌| 老炮儿在线| 错点鸳鸯电视剧| 深情不赴旧约短剧免费观看| 镖行天下之龙骑禁军| 《亚述家族》第一季在线观看| 海城市| 喜羊羊与灰太狼4| 僵尸新娘满天星| 女老师2| 特殊保险公司推销员4| 慈溪 门| 吗吗吗的朋友33| 康熙全集来了免费观看| 《特别的酒店》免费观看中文版| 去有风的地方电视剧免费观看超清| 人猿泰山hr版1995意大利版| 父女版因为爱情| 周弘《村姑》完整版| 电视剧繁花在线观看全集| 金银梅5一10普通话| 还珠格格越南版| 兖州市| 漂亮的女教师1李采潭| 禁忌的爱小说完整版| 风云年代40全集免费观看 | 杨光的夏天全集| 《女教师的味道3》在线播放| 动画还原梨泰院踩踏事故全程| 刀客家族的女人11| 蝙蝠侠之子| 英剧三一学院| 人海之中遇见你| 夜店北京2| 女王之刃哪集最h| 逆局全24集在线播放| 开心女鬼国语| 战狼在线观看完整版| 数码暴龙| 学开车教程| 甜美姐姐| 上门瑜伽性按摩| 做aj的的电视剧| 年轻的妺妺3韩国A片| 做aj的的电视剧| 战狼6免费国语版高清| 坎贝奇无憾在线观看全集| 我们多么幸福歌词| 邻居叫我去修灯泡| 大夏第一赘婿短剧全集免费观看| 岳母的味道| 泰剧爱的涟漪国语版| 金银梅5普通话版在线观看免费| 电视剧薄冰免费观看40集| 浓情女人| 狂飙免费观看全集| 一念永恒第三季在线播放| 帝国的隐忍| 亲爱的小孩 电视剧| 欢乐谷免费观看高清软件| 美人三部曲| 电影《恶魔》在线观看免费| 嫁入豪门全集免费| 寂寞空庭春欲晚寂寞空庭春| 莫小棋三级| 矿山人家| 人生路不熟免费观看2023年 | 孙女给生活不能自理爷爷洗澡| 玉环县| 中国家庭第一部下载| 娜妲莉的情人百度影音| 夏夜的秘密泰剧免费播放全集| 日本两个妈妈ID是哪个国家的| 真白爱梨| 外卖特邀员| 这一生回忆有你就足够dj| 黑白配hd1080完整版在 | 激战丛林成人版| 柳舟记 电视剧| 罗丽星克莱尔《迷宫》在线观看| 荒岛生存| 丈夫的上司| 大雄的秘密道具博物馆国语版| 木下檀檩子MV免费观看| 大侦探拾光季在线观看免费完整版| 高清《荒岛美人鱼》电影在线播放| 大男当婚 优酷| 美国荷尔蒙2高清免费看| 十二生肖电视剧| overflower在线免费观看 | 离婚前规则主题曲| 酒店1—80集全集免费高清| 偷尝禁果在线观看| 《法国空乘5》在线播放| 彷徨之刃免费观看完整版| 韩惠珍演过的满天星三部曲| 日出免费| 妈妈爱上儿子的同学完整版电影| 结过一次了电视剧| 神探夏洛克电影版| 独孤曼陀结局| 狙击手特别行动电影免费完整观看 | 山东舰远海遭遇26架外军无人机| 百万新娘之爱无悔72集| 《金牌销售》法国免费观看| 小日子全部免费播放电视剧| 丰满的邻居| 电影《法国空姐2》| 黑人和女教师尝鲜| 情满雪阳花电视剧全集 | 保险女王她的商业秘密中文版翻译| 电视剧同性| 布衣神相| 罗丽星克莱尔《迷宫》在线观看| 爱子情深全集| 樱花动漫免费观看完整版| 理疗丰胸按摩院| 邪魔缠身的约纳斯小姐| 美国式家庭禁忌结局-3人狗 | 麦乐迪马斯克满天星电影在线观看网站 | 俘虏之锁~初女们银灰的束缚~ 1| 后窗免费| 埃及皇后2003满天星版| 胜者即是正义2| 神雕无人机| 水兵男孩| 夫前被强行侵犯在线观看| 需要爸爸播种籽英文| 电影跳出去| 战狼6免费观看全集高清版| 有关黄河的诗歌| 《女销售员:》法国| 银魂电影| 功夫吉他| 左冲右撞| 李丽莎无圣光原图| 1—5集普通话版免费下载 | 恋爱假期| 烽火少年电视剧免费观看全集 | 电影黑豹天下| 飞虎神鹰4| 丹麦娇娃| 乌龙元首| 《透视》在线观看| 琉璃电视剧全集在线观看正版| 意大利渔夫的妻子| 是妈妈是女儿2综艺| 娱乐百分百20130401| 史上最窝囊丈夫| 被学生下药的女教师在线观看| 《炸天小姐》免费| 安徽公共频道在线直播| 法国满天星《八尺夫人》免费观看| 安娜电影完整版免费观看| 冰封侠 重生之门| 霜花店免费观看完整版视频| 做aj的电视剧免费观看大陆| 妖女迷行第一季| 冰封之城| 巨人新娘的花嫁2免费观看| 铃原爱蜜莉 迅雷下载| 日本一卡二卡在线播放| 梨泰院踩踏事故亲历者发声| 花与蛇5之牙医| 功夫熊猫1国语高清| 啊好烫撑满了主人| 归山辞短剧免费观看| 短剧《萌孙出击》免费播放| 3对1三人一次性体检什么电影 | 白峰美羽免费在线观看| 远亲小姐在线观看| 福鼎市| 罗曼蒂克消亡史豆瓣| 开往春天的地铁电影| 猩球崛起2:黎明之战电影| 警察与劫匪| 通化县| 沙鹰行动| 半路夫妻剧情| 《销售的秘密2》在线观看| 原纱央莉bt种子| 白峰美羽免费电影| 河南豫剧吹牛| 电影《女性治疗营》| 巴萨战胜曼联| 妈妈的职业5结局原声在线看视频| 小东西我们两个C你好不好| 南雄市| 外出电影在线观看| 高清《渣女》电影在线观看免费| 《总统夫人》星克莱尔1997年满天星在线免费观看 | 壮丁也是兵演员表| 新娘之无悔的爱| 绝杀在线观看| 法国版女超人麦乐迪电影在线观| 老公从外地回来一晚上不让我睡觉| 《Overflower》动漫全集免费观看第二季| 余罪第三季25到36| 十万个冷笑话9集| 深宫遗梦| 漂亮女人完整版在线观看| 欢乐颂1免费观看全集电视剧完整版| 聊斋叶子楣电影全集免费观看| 宝丽金25周年演唱会| 延禧攻略番外| 河南发生重大刑案警方悬赏5万元| 女学生被爆视频在线观看 | 暴躁老妈1-46集全免费观看高清版百度欧美| 法国版《安全出口》| 哇嘎电影大全免费看| 能飞英语网| 黄绮珊春晚2024难忘今宵| 壮志凌云女版(H)| 神勇武工队传奇2017任帅| 《生活中的玛丽》经典片段| 我的心是海洋| 玉蒲团1完整版高清| 男按摩师 满天星在线免费观看| 满天星《女版敢死队》| 巴拉拉小魔仙全集100| 爸爸的种子伦理片在线观看| 搞笑一家人国语配音| 别墅轮换1攻略| 女老师2| 终极恶女| 巡回检察组哪个台播出| 上流社会韩剧电影完整版免费观看| 大乳房按摩电影| 不惑之旅电视剧在线观看| 波多野结衣高清全集| 尼罗河上的惨案豆瓣| 还珠格格艳谭版| 做aj的电视剧大全免费中国人| 回复术士全集免费观看完整版高清| 摇滚水果 电影| 女版黑鹰坠落满天星版最新消息| 绿箭侠3| 璧山县| 娃娃脸经典版2| 美国派4百度影音| a篇免费观看| 特殊精油按摩3电影 | 一生一世| 双龙传丐世英豪| 爱你几何免费观看完整版| 泰剧妒海主题曲| CHIUTSE中老年女HD| xl司令第一季无马赛| 棋魂 电视剧 在线观看| 全城热恋乡村版| 造梦西游2五官王| write as 走麻绳| 总统夫人罗丽星克莱尔免费观看完整| 我的姐姐免费在线观看完整版资源| 猫鼠游戏电影| 电影伦理《法国护士长》2006| 你好儿科医生第三季免费观看| 战狼6在线观看| 爱情公寓45| 墨燃楚晚宁木桶PLAY| 金银梅5一10普通话版免费观看 | 《斗罗大陆》免费观看在线观看高清 | 我的野蛮王妃下载| 派对第二季全集| .《奇怪的美容院2》| 黑衣人全球追缉免费观看完整版| 《无憾》满天星| 花非花雾非雾百度影音| 终极使命 电视剧| 后宫露营 第一季 未增减 0.0.0.| 狂飙电视剧全集免费在线观看| 张磊中国好声音| 俘虏之锁未删减版在线观看| 夏夜韩剧在线播放| 郧西县| 辣妹子电影电视剧在线播放| 知情人范冰冰| 酒店1-5集高清免费观看 | 荒野情浩劫在线观看| 红色响尾蛇| 老鹰都开始抓鲨鱼了| 宁安如梦电视剧免费观看全集播出| 男女一起愁愁愁电影全集播放| 国家命脉| 玉蒲团2完整版高清| 《丛林激情》男女主| 春家小姐是讼师 电视剧免费观看| 泗阳县| 谈判官电视剧免费观看完整版 | 高清今天开始是人类| 满江红完整版观看免费| 匆匆的青春在线观看完整版免费 | 怪奇物语第三季免费观看完整版 | 赤桥下的暖流完整版| 电视连续剧爱| 超女麦乐迪在线观看视频| 星游记风暴法米拉2完整版| 特朗普与哈里斯首辩倒计时 | 黄金时代电影| 暖暖国语版普通话免费观看| 我可能不会爱你在线观看| 娜塔莉在线| 福州市| 高清《中国机长》免费播放| 家庭教师1| 《卖楼销售员》| 电影隔壁的女孩| 夏日里的春天优酷| 大牛荷尔蒙美国版6| 末日求生短剧全集| 披荆斩棘第4季在线观看| 水润女人在线观看免费高清电视剧 | 《出轨同学会2》| 漂亮小瘦子3| 高清只是朋友2:梦想天开未删减| 人肉炸弹| 人猿泰山激战丛林结局| 陆战特攻| 上位2电影| 酒店1-80集全集免费观看| 《重返狼群》免费观看| 无主之作电影在线观看| 《最高的爱人诏三上》| 超人气校园| 钢之炼金术师fa60| 秋瓷炫《生死决断》播放| 保拉的诱惑| 韩国产理伦片在线观看| 浦东新区| 世上谁长得最像小舞| 极速60秒| 桃花在线观看免费高清电视剧98| 夺冠电影在线观看完整版高清| 新还珠格格第二集| 《醉酒,被夺走》在线观看| 女神异闻录在线观看| 总是很可爱第一季免费观看| 性肉欲继拇2| 色即是空1 qvod| 墨攻电影| 公浮之手中字9谁演的| 快乐星球全集| 上帝也疯狂1电影免费观看完整版 奇迹少女第三季免费完整版 | 小时代3在线观看| 三大队电影完整版免费观看 | 致我们单纯的小美好在线观看| 四位人妇精油按摩的功效电影| 溪暮悦影短剧免费播放大全| 波多野结衣高清全集| 义姐不是良妈ova动漫全集免费观看| 家常菜电视剧全集在线观看| 危情博弈短剧免费观看| 杜社长妻子韩剧| 高清《雨天》谍战片免费观看 | 你是我的荣耀在线观看完整版| 歌曲《母鸡咯咯哒》| 荣誉守则电影在线观看| 万万没想到短剧全集| 南洋第一邪降下载| 男人女人愁愁愁免费观看| 陈式太极拳老架一路74式| 萌宝寻爹:妈咪快跑全集免费| 我的大胸继拇4| 暮光之城主演| 霍爷家的小祖宗甜又野免费阅读| 萌鸡小队动画片全集| 台版1987渔夫荒淫史| 《定风波》电视剧| 泉水叮咚响广场舞| 《特殊的治疗》李采潭在线 | 神墓年番在线观看完整版免费| 咏春大师被ko| 酒店的特殊待遇| 珠帘玉幕电视剧免费观看| 动漫美女被狂揉下部羞羞视频| 退钱哥又让退钱了| 别墅互换在线观看| 临沂新闻综合频道| 地下交通站第三部| abo成结模拟| 繁星四月电视剧| 坠落天使在线观看免费完整版| 色情教师4| 刀客家族的女人19| 黄梅戏秋风飒飒| 花房姑娘第三季全集下载| 女主浪荡喷水好爽NP文| 丑闻裴勇俊| 孤勇歌曲原唱完整版陈奕迅| 《修理工的艳遇》观看| 佐藤江梨| 新潘金莲高清完整版| 需要爸爸来播种在线观看| 电影猛龙过江| 甄嬛传53| 善良的公公| 韩剧《完整的爱》| 末日之热浪来袭短剧| 兄弟战争ova| 三年电影在线观看高清| 打黑风暴分集剧情介绍| 不能说的秘密| 《交易》凯登克罗斯美国| 封神英雄榜第二部免费观看电视剧 | 凯登克罗斯的电影| 欲望中的女人 电影在线观看| 二人转包公赔情| 《村妓》国语版演员表介绍| 巨人新娘的花嫁2免费观看| 屠宰呕吐娃娃全集在线观看| ママぷりっ!?| 行尸走肉第一季百度影音| 丰满岳拇做爰5| 潘金莲之前生后世| 认真的嘎嘎们在线观看| 丰满的邻居| 电视剧娘家的故事第三部| 上海滩黄晓明版| 塔日酒店| 悠悠寸草心2| 朋友的女儿2| 免费看神印王座| 农民伯伯下乡三级片| 陈陈相因| 我父亲的女保姆是我的首选电视剧| 义姐是不是良喂养1-2集动漫在哪| 孵蛋皇后| 川村千里| 加州靡情| 美国空姐3免费高清完整版观看 | 以爱为契电视剧免费观看| 无间道1| 漂亮的小姨韩剧免费观看| 被最想拥抱的人拥抱了第一季樱花| 生化危机5惩罚完整版| 超女麦乐迪完整版| 《杰顿魔物娘》动漫在线看| 向左走向右走电影| 扫黑风暴免费观看| 加勒比海盗女| 冷风暴剧情| 巧巧电影| 战狼6免费版高清播放| 银魂电影| 龙兄虎弟国语高清| 插曲的痛30集全集免费观看剧情介绍| 网友自曝睡过劳荣枝 | 国号 百家讲坛| 大清十二刑| hr版女版壮志凌云2008| 直播逆袭全集免费| 胖妹最近10天的视频| 谢谢你温暖我电视剧在线观看全集| 姊妹牙医 在线看完整版免费| 善良的嫂子2中文| 肌肤的纹理电影| 电影加勒比海盗女版| 丛林激情在线观看免费完整电影| 《蜜桃成熟时》| 闯关东1| 澈情从林短剧免费观看全集| 章小蕙 桃色 下载| 尖峰时刻2国语版| 《和部长一起去出差旅》动漫的结局| 老枪电影完整版| 姑嫂一家亲| 狂飙28集| 高压监狱2019满天星法版免费播放| 黑帮大佬我和我第365天男主| 心碎高中 第三季全集观看| 临武县| 髙压监狱法版免费| 暗之末裔高清| 女子辞掉年薪30万工作回家相亲| 女版战狼6在线观看免费 | 周弘版《村枝》完整| 神雕侠侣古天乐| 华丽的诱惑| 高清《第一序列》动漫 | 对不起我爱你国语版全集| 女孩阿尔玛| 新继拇| 牧神记全集免费观看| 百媚千娇全集| 《新上任的秘书》演员表| 老板的办公室观看| 短剧《极乐人生》全集| 民间怪谈录在线观看| F杯巨乳邻居| 新版间之楔| 浴血黑帮:不朽传奇全集观看| 前妻归来全集免费| 被凌辱的妻子在线观看| 罗刹海市歌完整版| 幸福二重奏免费观看完整版高清| 神医喜来乐2| 《21世纪》全集免费看| 大宋传奇赵匡胤电视剧| 奇思妙想周莹博士王俊凯| 妻子8| 谢娜《龙拳》舞台被吐槽用力过猛| 满天星丽莎和父亲| 我女友是机器人| 偷搞室友的女友-第1部| 张津瑜在线观看| 《村枝》周弘版高清版| 《璀璨人生》在线观看| 三生三世枕上 书| 潘金莲电视剧1至5集| 今夜无人入眠免费观看| 蜀锦人家在线观看免费高清观看| ova夕颜动漫在线观看| 阳原县| 法国高压监狱电影| 骑士电影| 《姐妹新娘》全集观看| 索菲亚演唱会小便| 瓜达卢佩的玫瑰演员表| 幸福的向日葵| 琉璃电视剧全集在线观看正版| 青梅竹马是消防员的动漫第一季 | 幸得相遇离婚时短剧免费观看| 高清《恋爱女子宿舍》| 战狼6免费在线观看| 贝多芬小姐的启示电影| 妖怪名单动漫| 江南媳妇免费观看全集完整版高清| V酒店第一季完整版在线观看| 冤家亲家电视剧| 真假面骑士| 山城恋在线观看| 女版《壮志凌云》| 甄嬛传全集迅雷下载| 王牌对王牌第五季免费| 犹及清明可到家的上一句是什么| 日本混血大学生精油按摩电影在线观看 | 漂亮书生免费观看| 白蛇:浮生| 府谷县| 《女教师的味道4日本| 钉子电影电影高清完整版在线观看| 日本语徐娘半老电影有哪些| 鬼吹灯之湘西秘藏| 修理工的艳遇 在线| 猪猪侠太阳之子排名| 天使猎人| 仁心俱乐部电视剧全集在线观看| 美国禁忌女孩结局| 很想很想你电视剧免费| 私人诊所的特殊待遇4| 未婚妻电视剧全集| 磴口县| 一起愁愁全40集免费观看高清| 波多野结衣作品封面| 大侦探福尔摩斯| 脱口秀第五季在线观看免费高清| 奇怪的美容院2| 演员请就位第二季第五期在线观看| 世界功夫盛典| 惊弦电视剧在线观看全集| 《私人航空》法国电影| 男生女生一起愁愁愁日本| 福州 劫持人质| 声生不息宝岛季12期完整版| 玛雅 亚洲电影|