java8中方法區的內存大小如何設置_從Java8升級到Java11

奇技 · 指南

為什么選擇Java11?

容器環境支持,GC等領域的增強,僅通過切換到 Java 11 就有 16% 的改進。

進行了瘦身,更輕量級,安裝包體積小。

JDK11 是一個長期支持版。

1

Java11相對于Java8的一些新特性

1.變量類型推斷

Var關鍵字:新版Java引入全新的類型關鍵字var,用var來定義的變量像python一樣不用寫具體類型,編譯器能根據實際賦值來自動推斷變量的類型

2.普通局部變量

c72690f52b146905e6669024a716c7af.png

3.For循環中使用

87b0c79ad46021a6f2ebeb5e73a7b7e3.png

4.Var結合泛型

dbdcdf333adef1c2a616380357706e78.png

注意:var不能在類成員變量類型和方法返回值類型使用

5.增強api

6.String 增強

新版本增加了一些更方便的字符串處理的API2675d1cb3347640f1e02fc091a024d58.png

7.集合增強

增加了一些更加方便的創建和復制集合類型的API

● of() @since 9

● copyOf() @since 10

0e9625f99d335c12c38b785e627dce1f.png

8.Stream增強

Java 8 中的流已經很強大了,而且只要涉及到 IO,只要涉及到對一系列數據進行操作,都會用到流。

當然了,Java 9對其操作繼續增強,這次的改進主要是如何設置停止流的條件上。為此在流的實例上提供了四個方法 takeWhile(Predicate Interface) 、iterate 、ofNullable 和 dropWhile(Predicate Interface)

2

HTTP Client API

新版jdk官方自帶httpClient,支持發送同步、異步的http請求

0b52b63b14a71152433662ed64e86f3c.png

  • 完全支持Linux容器(包括docker)

許多運行在Java虛擬機中的應用程序(包括Apache Spark和Kafka等數據服務以及傳統的企業應用程序)都可以在Docker容器中運行。但是在Docker容器中運行Java應用程序一直存在一個問題,那就是在容器中運行JVM程序在設置內存大小和CPU使用率后,會導致應用程序的性能下降。這是因為Java應用程序沒有意識到它正在容器中運行。隨著Java 10的發布,這個問題總算得以解決,JVM現在可以識別由容器控制組(cgroups)設置的約束。可以在容器中使用內存和CPU約束來直接管理Java應用程序,其中包括:

● 遵守容器中設置的內存限制

● 在容器中設置可用的CPU

● 在容器中設置CPU約束

3

升級過程中遇到的一些問題

1. javax.xml.bind 不存在

Java11 刪除了 Java EE modules,其中就包括 java.xml.bind (JAXB)。

啟動時警告:

32be51b6aa8bc6f8ccf53d0dc2807b69.png

解決方案:手動添加相關依賴

<dependency><groupId>javax.xml.bindgroupId><artifactId>jaxb-apiartifactId><version>2.3.0version>dependency><dependency><groupId>com.sun.xml.bindgroupId><artifactId>jaxb-coreartifactId><version>2.3.0version>dependency><dependency><groupId>com.sun.xml.bindgroupId><artifactId>jaxb-implartifactId><version>2.3.0version>dependency>
2. 編譯報錯

由于JDK11中刪除了sum.misc包,編譯時會報錯:sun.misc.BASE64Encoder、sun.misc.BASE64Decoder找不到類

解決方式:
使用java.util.Base64.Encoderjava.util.Base64.Decoder替換

3.服務啟動報錯

① JDK11下使用最新的Greenwich版本的eureka默認情況下必定無法啟動,日志提示內嵌的Tomcat沒法啟動

e8e2b9ddd89ae05d2679a6e5dbad608a.png

解決方式:加入JAXB依賴

<dependency><groupId>org.glassfish.jaxbgroupId><artifactId>jaxb-runtimeartifactId><version>2.3.2version>dependency>
②?JDK9以后的版本,模塊化的概念去除了JAXB(默認沒有加載),需做接入聲明

c5aa0d026be33c91dc68dc90c5f3d016.png

解決方式:加入JAXB依賴

<dependency>
  ?<groupId>javax.xml.bindgroupId>
????????<artifactId>jaxb-apiartifactId>
dependency>
?<dependency>
?????????<groupId>com.sun.xml.bindgroupId>
?????????<artifactId>jaxb-implartifactId>
?????????<version>2.3.0version>
?dependency>
?<dependency>
????????<groupId>org.glassfish.jaxbgroupId>
????????<artifactId>jaxb-runtimeartifactId>
????????<version>2.3.0version>
dependency>
?<dependency>
?????????<groupId>javax.activationgroupId>
?????????<artifactId>activationartifactId>
??????????<version>1.1.1version>
dependency>

4

趨勢

從Java 11開始,OpenJDK major version的發布間隔差不多是半年,不用全部都要去關注,都是追趕,但是LTS版本,需要去追趕,去升級,Java11就是最新的LTS版本,下一個或者再一下major version,很可能又是一個LTS版本;雖然目前使用Java 8都挺好的,現實是Java 8的一些特性會被往后移植,但是后續版本的特性和優化不會再被集成到Java 8中了。

往期精彩回顧

MongoDB通配符索引

實習招聘|360云平臺火熱招聘中

360Stack裸金屬服務器部署實踐

579d6229385a218b520bfaccd4db7080.pngd5fa931454b780ba962aebb741228684.png

360技術公眾號

技術干貨|一手資訊|精彩活動

掃碼關注我們

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

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

相關文章

TCP建立連接

TCP的連接建立過程被稱為三次握手:第一次握手&#xff1a;客戶A的TCP向服務器B發出連接請求報文段,其首部中的同步位SYN 1 ,并選擇序號seq x,表明傳送| 數據時的第一 個數據字節的序號是X。第二次握手:B的TCP收到連接請求報文段后,如果同意,則發回確認。ACK1,其確認號ackx1。同…

webgl 著色器_如何使用AI,AR和WebGL著色器來幫助視障人士

webgl 著色器by Dan Ruta通過Dan Ruta 如何使用AI&#xff0c;AR和WebGL著色器來幫助視障人士 (How you can use AI, AR, and WebGL shaders to assist the visually impaired) Today, about 4% of the world’s population is visually impaired. Tasks like simple navigati…

計算機語言乍么設置,電腦如何設置語言

設置語言欄其實語言欄是用來進行輸入法的切換的。當你需要在Windows中進行文字輸入的時候,就需要用語言欄了,因為Windows的默認輸入語言是英文,在這種情況下,你用鍵盤在文本里輸入的文字會是英文字母,所以作為中國人的我們要想在Windows里輸入中文的話,就需要語言欄的幫助了。試…

hive 初認識

結構Hive 是建立在hadoop上的數據倉庫架構,它提供了一系列的工具,可以進行數據提取轉換加載(這個過程叫做ETL),這是一種可以存儲,查詢和分析存儲在hadoop中的大規模數據的機制.Hive定義了簡單的類SQL查詢語句 成為hql,他允許數據SQL的用戶查詢數據.同時 這個語言也允許數據mapr…

git使用(2)

1.遠程倉庫 a SSHKEY 第1步&#xff1a;創建SSH Key。在用戶主目錄下&#xff0c;看看有沒有.ssh目錄&#xff0c;如果有&#xff0c;再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個文件&#xff0c;如果已經有了&#xff0c;可直接跳到下一步。如果沒有&#xff0c;打開Shel…

郵件中的商務英語

一、常見縮寫 CC carbon copy&#xff1a;抄送 FYI for your information&#xff1a;供你參考 EOD end of the day BTW By the way&#xff1a;順便提一下 COB close of the business 這兩個詞都是指下班前。需要催促某人在下班前給到回復的時候可以用用它們。 eg: Ple…

vue 橫向菜單滾動定位_使用vue組件+iscroll實現一個橫向菜單,不能正確滑動

使用vue組件iscroll實現一個橫向菜單&#xff0c;可是卻不能滑動&#xff0c;給父元素ul寫死一個寬度可以滑動。但是&#xff0c;我在computed里計算寬度&#xff0c;直接路由進去不能滑動&#xff0c;當我進入別的組件(切換路由)回來又可以滑動了示例地址&#xff1a;http://o…

leetcode1353. 最多可以參加的會議數目(貪心算法)

給你一個數組 events&#xff0c;其中 events[i] [startDayi, endDayi] &#xff0c;表示會議 i 開始于 startDayi &#xff0c;結束于 endDayi 。 你可以在滿足 startDayi < d < endDayi 中的任意一天 d 參加會議 i 。注意&#xff0c;一天只能參加一個會議。 請你返…

計算機組成原理實驗讀r1,計算機組成原理實驗一

計算機組成原理實驗一 (5頁)本資源提供全文預覽&#xff0c;點擊全文預覽即可全文預覽,如果喜歡文檔就下載吧&#xff0c;查找使用更方便哦&#xff01;8.90 積分計算機組成原理實驗計算機組成原理實驗第一章、TEC-5 計算機組成實驗箱簡介運算器運算器74181通用寄存器通用寄存器…

如何使用Kotlin構建具有在線狀態的Android Messenger應用

by Neo Ighodaro由新Ighodaro When building a chat application, it is essential to have an online presence feature. It is essential because your users will like to know when their friends are online, and are more likely to respond to their messages in real …

Spark常見問題解決辦法

以下是在學習和使用spark過程中遇到的一些問題&#xff0c;記錄下來。 1、首先來說說spark任務運行完后查錯最常用的一個命令&#xff0c;那就是把任務運行日志down下來。 程序存在錯誤&#xff0c;將日志down下來查看具體原因!down日志命令&#xff1a;yarn logs -application…

linux下安裝php的swoole擴展模塊(安裝后php加載不出來?)

應開發同事要求&#xff0c;需要安裝php的擴展模塊swoole。 swoole是一種PHP高級Web開發框架&#xff0c;框架不是為了提升網站的性能&#xff0c;而是為了提升網站的開發效率&#xff0c;以最少的性能損耗&#xff0c;換取最大的開發效率。 假設服務器上php服務版本為php5.6.2…

autosar工具鏈_Autosar開發與手寫代碼開發的區別

Autosar開發流程1.BSW開發主要應用工具鏈&#xff08;Vector等工具&#xff0c;具體可以百度搜索Autosar配置工具&#xff09;來配置&#xff0c;復雜驅動的代碼需要手寫&#xff0c;但是也要符合Autosar的接口標準&#xff0c;主要包括&#xff0c;CAN通信配置、數字輸入配置、…

山東計算機類好的民辦大學,2021年山東所有民辦大學名單及排名(教育部)

高考考上一個好的大學&#xff0c;是每位考生和家長的一個夢想,但是選擇一個適合自己的大學也非常重要。本文高考助手網幫各位考生整理了關于山東本地區所有的民辦大學名單、山東所有的民辦大學分數線排名、山東民辦大學文理科投檔線等相關知識&#xff0c;各位考生在填報志愿的…

leetcode1536. 排布二進制網格的最少交換次數(貪心算法)

給你一個 n x n 的二進制網格 grid&#xff0c;每一次操作中&#xff0c;你可以選擇網格的 相鄰兩行 進行交換。 一個符合要求的網格需要滿足主對角線以上的格子全部都是 0 。 請你返回使網格滿足要求的最少操作次數&#xff0c;如果無法使網格符合要求&#xff0c;請你返回 …

xml文檔包含html代碼_為什么文檔很重要,以及為什么應將其包含在代碼中

xml文檔包含html代碼There are a plethora of acronyms when it comes to software development. KISS, DRY, SOLID… and so on and so forth. But, when it comes to documenting or commenting your code, there is no simple catchphrase.關于軟件開發&#xff0c;有很多首…

python 版本分布式鎖

此文章&#xff0c;實現python 版本的分布式鎖&#xff0c;java版本的可以使用curator很容易實現&#xff0c;python版本如下在做分布式系統開發的時候&#xff0c;分布式鎖可以說是必需的一個組件。最近做了一些調研和嘗試&#xff0c;經過對比&#xff0c;基于ZooKeeper的分布…

JavaScript數組(2)---遍歷/迭代方法 8種

最近工作中經常涉及到數據的處理&#xff0c;數組尤其常見&#xff0c;經常需要對其進行遍歷、轉換操作&#xff0c;網上的文章零零散散&#xff0c;不得已自己又找出紅寶書來翻出來看&#xff0c;順便記一筆&#xff0c;便于以后查詢。 數組常用的方法 ECMAScript5為數組定義了…

用例設計:思維導圖orExcel

一、 某次緊急發版時使用思維導圖來進行了用例的設計&#xff0c;很被導圖多分支羅列、在單一分支上層層遞進設計模式的吸引&#xff0c;最終看到由版本主題開枝散葉衍發出的結構性用例時非常開心。從此&#xff0c;幾個版本的迭代都使用思維導圖進行用例設計。 然而部門制度關…

class對象和class文件_Class文件格式

我們知道Java是一門跨平臺的語言&#xff0c;我們編寫的Java代碼會被編譯成中間class文件以讓Java虛擬機解析運行。而Java虛擬機規范僅僅描述了抽象的Java虛擬機&#xff0c;在實現具體的Java虛擬機時&#xff0c;僅指出了設計規范。Java虛擬機的實現必須體現規范中的內容&…