国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

? Java Java???? Java 1.8? ??? ??? ?? ?? ??

Java 1.8? ??? ??? ?? ?? ??

Feb 26, 2021 am 10:06 AM
??? ??

Java 1.8? ??? ??? ?? ?? ??

Java 8 ???? 2004? Java 5? ??? ?? ?? ???? ?????. Java 8? Java ??, ????, ??? ?????, ?? ?? ? JVM? ?? ??? ??? ?????.

? ????? Java 1.8? ? ?? ??? ??? ??? ?????. ? ??? ??? ??? ????.

1. ?? ???

??: (????) -> {?? ????}

?: new Thread(() -> {System.out.println("hello world!")}).start (); ??? ?? ??????.

?? ??? ??? ?????? ???? ???. Lambda? ????? ?? ?? ??????. jdk1.8 ???? ???? ?? ?????? ?? ???? ???? ?? ??

???? ?? ?? ???? ?? ??? ? ????.

jdk1.8 ?? ?? ?? ???? ?? ????? ???? ?? ????????.

package java8;
 
public class LambdaDemo {
	
	public static void main(String[] args) {
		//JDK1.8之前使用接口,采用匿名內(nèi)部類的方式
		MyInterface mi = new MyInterface() {
			@Override
			public void test() {
				System.out.println("test");
			}
		};
		
		mi.test();
		
		//JDK1.8之后,使用lambda表達(dá)式
		MyInterface lmi = () -> {
			System.out.println("test");
		};
		
		lmi.test();
	}
}
//定義一個函數(shù)式接口,只有一個抽象方法 
interface MyInterface{
	
	void test();
}

??? ?????: ??? ?? ???? ?? ?????? ??? ??????? ???.

??? ????? Function, Predicate, Supply, Consumer? ?? ?????? ?? java.util.function ???? ????

Function ?????: R apply(T t)? ????? ???? ??? ?????

package java8;
 
import java.util.function.Function;
 
public class LambdaDemo {
 
	public static void main(String[] args) {
		// function的使用
		// 傳統(tǒng)模式,第一個泛型:接收的參數(shù)類型 第二個泛型,返回的參數(shù)類型
		Function<String, String> function1 = new Function<String, String>() {
			@Override
			public String apply(String t) {
				return t;
			}
		};
		// 調(diào)用apply方法,并獲取返回結(jié)果
		String res1 = function1.apply("function的使用");
		System.out.println(res1);
		// lambda的使用,當(dāng)參數(shù)只有一個且不寫參數(shù)類型時,"()"可以省略
		Function<String, String> function2 = t -> {
			return t;
		};
		// 調(diào)用apply方法,并獲取返回結(jié)果
		String res2 = function2.apply("function的使用");
		System.out.println(res2);
	}
}

Predicate ?????: ?? ???(T t)? ????? ???? ?? ?? ?????

??? ????? ???

package java8;
 
import java.util.function.*;
 
public class LambdaDemo {
 
	public static void main(String[] args) {
		// predicate的使用
		// 傳統(tǒng)模式,泛型參數(shù):接收的參數(shù)類型
		Predicate<Integer> predicate1 = new Predicate<Integer>() {
 
			@Override
			public boolean test(Integer t) {
				// 大于等于10就為真,否則為假
				return t >= 10;
			}
 
		};
		// 執(zhí)行predicate1的方法
		System.out.println(predicate1.test(11));
		System.out.println(predicate1.test(8));
		
		
		//使用lambda表達(dá)式
		Predicate<Integer> predicate2 = new Predicate<Integer>() {
			@Override
			public boolean test(Integer t) {
				// 大于等于10就為真,否則為假
				return t >= 10;
			}
		};
		// 執(zhí)行predicate1的方法
		System.out.println(predicate2.test(11));
		System.out.println(predicate2.test(8));
	}
}

??? ?????: T get()? ?? ???

???-??? ??? ?? ???? ??? ????

package java8;
 
import java.util.function.*;
 
public class LambdaDemo {
 
	public static void main(String[] args) {
		//Supplier的使用
		// 傳統(tǒng)模式,泛型參數(shù):返回的參數(shù)類型
		Supplier<String> s1 = new Supplier<String>() {
 
			@Override
			public String get() {
				return new String("supplier");
			}
		};
		//調(diào)用
		System.out.println(s1.get());
		
		// 使用lambda表達(dá)式
		//當(dāng)代碼只有一句時,可以省略"{}",不接收參數(shù)時,"()"不能省略
		Supplier<String> s2 = () -> new String("supplier");
		System.out.println(s2.get());
	}
}

??? ?????: accept(T t)? ????? ?? ?? ?? ???? ????.

???-??? ??? ???? ???? ??? ????. object

package java8;
 
import java.util.function.*;
 
public class LambdaDemo {
 
	public static void main(String[] args) {
		// Consumer的使用
		// 傳統(tǒng)模式,泛型參數(shù):返回的參數(shù)類型
		Consumer<String> con1 = new Consumer<String>() {
 
			@Override
			public void accept(String t) {
				System.out.println(t);
			}
		};
		con1.accept("consumer");
		
		//使用lambda表達(dá)式,同時省略"()","{}"
		Consumer<String> con2 = t -> System.out.println(t);
		con2.accept("consumer");
	}
}

(?? ?? ??: java video tutorial)

??? ?? ???:

package java8;
 
import java.util.function.*;
 
public class LambdaDemo {
 
	public static void main(String[] args) {
		//Runnable的實現(xiàn),
		new Thread(() -> {
			System.out.println(Thread.currentThread().getName() + " run");
		}).start();
		
		System.out.println(Thread.currentThread().getName() + " run");
	}
}

2. ??? ??:

??? ??? ?? ???? ??? ??? ??? ??? ???, ? ???? ? ? ?? ???? ??? ??? ?? ? ????.

??? ???? ? ?? ??? ????.

??? ??::?? ??? ??

?? ??::???? ??? ??

??? ??::???? ??? ??

??? ??::new

package java8;
 
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.function.BiConsumer;
import java.util.function.Supplier;
 
public class MethodReferenceDemo {
	public static void main(String[] args) {
		// 定義3個Student對象
		Student s1 = new Student("zhangsan", 90);
		Student s2 = new Student("lisi", 60);
		Student s3 = new Student("wangwu", 70);
		// 添加到集合
		List<Student> students = Arrays.asList(s1, s2, s3);
 
		//普通的lambda實現(xiàn)
		// sort接收兩個參數(shù),第一個參數(shù),要排序的集合,第二個參數(shù),Comparator接口的實現(xiàn)
		// Collections.sort(students, (stu1,stu2) -> StudentSortUtil.sortByScore(stu1,stu2));
		// students.forEach(t -> System.out.println(t.getScore()));
 
		// 方法引用1---類名::靜態(tài)方法名
		// Collections.sort(students, StudentSortUtil::sortByScore);
		// students.forEach(t -> System.out.println(t.getScore()));
		
		//創(chuàng)建實例對象,調(diào)用實例對象的方法
		StudentSortUtil ssu = new StudentSortUtil();
		
		//普通的lambda實現(xiàn)
//		Collections.sort(students, (stu1, stu2) -> ssu.sortByScoreInstance(stu1, stu2));
//		students.forEach(t -> System.out.println(t.getScore()));
		
		// 方法引用2---對象名::實例方法名
//		Collections.sort(students, ssu::sortByScoreInstance);
//		students.forEach(t -> System.out.println(t.getScore()));
		
		/*
		 * 方法引用3---類名::實例方法名
		 * Student的sortByScore()只有一個參數(shù),而Comparator的實現(xiàn)需要兩個參數(shù),為什么編譯器不報錯?
		 * 這是因為sortByScore是一個普通方法,要使用這個方法肯定要有一個Student類的實例對象來調(diào)用
		 * 而調(diào)用的這個方法的對象就作為Comparator的第一個參數(shù)對象傳遞進(jìn)來
		 * 例String的compareTo()方法,調(diào)用這個方法首先要有一個String的實例對象,
		 * 此處str就是這個實例對象,str就作為Comparator的第一個參數(shù)
		 * "hello"這個String對象就作為第二個參數(shù)
		 * String str = new String("str1");
		 * str.compareTo("hello");	
		 */
		Collections.sort(students, Student::sortByScore);
		
		
		//創(chuàng)建一個新的Student對象,使用lambda表達(dá)式創(chuàng)建
		//不接收參數(shù),返回一個對象,其實就是Supplier接口的實例
		Supplier<Student> su1 = () -> new Student();
		//方法引用4---類名::new
		Supplier<Student> su2 = Student::new;
		
		//BiConsumer是Consumer的擴(kuò)展,可以接受兩個參數(shù)返回一個值
		BiConsumer<String, Integer> bc1 = (name,score) -> new Student(name,score);
		//替換上面的lambda表達(dá)式,需要接收兩個參數(shù),所以調(diào)用的是有參構(gòu)造方法
		BiConsumer<String, Integer> bc2 = Student::new;
		
	}
}
 
//定義一個學(xué)生實體類
class Student {
	private String name;
	private int score;
 
	public Student() {
	}
 
	public Student(String name, int score) {
		this.name = name;
		this.score = score;
	}
 
	public String getName() {
		return name;
	}
 
	public void setName(String name) {
		this.name = name;
	}
 
	public int getScore() {
		return score;
	}
 
	public void setScore(int score) {
		this.score = score;
	}
 
	public int sortByScore(Student stu) {
		return this.getScore() - stu.getScore();
	}
 
	public int sortByName(Student stu) {
		return this.getName().compareTo(stu.getName());
	}
}
 
//定義一個學(xué)生排序工具類
class StudentSortUtil {
 
	public static int sortByScore(Student stu1, Student stu2) {
		return stu1.getScore() - stu2.getScore();
	}
 
	public static int sortByName(Student stu1, Student stu2) {
		return stu1.getName().compareTo(stu2.getName());
	}
 
	// 普通方法,創(chuàng)建對象才能調(diào)用
	public int sortByScoreInstance(Student stu1, Student stu2) {
		return stu1.getScore() - stu2.getScore();
	}
 
	// 普通方法,創(chuàng)建對象才能調(diào)用
	public int sortByNameInstance(Student stu1, Student stu2) {
		return stu1.getName().compareTo(stu2.getName());
	}
}

3.

???? ?? ??? ?? ???? ?????, ?? ??? ???? ??? ???? ????, ?? ??? ??? ?????.

?? ?? ?? ??? ??? ???? ??? ?? ??? ??? ?? ?????.

package java8;
 
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.stream.Stream;
 
public class StreamDemo {
	
	public static void main(String[] args) {
		//Stream的使用
		
		//創(chuàng)建流,參數(shù)為可變參數(shù)
		Stream<Integer> stream = Stream.of(50,66,88);
		
		//將Stream轉(zhuǎn)化為數(shù)組
		//Object[] array =  stream.toArray();
		//System.out.println(Arrays.toString(array));
		
		//篩選過濾條件,參數(shù)為Predicate,動作自己指定,找到大于60的數(shù)
		//流分為中間操作和終止操作,節(jié)點流會繼續(xù)返回一個流對象,終止操作會返回一個結(jié)果,
		//只有中間流,代碼不會執(zhí)行,只有遇見終止操作才會執(zhí)行
		//stream.filter((target) -> target > 60).forEach(System.out::println);
		
		//map對數(shù)據(jù)進(jìn)行操作,接收一個Function實例 例:對流中的每個元素都乘以2
		stream.map((t) -> 2 * t).forEach(System.out::println);
		
		//流的無限模式,會對seed一直執(zhí)行UnaryOperator的事件,一般和limit配合使用
		//skip(n)跳過n個元素,limit(n) 返回n個元素的流
		Stream.iterate(0, t -> t + 2).skip(2).limit(6).forEach(System.out::println);
		
		//將流轉(zhuǎn)換為集合對象,第一個參數(shù),傳遞一個Supplier 最終結(jié)果類型由此提供
		//第二個參數(shù) BiConsumer() 傳遞兩個參數(shù),第一個要操作的集合,第二個當(dāng)前的流元素
		//第三個元素BiConsumer() 傳遞兩個集合,最終合并成一個集合
		//類似StringBuffer.append()方法
//		stream.collect(() -> new ArrayList<Integer>(),
//				(target,item)-> target.add(item),
//				(result,target)-> result.addAll(target)).forEach(System.out::println);
		//可以使用方法引用簡化
		stream.collect(LinkedList::new,LinkedList::add,LinkedList::addAll);
		
	}
}

?? ?? ??: Java ?? ????

? ??? Java 1.8? ??? ??? ?? ?? ??? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? ????? ??
? ?? ??? ????? ???? ??? ??????, ???? ?????? ????. ? ???? ?? ???? ?? ??? ?? ????. ???? ??? ???? ???? ??? ?? admin@php.cn?? ?????.

? AI ??

Undresser.AI Undress

Undresser.AI Undress

???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover

AI Clothes Remover

???? ?? ???? ??? AI ?????.

Video Face Swap

Video Face Swap

??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

???

??? ??

???++7.3.1

???++7.3.1

???? ?? ?? ?? ???

SublimeText3 ??? ??

SublimeText3 ??? ??

??? ??, ???? ?? ????.

???? 13.0.1 ???

???? 13.0.1 ???

??? PHP ?? ?? ??

???? CS6

???? CS6

??? ? ?? ??

SublimeText3 Mac ??

SublimeText3 Mac ??

? ??? ?? ?? ?????(SublimeText3)

???

??? ??

??? ????
1601
29
PHP ????
1502
276
???
php8? ??? ??? ????? php8? ??? ??? ????? Sep 25, 2023 pm 01:34 PM

php8? ??? ???? JIT ????, ?? ??, ??? ????, ??? ??, ??, ?? ?? ??, ??? ????? ??, ??? ?? ????? ?? ? ?? ??? ??? ?????. ??? ??: 1. JIT ????, PHP8? ??? ?? ??? ???? JIT ????? ???? ?? ??? ?? ??? ????? ????? ????? ?? ??? ??????. ???? ?? ?? ??? ? ??? ??? ???? ??? ? ??? ?? ?? ??? ?????.

PHP8? ??? ??? ??? ?? ??? ?? ???? ??? ?? ? ?? ??? PHP8? ??? ??? ??? ?? ??? ?? ???? ??? ?? ? ?? ??? Dec 23, 2023 pm 01:16 PM

?? ??? ??? ? ??? ?? PHP8? ??? ??? ?? ?? ?????. ??? ??? ?? PHP ????? ??? ????? ???? ???????. ?? ??? PHP8 ??? ????? ?? ???? ??? ??? ?? ??? ???? ?? ??? ? ?? ???? ???? ?????. ? ????? PHP8? ??? ??? ????? ???? ??? ?? ??? ? ? ??? ? ??? ?? ?? ?? ??? ?????. JIT ???? PHP8?? JIT(Just-In-Time) ???? ???????.

PHP 8.3 ??: ??? ?? ??? ?? PHP 8.3 ??: ??? ?? ??? ?? Nov 27, 2023 pm 12:52 PM

PHP8.3 ??: ??? ?? ?? ??? ?? ???? ??? ???? ?? ????? ??? ????? ?????? ?????. ? ??? ?? ???? ???? ??? PHP? ????? ?? ???? ???? ??? ???? ?? ????? ???? ????. ?? ??? PHP 8.3 ???? ???? ???? ?? ??? ??? ?? ??? ???? ????. ??? ??? ??? ?? ??? ???????. null? ?? ??? ??? ?? ??? PHP??? ??? ??? ????? ?? ???? ?? ?? ?? ??

Go ??? ??? ?? ??: ?????? ?? ????? ??? Go ??? ??? ?? ??: ?????? ?? ????? ??? Mar 10, 2024 pm 12:27 PM

[Go ??? ??? ?? ??: ?????? ?? ????? ??? ???? ???? ?? ??? ?????.] ?? ????? ?? ???? Go ??? ?? ??? ?? ???, Go ??? ???? ???? ??? ??? ?? ? ??? ?? ????. ???. ???? ??? ??? ????? ??? Go ??? ?? ???? ???? ?? ?? ????? ????? ??? ??? ???? ???? ????. ? ???? Go ??? ?? ??? ?? ????? ????, ???? ?? ??? ?? ??? ??? ??? ???? ???? ???? ??? ??? ????. ??? ??(GoModules) 1?? Go ??

es6? ??? ??? ?????? es6? ??? ??? ?????? Aug 04, 2023 am 09:54 AM

es6? ??? ??? ??? ????. 1. ?? ?? ???? ??? ??? ? ?? ?? ?? ?? 2. ??? ???? ??? ??? ??? ?? 3. ?? ?? ?? ?? ?? ??? ???? ??? ?? ?????. 4. ??? ??? ? ????? ???? ??? ? ??? ?????. 5. ???? ??? ???? ??? ??? ? ?? ?? ???; 7. ??? ? ?? 8. ??? ? ??? 9. Promise ??

CSS3? ??? ?? ??: CSS3? ???? ?? ??? ?? ?? CSS3? ??? ?? ??: CSS3? ???? ?? ??? ?? ?? Sep 09, 2023 am 11:27 AM

CSS3? ??? ?? ??: CSS3? ???? ?? ??? ?? ?? CSS3? ?? ??? ?? ??? ?? ???? ???? ??? ?? ?????. ?? ??? ?? ?? ?? ???? ? ???? ???? ??? ????? ?? ??? ??? ??? ? ????. ? ????? CSS3 ?? ??? ?? ???? ?? ?? ??? ?? ?????. ?? ?? ??: ???? ?? CSS ?? ?? ??? ?????.

CSS3? ??? ?? ??: CSS3 ????? ??? ???? ?? CSS3? ??? ?? ??: CSS3 ????? ??? ???? ?? Sep 09, 2023 am 09:15 AM

CSS3? ??? ?? ??: CSS3 ????? ??? ???? ?? ??: ???? ????? CSS3? ????? ???? ?? ????? ???? ??? ??? CSS2? ?? ??? ????. CSS3? ?? ??? ??? ???? ? ? ?? ?? ?? ??? ????? ?????. CSS3 ?????? ???? ? ???? ?? ??? ??? ???? ??? ??? ???? ? ????. ? ????? CSS3?? ????? ???? ????? ??? ???? ?? ?? ??? ?????. 1. ???????

CSS3? ??? ?? ??: CSS3? ???? ?? ?? ????? ???? ?? CSS3? ??? ?? ??: CSS3? ???? ?? ?? ????? ???? ?? Sep 09, 2023 pm 04:09 PM

CSS3? ??? ?? ??: CSS3? ???? ?? ?? ????? ???? ?? ? ??? ? ?????? ?? ?? ????? ???? ?? ?????. ???? ?? ???? ?? ?? ??? JavaScript ?? CSS ??? ??????. ??? CSS3?? ?? ?? ????? ? ???? ???? ??? ? ?? ??? ??? ???????. ? ????? CSS3? ? ?? ??? ??? ???? CSS3? ???? ?? ?? ????? ???? ??? ???? ? ?? ?? ??? ?????. 1. Flexbox? ???? ?? ????

See all articles