版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、一 Lambda函數(shù)(箭頭函數(shù))Lambda 表達(dá)式,也可稱為閉包,它是推動 Java 8 發(fā)布的最重要新特性。Lambda 允許把函數(shù)作為一個方法的參數(shù)(函數(shù)作為參數(shù)傳遞進(jìn)方法中)。使用 Lambda 表達(dá)式可以使代碼變的更加簡潔緊湊。(parameters) -> expression或(parameters) -> statement1;statement2;. lambda表達(dá)式的重要特征:可選類型聲明:不需要聲明參數(shù)類型,編譯器可以統(tǒng)一識別參數(shù)值??蛇x的參數(shù)圓括號:一個參數(shù)無需定義圓括號,但多個參數(shù)需要定義圓括號??蛇x的大括號:如果主體包含了一個語句,就不需要使用大括號。
2、可選的返回關(guān)鍵字:如果主體只有一個表達(dá)式返回值則編譯器會自動返回,大括號需指定表達(dá)式返回數(shù)值。本質(zhì)上,Lambda函數(shù)是對匿名內(nèi)部類對象的簡寫。應(yīng)用舉例1(比較JAVA7與JAVA8):Lambda函數(shù)做類的屬性運(yùn)行結(jié)果:應(yīng)用舉例2(比較JAVA7與JAVA8):Lambda函數(shù)做main函數(shù)變量應(yīng)用舉例3:應(yīng)用舉例4:多線程啟動時使用Lambda函數(shù)應(yīng)用舉例5:在1.7中,匿名內(nèi)部類只能使用定義為final的外部變量,1.8會自動為Lambda函數(shù)使用的外部變量加上final,因此final可以省略不寫。二 方法引用 (:方法名 -調(diào)用了方法對象)應(yīng)用舉例1:應(yīng)用舉例2:三 函數(shù)式接口函數(shù)式
3、接口(Functional Interface)就是一個具有一個方法的普通接口。函數(shù)式接口可以被隱式轉(zhuǎn)換為lambda表達(dá)式。函數(shù)式接口可以現(xiàn)有的函數(shù)友好地支持 lambda。JDK 1.8之前已有的函數(shù)式接口:JDK 1.8 新增加的函數(shù)接口:java.util.function 它包含了很多類,用來支持 Java的 函數(shù)式編程,該包中的函數(shù)式接口有:序號接口 & 描述1BiConsumer<T,U>代表了一個接受兩個輸入?yún)?shù)的操作,并且不返回任何結(jié)果2BiFunction<T,U,R>代表了一個接受兩個輸入?yún)?shù)的方法,并且返回一個結(jié)果3BinaryOpera
4、tor<T>代表了一個作用于于兩個同類型操作符的操作,并且返回了操作符同類型的結(jié)果4BiPredicate<T,U>代表了一個兩個參數(shù)的boolean值方法5BooleanSupplier代表了boolean值結(jié)果的提供方6Consumer<T>代表了接受一個輸入?yún)?shù)并且無返回的操作7DoubleBinaryOperator代表了作用于兩個double值操作符的操作,并且返回了一個double值的結(jié)果。8DoubleConsumer代表一個接受double值參數(shù)的操作,并且不返回結(jié)果。9DoubleFunction<R>代表接受一個double值
5、參數(shù)的方法,并且返回結(jié)果10DoublePredicate代表一個擁有double值參數(shù)的boolean值方法11DoubleSupplier代表一個double值結(jié)構(gòu)的提供方12DoubleToIntFunction接受一個double類型輸入,返回一個int類型結(jié)果。13DoubleToLongFunction接受一個double類型輸入,返回一個long類型結(jié)果14DoubleUnaryOperator接受一個參數(shù)同為類型double,返回值類型也為double 。15Function<T,R>接受一個輸入?yún)?shù),返回一個結(jié)果。16IntBinaryOperator接受兩個參數(shù)
6、同為類型int,返回值類型也為int 。17IntConsumer接受一個int類型的輸入?yún)?shù),無返回值 。18IntFunction<R>接受一個int類型輸入?yún)?shù),返回一個結(jié)果 。19IntPredicate:接受一個int輸入?yún)?shù),返回一個布爾值的結(jié)果。20IntSupplier無參數(shù),返回一個int類型結(jié)果。21IntToDoubleFunction接受一個int類型輸入,返回一個double類型結(jié)果 。22IntToLongFunction接受一個int類型輸入,返回一個long類型結(jié)果。23IntUnaryOperator接受一個參數(shù)同為類型int,返回值類型也為int
7、 。24LongBinaryOperator接受兩個參數(shù)同為類型long,返回值類型也為long。25LongConsumer接受一個long類型的輸入?yún)?shù),無返回值。26LongFunction<R>接受一個long類型輸入?yún)?shù),返回一個結(jié)果。27LongPredicateR接受一個long輸入?yún)?shù),返回一個布爾值類型結(jié)果。28LongSupplier無參數(shù),返回一個結(jié)果long類型的值。29LongToDoubleFunction接受一個long類型輸入,返回一個double類型結(jié)果。30LongToIntFunction接受一個long類型輸入,返回一個int類型結(jié)果。31L
8、ongUnaryOperator接受一個參數(shù)同為類型long,返回值類型也為long。32ObjDoubleConsumer<T>接受一個object類型和一個double類型的輸入?yún)?shù),無返回值。33ObjIntConsumer<T>接受一個object類型和一個int類型的輸入?yún)?shù),無返回值。34ObjLongConsumer<T>接受一個object類型和一個long類型的輸入?yún)?shù),無返回值。35Predicate<T>接受一個輸入?yún)?shù),返回一個布爾值結(jié)果。36Supplier<T>無參數(shù),返回一個結(jié)果。37ToDoubleBi
9、Function<T,U>接受兩個輸入?yún)?shù),返回一個double類型結(jié)果38ToDoubleFunction<T>接受一個輸入?yún)?shù),返回一個double類型結(jié)果39ToIntBiFunction<T,U>接受兩個輸入?yún)?shù),返回一個int類型結(jié)果。40ToIntFunction<T>接受一個輸入?yún)?shù),返回一個int類型結(jié)果。41ToLongBiFunction<T,U>接受兩個輸入?yún)?shù),返回一個long類型結(jié)果。42ToLongFunction<T>接受一個輸入?yún)?shù),返回一個long類型結(jié)果。43UnaryOperator&
10、lt;T>接受一個參數(shù)為類型T,返回值類型也為T。四 接口的默認(rèn)方法默認(rèn)方法就是接口可以有實(shí)現(xiàn)方法,而且不需要實(shí)現(xiàn)類去實(shí)現(xiàn)其方法。我們只需在方法名前面加個default關(guān)鍵字即可實(shí)現(xiàn)默認(rèn)方法。為什么要有這個特性?1.8之前,修改接口意味著要修改全部實(shí)現(xiàn)該接口的類,例如,java 8之前的集合框架沒有foreach方法,通常的解決辦法是在JDK里給相關(guān)的接口添加新的方法及實(shí)現(xiàn)類。對于已經(jīng)發(fā)布的版本,會影響已有的實(shí)現(xiàn)。接口引進(jìn)了的默認(rèn)方法的機(jī)制。最大化的解決了接口的修改與現(xiàn)有的實(shí)現(xiàn)不兼容的問題。需求變更,需要修改接口,此時使用java8新特性中的接口默認(rèn)方法,實(shí)現(xiàn)類TestImpl無需改變代
11、碼,ITest接口即可提供服務(wù)。當(dāng)然TestImpl也可以覆蓋接口中的變更方法print五 JAVA8 StreamStream 使用一種類似用 SQL 語句從數(shù)據(jù)庫查詢數(shù)據(jù)的直觀方式來提供一種對 Java 集合運(yùn)算和表達(dá)的高階抽象。Stream API可以極大提供Java程序員的生產(chǎn)力,讓程序員寫出高效率、干凈、簡潔的代碼。這種風(fēng)格將要處理的元素集合看作一種流, 流在管道中傳輸, 并且可以在管道的節(jié)點(diǎn)上進(jìn)行處理, 比如篩選, 排序,聚合等,最后由最終操作(terminal operation)得到前面處理的結(jié)果。+-+ +-+ +-+ +-+ +-+| stream of elements
12、+-> |filter+-> |sorted+-> |map+-> |collect|+-+ +-+ +-+ +-+ +-+以上的流程轉(zhuǎn)換為 Java 代碼為:List<Integer> transactionsIds = widgets.stream() .filter(b -> b.getColor() = RED) .sorted(x,y) -> x.getWeight() - y.getWeight() .mapToInt(Widget:getWeight) .sum();5.1生成流:在 Java 8 中, 集合接口有兩個方法來生成流:
13、stream() 為集合創(chuàng)建串行流。parallelStream() 為集合創(chuàng)建并行流?!敬信c并行】5.2 forEach遍歷方法5.3 map方法map用于映射每個元素到對應(yīng)的運(yùn)行結(jié)果5.4 filter、limit、sorted、parallelStreamfilter 方法用于通過設(shè)置的條件過濾出元素。limit 獲取指定數(shù)量的流sorted 對流對象進(jìn)行排序parallelStream 并行流替代串行流5.5 collect方法及Collectors類Collectors.toList方法 由流轉(zhuǎn)變?yōu)長ist集合Collectors.joining("
14、;,")方法,由流轉(zhuǎn)變?yōu)樽址?.6 IntSummaryStatistics統(tǒng)計收集器5.7 綜合比較JAVA7與JAVA8package pany.java8.stream;import java.util.ArrayList;import java.util.Arrays;import java.util.IntSummaryStatistics;import java.util.List;import java.util.Random;import java.util.stream.Collectors;public class Stream7 /Java7計算空字符串?dāng)?shù)量p
15、rivate static int getCountEmptyStringUsingJava7(List<String> strings) int count = 0;for (String string : strings) if (string.isEmpty() count+;return count;/Java7計算長度為3的字符串?dāng)?shù)量private static int getCountLength3UsingJava7(List<String> strings) int count = 0;for (String string : strings) if (
16、string.length() = 3) count+;return count;/Java7將非空字符串整合成List集合private static List<String> deleteEmptyStringsUsingJava7(List<String> strings) List<String> filteredList = new ArrayList<String>();for (String string : strings) if (!string.isEmpty() filteredList.add(string);return
17、 filteredList;/Java7將非空字符串合并成指定分隔符的字符串private static String getMergedStringUsingJava7(List<String> strings, String separator) StringBuilder stringBuilder = new StringBuilder();for (String string : strings) if (!string.isEmpty() stringBuilder.append(string);stringBuilder.append(separator);Strin
18、g mergedString = stringBuilder.toString();return mergedString.substring(0, mergedString.length() - 2);/Java7獲取平方集合private static List<Integer> getSquares(List<Integer> numbers) List<Integer> squaresList = new ArrayList<Integer>();for (Integer number : numbers) Integer square
19、= new Integer(Value() * Value();if (!squaresList.contains(square) squaresList.add(square);return squaresList;/Java7獲取最大值private static int getMax(List<Integer> numbers) int max = numbers.get(0);for (int i = 1; i < numbers.size(); i+) Integer number = numbers.get(i);if (n
20、Value() > max) max = Value();return max;/Java7獲取最小值private static int getMin(List<Integer> numbers) int min = numbers.get(0);for (int i = 1; i < numbers.size(); i+) Integer number = numbers.get(i);if (Value() < min) min = Value();return min;/Java
21、7獲取總數(shù)private static int getSum(List<Integer> numbers) int sum = (int) (numbers.get(0);for (int i = 1; i < numbers.size(); i+) sum += (int) numbers.get(i);return sum;/Java7獲取平均值private static int getAverage(List<Integer> numbers) return getSum(numbers) / numbers.size();/主函數(shù)public stati
22、c void main(String args) System.out.println("*");System.out.println("使用 Java 7: ");/ 計算空字符串List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd", "", "jkl");System.out.println("列表: &quo
23、t; + strings);long count = getCountEmptyStringUsingJava7(strings);System.out.println("空字符數(shù)量為: " + count);count = getCountLength3UsingJava7(strings);System.out.println("字符串長度為 3 的數(shù)量為: " + count);/ 刪除空字符串List<String> filtered = deleteEmptyStringsUsingJava7(strings);System.out
24、.println("篩選后的列表: " + filtered);/ 刪除空字符串,并使用逗號把它們合并起來String mergedString = getMergedStringUsingJava7(strings, ", ");System.out.println("合并字符串: " + mergedString);List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);/ 獲取列表元素平方數(shù)List<Integer> squaresList =
25、 getSquares(numbers);System.out.println("平方數(shù)列表: " + squaresList);List<Integer> integers = Arrays.asList(1, 2, 13, 4, 15, 6, 17, 8, 19);System.out.println("列表: " + integers);System.out.println("列表中最大的數(shù) : " + getMax(integers);System.out.println("列表中最小的數(shù) : "
26、; + getMin(integers);System.out.println("所有數(shù)之和 : " + getSum(integers);System.out.println("平均數(shù) : " + getAverage(integers);System.out.println("隨機(jī)數(shù): ");/ 輸出10個隨機(jī)數(shù)Random random = new Random();for (int i = 0; i < 10; i+) System.out.println(random.nextInt();System.out.prin
27、tln("*");System.out.println("使用 Java 8: ");System.out.println("列表: " + strings);count = strings.stream().filter(string -> string.isEmpty().count();System.out.println("空字符串?dāng)?shù)量為: " + count);count = strings.stream().filter(string -> string.length() = 3).coun
28、t();System.out.println("字符串長度為 3 的數(shù)量為: " + count);filtered = strings.stream().filter(string -> !string.isEmpty().collect(Collectors.toList();System.out.println("篩選后的列表: " + filtered);mergedString = strings.stream().filter(string -> !string.isEmpty().collect(Collectors.joini
29、ng(", ");System.out.println("合并字符串: " + mergedString);squaresList = numbers.stream().map(i -> i * i).distinct().collect(Collectors.toList();System.out.println("Squares List: " + squaresList);System.out.println("列表: " + integers);IntSummaryStatistics stats =
30、 integers.stream().mapToInt(x) -> x).summaryStatistics();System.out.println("列表中最大的數(shù) : " + stats.getMax();System.out.println("列表中最小的數(shù) : " + stats.getMin();System.out.println("所有數(shù)之和 : " + stats.getSum();System.out.println("平均數(shù) : " + stats.getAverage();System
31、.out.println("隨機(jī)數(shù): ");s().limit(10).sorted().forEach(System.out:println);/ 并行處理count = strings.parallelStream().filter(string -> string.isEmpty().count();System.out.println("空字符串的數(shù)量為: " + count);六 JAVA8 Optional類Optional 類是一個可以為null的容器對象,它可以保存類型T的值,或者僅僅保存null。如果值存在,則
32、isPresent()方法會返回true,調(diào)用get()方法會返回該對象。這樣我們就不用顯式進(jìn)行空值檢測。Optional 類的引入很好的解決空指針異常。類聲明以下是一個 java.util.Optional<T> 類的聲明:public final class Optional<T> extends Object類方法序號方法 & 描述1static <T> Optional<T> empty()返回空的 Optional 實(shí)例。2boolean equals(Object obj)判斷其他對象是否等于 Option
33、al。3Optional<T> filter(Predicate<? super <T> predicate)如果值存在,并且這個值匹配給定的 predicate,返回一個Optional用以描述這個值,否則返回一個空的Optional。4<U> Optional<U> flatMap(Function<? super T,Optional<U>> mapper)如果值存在,返回基于Optional包含的映射方法的值,否則返回一個空的Optional5T get()如果在這個Optional中包含這個值,返回值,否則
34、拋出異常:NoSuchElementException6int hashCode()返回存在值的哈希碼,如果值不存在 返回 0。7void ifPresent(Consumer<? super T> consumer)如果值存在則使用該值調(diào)用 consumer , 否則不做任何事情。8boolean isPresent()如果值存在則方法會返回true,否則返回 false。9<U>Optional<U> map(Function<? super T,? extends U> mapper)如果存在該值,提供的映射方法,如果返回非null,返回一
35、個Optional描述結(jié)果。10static <T> Optional<T> of(T value)返回一個指定非null值的Optional。11static <T> Optional<T> ofNullable(T value)如果為非空,返回 Optional 描述的指定值,否則返回空的 Optional。12T orElse(T other)如果存在該值,返回值, 否則返回 other。13T orElseGet(Supplier<? extends T> other)如果存在該值,返回值, 否則觸發(fā) other,并返回 ot
36、her 調(diào)用的結(jié)果。14<X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier)如果存在該值,返回包含的值,否則拋出由 Supplier 繼承的異常15String toString()返回一個Optional的非空字符串,用來調(diào)試七 JAVA8 Nashorn引擎Nashorn是一個 javascript 引擎,從JDK 1.8開始,Nashorn取代Rhino(JDK 1.6, JDK1.7)成為Java的嵌入式JavaScript引擎。Nashorn完全支持ECMASc
37、ript 5.1規(guī)范以及一些擴(kuò)展,可以將JavaScript編譯成Java字節(jié)碼,帶來了2到10倍的性能提升。7.1 jjs命令行工具jjs是個基于Nashorn引擎的命令行工具。它接受一些JavaScript源代碼為參數(shù),并且執(zhí)行這些源代碼。/print語句,瀏覽器執(zhí)行就是直接調(diào)打印程序,控制臺執(zhí)行就是在控制臺顯示信息7.2 JAVA調(diào)用Javascript程序使用 ScriptEngineManager, JavaScript 代碼可以在 Java 中執(zhí)行.7.3 Javascript調(diào)用JAVA程序八 JAVA8 日期時間APIJava 8通過發(fā)布新的Date-Time API 來進(jìn)一步
38、加強(qiáng)對日期與時間的處理。在 Java7之前的版本中,日期時間 API 存在的問題如下:非線程安全 java.util.Date 是異步的,非線程安全的,這是Java日期類最大的問題之一。設(shè)計很差 Java的日期/時間類的定義并不一致,在java.util和java.sql的包中都有日期類,此外用于格式化和解析的類在java.text包中定義。java.util.Date同時包含日期和時間,而java.sql.Date僅包含日期。另外這兩個類都有相同的名字,這本身就是一個非常糟糕的設(shè)計。時區(qū)處理麻煩 日期類并不提供國際化,沒有時區(qū)支持,因此Java引入了jav
39、a.util.Calendar和java.util.TimeZone類,但他們同樣存在上述所有的問題。Java 8 在 java.time 包下提供了很多新的 API。以下為兩個比較重要的 API:Local(本地) 簡化了日期時間的處理,沒有時區(qū)的問題。Zoned(時區(qū)) 通過制定的時區(qū)處理日期時間。Java8中新的java.time包涵蓋了所有處理日期,時間,日期/時間,時區(qū),時刻(instants),過程(during)與時鐘(clock)的操作。8.1 本地化日期時間APIpackage pany.java8.time;import java
40、.time.LocalDate;import java.time.LocalDateTime;import java.time.LocalTime;import java.time.Month;public class LocalTimeDemo public static void main(String args) LocalTimeDemo lt = new LocalTimeDemo();lt.testLocalDateTime();public void testLocalDateTime() / 獲取當(dāng)前的日期時間LocalDateTime currentTime = LocalD
41、ateTime.now();System.out.println("當(dāng)前時間: " + currentTime);LocalDate date1 = currentTime.toLocalDate();System.out.println("date1: " + date1);Month month = currentTime.getMonth();int day = currentTime.getDayOfMonth();int seconds = currentTime.getSecond();System.out.println("月:
42、" + month + ", 日: " + day + ", 秒: " + seconds);LocalDateTime date2 = currentTime.withDayOfMonth(10).withYear(2012);System.out.println("date2: " + date2);/ 12 december 2014LocalDate date3 = LocalDate.of(2014, Month.DECEMBER, 12);System.out.println("date3: "
43、; + date3);/ 22 小時 15 分鐘LocalTime date4 = LocalTime.of(22, 15);System.out.println("date4: " + date4);/ 解析字符串LocalTime date5 = LocalTime.parse("20:15:30");System.out.println("date5: " + date5);8.2 使用時區(qū)的時間API九 JAVA8 Base64Java 8 內(nèi)置了 Base64 編碼的編碼器和解碼器。Base64工具類提供了一套靜態(tài)方法獲取下
44、面三種BASE64編解碼器:基本:輸出被映射到一組字符A-Za-z0-9+/,編碼不添加任何行標(biāo),輸出的解碼僅支持A-Za-z0-9+/。URL:輸出映射到一組字符A-Za-z0-9+_,輸出是URL和文件。MIME:輸出隱射到MIME友好格式。輸出每行不超過76字符,并且使用'r'并跟隨'n'作為分割。編碼輸出最后沒有行分割。內(nèi)嵌類序號內(nèi)嵌類 & 描述1static class Base64.Decoder該類實(shí)現(xiàn)一個解碼器用于,使用 Base64 編碼來解碼字節(jié)數(shù)據(jù)。2static class Base64.Encoder該類實(shí)現(xiàn)一個編碼器,使用 B
45、ase64 編碼來編碼字節(jié)數(shù)據(jù)。方法序號方法名 & 描述1static Base64.Decoder getDecoder()返回一個 Base64.Decoder ,解碼使用基本型 base64 編碼方案。2static Base64.Encoder getEncoder()返回一個 Base64.Encoder ,編碼使用基本型 base64 編碼方案。3static Base64.Decoder getMimeDecoder()返回一個 Base64.Decoder ,解碼使用 MIME 型 base64 編碼方案。4static Base64.Encoder getMimeEn
46、coder()返回一個 Base64.Encoder ,編碼使用 MIME 型 base64 編碼方案。5static Base64.Encoder getMimeEncoder(int lineLength, byte lineSeparator)返回一個 Base64.Encoder ,編碼使用 MIME 型 base64 編碼方案,可以通過參數(shù)指定每行的長度及行的分隔符。6static Base64.Decoder getUrlDecoder()返回一個 Base64.Decoder ,解碼使用 URL 和文件名安全型 base64 編碼方案。7static Base64.Encoder g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 倉儲出租合同范本
- 國際采購協(xié)議
- 正規(guī)民間個人借款合同樣書
- 鋼梁制造與組裝短期勞務(wù)合同
- 石英砂采購合同長約談判
- 購銷合同中的管材售后服務(wù)與技術(shù)支持
- 跨境電商物流合同
- 內(nèi)部建筑裝修合同樣本
- 白酒代理權(quán)協(xié)議示例
- 空白合同作廢合同法的應(yīng)用解析
- 學(xué)校傳染病控制課件
- 福建省泉州市2023-2024學(xué)年高一上學(xué)期期末質(zhì)檢英語試題(解析版)
- 中華人民共和國民法典(總則)培訓(xùn)課件
- 第三單元第1課 標(biāo)志設(shè)計 課件 2024-2025學(xué)年人教版(2024)初中美術(shù)七年級上冊
- IB課程-PYP小學(xué)項目省公開課獲獎?wù)n件說課比賽一等獎?wù)n件
- 2024年農(nóng)貿(mào)市場日常管理制度例文(四篇)
- 《數(shù)字信號處理(第2版)》本科全套教學(xué)課件
- 上市央國企數(shù)智化進(jìn)程中人才就業(yè)趨勢
- 釘釘數(shù)字化管理師中級題庫
- 2024版小學(xué)科學(xué)六年級上冊第四單元《能量》教學(xué)課件
- 4 古代詩歌四首《 觀滄?!方虒W(xué)設(shè)計
評論
0/150
提交評論