java10學習筆記

????????Java 10 于 2018 年 3 月發布,是 Java 平臺按照新的六個月發布周期發布的第一個版本。雖然相比 Java 8 和 Java 9 的大型更新,Java 10 的變化較小,但仍然引入了一些重要的特性,特別是本地變量類型推斷(var)?。

局部變量類型推斷

????????Java 10 最引人注目的特性是引入了 var 關鍵字,允許編譯器根據變量初始化表達式自動推斷局部變量的類型。這個特性使 Java 代碼更加簡潔,減少了冗余的類型聲明。

????????值得注意的是,雖然 var 看起來像動態類型,但 Java 依然是強類型語言。var 只是在編譯時由編譯器負責類型推斷,一旦推斷完成,變量的類型就固定了,在運行時不會改變。

        var app="q123";//1.沒有初始化器的變量聲明
//        var num ;
//        var s = null;
//        //2.lambda表示式中,左邊的函數式接口不能聲明為varSupplier<Double> sup = () -> Math.random();
//        var sup = () -> Math.random();
//        //3.方法引用中,左邊的函數式接口不能聲明為varConsumer<String> con = System.out::println;
//        var con = System.out::println;
//        //4.數組的靜態初始化中,注意如下的情況也不可以int[] arr = {1, 2, 3, 4};
//        var arr = {1,2,3,4};//        捕獲表達式(catch)
//        try{
//
//        }catch(var e){
//            e.printStackTrace();
//        }//方法的返回類型
//    public var method1(){
//            return 0;
//    }//方法的參數類型
//    public void method2(var num){
//
//    }

copyof()

自 Java 9 開始, Jdk 里面為集合(List / Set / Map) 都添加了 of (jdk9新增)和copyOf (jdk10新增)方法, 它們兩個都用來創建不可變的集合, 來看下它們的使用和區別。

static <E> List<E> copyOf(Collection<? extends E> coll) {if (coll instanceof ImmutableCollections.AbstractImmutableList) {return (List<E>)coll;} else {return (List<E>)List.of(coll.toArray());}
}
static <E> Set<E> copyOf(Collection<? extends E> coll) {if (coll instanceof ImmutableCollections.AbstractImmutableSet) {return (Set<E>)coll;} else {return (Set<E>)Set.of(new HashSet<>(coll).toArray());}
}
static <K, V> Map<K, V> copyOf(Map<? extends K, ? extends V> map) {if (map instanceof ImmutableCollections.AbstractImmutableMap) {return (Map<K,V>)map;} else {return (Map<K,V>)Map.ofEntries(map.entrySet().toArray(new Entry[0]));}

返回一個只讀集合,如果被復制的是只讀集合,返回它本身,如果不是創建一個只讀集合并返回

        var map = Map.of("Java", "Python", "C", "C");var copyMap = Map.copyOf(map);System.out.println(map == copyMap); // truevar list = new ArrayList<String>();list.add("牛逼");var copyList = List.copyOf(list);System.out.println(copyList == list); // false

垃圾回收器

G1并行Full GC

????????G1垃圾收集器在jdk9中是默認的。G1垃圾收集器避免了任何完全的垃圾收集,但是當用于收集的并發線程不能足夠快地恢復內存時,用戶的體驗就會受到影響。

此更改通過使完全GC并行來改善G1最壞情況下的延遲。G1收集器的mark-sweep compact算法作為此更改的一部分被并行化,當用于收集的并發線程不能足夠快地恢復內存時,它將被觸發。

垃圾收集器接口

????????這個JEP是未來的變化。它通過引入一個通用的垃圾收集器接口來改進不同垃圾收集器的代碼隔離。

????????此更改為內部GC代碼提供了更好的模塊化。它將有助于將來添加新的GC而不改變現有的代碼基,也有助于刪除或管理以前的GC。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/92550.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/92550.shtml
英文地址,請注明出處:http://en.pswp.cn/web/92550.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Flutter Listview的基本使用

Listview() 前端頁面常見的一個以列表方式顯示內容的組件。可垂直或水平滾動的列表。屬性說明scrollDirection設置滾動的方向&#xff0c;取值包括horizontal、verticalreverse設置是否翻轉&#xff0c;默認值falseitemExtent設置滾動方向子元素的長度&#xff0c;垂直方向為高…

強化學習筆記:從Q學習到GRPO

推薦學習huggingface的強化學習課程&#xff0c;全面了解強化學習的發展史。 以下是個人筆記&#xff0c;內容不一定完整&#xff0c;有些是個人理解。 基于值函數(value function)的強化學習 基于值函數(value function)的強化學習&#xff1a;學習的是一個值函數&#xff0…

MySQL索引底層原理與性能優化實踐

#技術棧深潛計劃一、前言 在日常開發中&#xff0c;MySQL數據庫以其高效、易用、可擴展等特性成為最主流的關系型數據庫之一。而索引作為數據庫查詢優化的核心工具&#xff0c;被譽為“數據庫的加速器”。但你真的了解MySQL索引的底層原理嗎&#xff1f;為什么InnoDB默認采用B樹…

Ext系列文件系統

1.硬件常見的硬件有磁盤、服務器、機柜、機房機械磁盤但是計算機中唯一的一個機械設備磁盤外設的特點就是外設慢容量大&#xff0c;價格便宜1.1.磁盤的物理結構磁盤的物理圖&#xff1a;磁盤的存儲圖扇區:是磁盤存儲數據的基本單位&#xff0c;512字節&#xff0c;塊設備磁盤的…

前綴函數——KMP的本質

前綴函數我個人覺得 oiwiki 上的學習順序是很合理的&#xff0c;學 KMP 之前先了解前綴函數是非常便于理解的。前后綴定義 前綴 prefixprefixprefix 指的是從字符串 SSS 的首位到某個位置 iii 的一個子串&#xff0c;這樣的子串寫作 prefix(S,i)prefix(S,i)prefix(S,i)。 后綴 …

解決chrome下載crx文件被自動刪除,加載未打包的擴展程序時提示“無法安裝擴展程序,因為它使用了不受支持的清單版本解決方案”

解決chrome下載crx文件被自動刪除 【chrome設置-隱私與安全-安全瀏覽】&#xff0c;選擇 不保護 【chrome設置-下載內容】&#xff0c;勾選 下載前詢問每個文件的保存位置 下載crx文件時&#xff0c;選擇保存文件夾&#xff0c;將 .crx后綴 改為 .zip后綴&#xff0c;再確定。 …

嵌入式學習day23-shell命令

linux軟件編程學習大綱&#xff1a;1.IO操作文件2.多任務編程3.網絡編程4.數據庫編程5.硬件設備管理學習目標&#xff1a;1.學習接口調用&#xff08;第一層&#xff09;2.軟件操作流程和思想&#xff08;第二層&#xff09;3.軟件設計思想和流程架構&#xff08;第三層&#x…

GPT-5 系列深度詳解:第1章-引言(目錄)

1 引言2 模型數據與訓練3 觀察到的安全挑戰與評估 3.1 從強制拒絕到安全完成 3.2 禁?內容 3.3 拍?屁 3.4 越獄 3.5 指令層級 3.6 幻覺 3.7 欺騙 3.7.1 欺騙思維鏈監控 3.8 圖像輸入 3.9 健康 3.10 多語言性能 3.1.1公平性與偏見&#xff1a; BBQ評估4 紅隊測試與外部評估…

NineData 新增支持 AWS ElastiCache 復制鏈路

2025 年&#xff0c;絕大多數企業已完成業務上云&#xff0c;以獲取更高的彈性、可擴展性和成本效益。AWS ElastiCache 作為 AWS 提供的全托管式內存數據庫服務&#xff0c;已成為許多企業在云上構建高并發、低延遲應用的理想選擇。NineData 數據復制現已全面支持從自建 Redis …

人工智能-python-特征選擇-皮爾遜相關系數

以下是關于特征選擇中常用方法的表格總結&#xff0c;并且詳細闡述了皮爾遜相關系數的原理、計算方法、步驟以及示例。 常用特征選擇方法總結方法原理優點缺點使用場景過濾法&#xff08;Filter Method&#xff09;基于特征的統計信息&#xff08;如相關性、方差等&#xff09;…

LabVIEW多循環架構

?LabVIEW的多循環架構是一種常見的架構&#xff0c;本文Temperature Monitoring.vi 采用 LabVIEW 典型的多循環并行架構&#xff0c;通過功能模塊化設計實現溫度監測全流程&#xff0c;各循環獨立運行又協同工作&#xff0c;構成完整的監測系統。1. 事件處理循環&#xff08;E…

深入理解Maven BOM

一、什么是Maven BOM&#xff1f; 1.1 BOM的基本概念 Maven BOM&#xff08;Bill of Materials&#xff0c;材料清單&#xff09;是一種特殊的POM文件&#xff0c;它主要用于集中管理多個相關依賴的版本。BOM本身不包含任何實際代碼&#xff0c;而是作為一個 版本管理的"參…

Mysql分頁:高效處理海量數據的核心技術

Mysql分頁&#xff1a;高效處理海量數據的核心技術01 引言 在Web應用、移動應用或數據分析場景中&#xff0c;數據庫常常需要處理百萬甚至千萬級的數據記錄。一次性加載所有數據不僅效率低下&#xff0c;還會消耗大量網絡帶寬和內存資源。數據庫分頁技術正是解決這一挑戰的關鍵…

通過 Docker 運行 Prometheus 入門

Promethues 組件 prometheus serverexporteralertmanager 環境準備 Docker 拉取鏡像備用 # https://hub.docker.com/r/prom/prometheus docker pull m.daocloud.io/docker.io/prom/prometheus:main# https://hub.docker.com/r/prom/node-exporter docker pull m.daocloud.io/do…

Java 8特性(一)

目錄 一、Lambda表達式 1、語法格式&#xff1a; &#xff08;1&#xff09;接口名 對象名(參數類型1參數名1,....參數類型n 參數名n)->{方法體;} &#xff08;2&#xff09;參數類型h 參數名n:接口中抽象方法的參數項 &#xff08;3&#xff09;->:表示連接操作 &a…

【代碼隨想錄|232.用棧實現隊列、225.用隊列實現棧、20.有效的括號、1047.刪除字符串中的所有相鄰重復項】

232.用棧實現隊列 timutimtit232. 用棧實現隊列 - 力扣&#xff08;LeetCode&#xff09; class MyQueue { public:stack<int> Sin;stack<int> Sout;MyQueue() {}void push(int x) {Sin.push(x);}int pop() {if (Sout.empty()) { // 出棧為空就把入棧的數導出來w…

碼上爬第三題【協程+瀏覽器調試檢測】

前言&#xff1a;圖靈第三題就是對用戶瀏覽器調試檢測&#xff0c;檢測鼠標右擊打開控制臺&#xff0c;檢測鍵盤按鍵ctrlshifti&#xff0c;從瀏覽器設置打開開發者工具也不行&#xff0c;應該是有瀏覽器寬高檢測的&#xff0c;所以我們保證瀏覽器頁面寬高不變即可。你如果想右…

windows、linux應急響應入侵排查

windows入侵排查 1.1檢查賬號 1.查看服務器是否有弱口令&#xff0c;遠程管理端口是否對公網開放 2.查看服務器是否存在可疑賬號、新增賬號 檢查方法&#xff1a;打開 cmd 窗口&#xff0c;輸入 lusrmgr.msc 命令&#xff0c;查看是否有新增/可疑的賬號&#xff0c;如有管…

11. 為什么要用static關鍵字

11. 為什么要用static關鍵字 static&#xff1a;通常來說&#xff1a;在new一個對象的時候&#xff0c;數據存儲空間才會被分配&#xff0c;方法才能被外界使用。但是有時只想單獨分配一個存儲空間&#xff0c;不考慮需要創建對象或不創建對象&#xff0c;在沒有對象的情況下也…

[Oracle] MAX()和MIN()函數

MAX() 和 MIN() 是 Oracle 常用的聚合函數&#xff0c;用于從一組值中找出最大值和最小值1.MAX()函數MAX()函數返回指定列或表達式中的最大值語法格式MAX(expression)參數說明expression&#xff1a;可以是列名、計算列或表達式示例-- 返回employees表中salary列的最大值 SELEC…