国产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)部類(lè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();
	}
}
//定義一個(gè)函數(shù)式接口,只有一個(gè)抽象方法 
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)模式,第一個(gè)泛型:接收的參數(shù)類(lèi)型 第二個(gè)泛型,返回的參數(shù)類(lèi)型
		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ù)只有一個(gè)且不寫(xiě)參數(shù)類(lèi)型時(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ù)類(lèi)型
		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ù)類(lèi)型
		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í),可以省略"{}",不接收參數(shù)時(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ù)類(lèi)型
		Consumer<String> con1 = new Consumer<String>() {
 
			@Override
			public void accept(String t) {
				System.out.println(t);
			}
		};
		con1.accept("consumer");
		
		//使用lambda表達(dá)式,同時(shí)省略"()","{}"
		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的實(shí)現(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個(gè)Student對(duì)象
		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實(shí)現(xiàn)
		// sort接收兩個(gè)參數(shù),第一個(gè)參數(shù),要排序的集合,第二個(gè)參數(shù),Comparator接口的實(shí)現(xiàn)
		// Collections.sort(students, (stu1,stu2) -> StudentSortUtil.sortByScore(stu1,stu2));
		// students.forEach(t -> System.out.println(t.getScore()));
 
		// 方法引用1---類(lèi)名::靜態(tài)方法名
		// Collections.sort(students, StudentSortUtil::sortByScore);
		// students.forEach(t -> System.out.println(t.getScore()));
		
		//創(chuàng)建實(shí)例對(duì)象,調(diào)用實(shí)例對(duì)象的方法
		StudentSortUtil ssu = new StudentSortUtil();
		
		//普通的lambda實(shí)現(xiàn)
//		Collections.sort(students, (stu1, stu2) -> ssu.sortByScoreInstance(stu1, stu2));
//		students.forEach(t -> System.out.println(t.getScore()));
		
		// 方法引用2---對(duì)象名::實(shí)例方法名
//		Collections.sort(students, ssu::sortByScoreInstance);
//		students.forEach(t -> System.out.println(t.getScore()));
		
		/*
		 * 方法引用3---類(lèi)名::實(shí)例方法名
		 * Student的sortByScore()只有一個(gè)參數(shù),而Comparator的實(shí)現(xiàn)需要兩個(gè)參數(shù),為什么編譯器不報(bào)錯(cuò)?
		 * 這是因?yàn)閟ortByScore是一個(gè)普通方法,要使用這個(gè)方法肯定要有一個(gè)Student類(lèi)的實(shí)例對(duì)象來(lái)調(diào)用
		 * 而調(diào)用的這個(gè)方法的對(duì)象就作為Comparator的第一個(gè)參數(shù)對(duì)象傳遞進(jìn)來(lái)
		 * 例String的compareTo()方法,調(diào)用這個(gè)方法首先要有一個(gè)String的實(shí)例對(duì)象,
		 * 此處str就是這個(gè)實(shí)例對(duì)象,str就作為Comparator的第一個(gè)參數(shù)
		 * "hello"這個(gè)String對(duì)象就作為第二個(gè)參數(shù)
		 * String str = new String("str1");
		 * str.compareTo("hello");	
		 */
		Collections.sort(students, Student::sortByScore);
		
		
		//創(chuàng)建一個(gè)新的Student對(duì)象,使用lambda表達(dá)式創(chuàng)建
		//不接收參數(shù),返回一個(gè)對(duì)象,其實(shí)就是Supplier接口的實(shí)例
		Supplier<Student> su1 = () -> new Student();
		//方法引用4---類(lèi)名::new
		Supplier<Student> su2 = Student::new;
		
		//BiConsumer是Consumer的擴(kuò)展,可以接受兩個(gè)參數(shù)返回一個(gè)值
		BiConsumer<String, Integer> bc1 = (name,score) -> new Student(name,score);
		//替換上面的lambda表達(dá)式,需要接收兩個(gè)參數(shù),所以調(diào)用的是有參構(gòu)造方法
		BiConsumer<String, Integer> bc2 = Student::new;
		
	}
}
 
//定義一個(gè)學(xué)生實(shí)體類(lèi)
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());
	}
}
 
//定義一個(gè)學(xué)生排序工具類(lèi)
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)建對(duì)象才能調(diào)用
	public int sortByScoreInstance(Student stu1, Student stu2) {
		return stu1.getScore() - stu2.getScore();
	}
 
	// 普通方法,創(chuàng)建對(duì)象才能調(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));
		
		//篩選過(guò)濾條件,參數(shù)為Predicate,動(dòng)作自己指定,找到大于60的數(shù)
		//流分為中間操作和終止操作,節(jié)點(diǎn)流會(huì)繼續(xù)返回一個(gè)流對(duì)象,終止操作會(huì)返回一個(gè)結(jié)果,
		//只有中間流,代碼不會(huì)執(zhí)行,只有遇見(jiàn)終止操作才會(huì)執(zhí)行
		//stream.filter((target) -> target > 60).forEach(System.out::println);
		
		//map對(duì)數(shù)據(jù)進(jìn)行操作,接收一個(gè)Function實(shí)例 例:對(duì)流中的每個(gè)元素都乘以2
		stream.map((t) -> 2 * t).forEach(System.out::println);
		
		//流的無(wú)限模式,會(huì)對(duì)seed一直執(zhí)行UnaryOperator的事件,一般和limit配合使用
		//skip(n)跳過(guò)n個(gè)元素,limit(n) 返回n個(gè)元素的流
		Stream.iterate(0, t -> t + 2).skip(2).limit(6).forEach(System.out::println);
		
		//將流轉(zhuǎn)換為集合對(duì)象,第一個(gè)參數(shù),傳遞一個(gè)Supplier 最終結(jié)果類(lèi)型由此提供
		//第二個(gè)參數(shù) BiConsumer() 傳遞兩個(gè)參數(shù),第一個(gè)要操作的集合,第二個(gè)當(dāng)前的流元素
		//第三個(gè)元素BiConsumer() 傳遞兩個(gè)集合,最終合并成一個(gè)集合
		//類(lèi)似StringBuffer.append()方法
//		stream.collect(() -> new ArrayList<Integer>(),
//				(target,item)-> target.add(item),
//				(result,target)-> result.addAll(target)).forEach(System.out::println);
		//可以使用方法引用簡(jiǎn)化
		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