日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java8中方法区的内存大小如何设置_从Java8升级到Java11

發(fā)布時間:2023/12/9 java 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java8中方法区的内存大小如何设置_从Java8升级到Java11 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

奇技 · 指南

為什么選擇Java11?

容器環(huán)境支持,GC等領(lǐng)域的增強,僅通過切換到 Java 11 就有 16% 的改進。

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

JDK11 是一個長期支持版。

1

Java11相對于Java8的一些新特性

1.變量類型推斷

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

2.普通局部變量

3.For循環(huán)中使用

4.Var結(jié)合泛型

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

5.增強api

6.String 增強

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

7.集合增強

增加了一些更加方便的創(chuàng)建和復(fù)制集合類型的API

● of() @since 9

● copyOf() @since 10

8.Stream增強

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

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

2

HTTP Client API

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

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

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

● 遵守容器中設(shè)置的內(nèi)存限制

● 在容器中設(shè)置可用的CPU

● 在容器中設(shè)置CPU約束

3

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

1. javax.xml.bind 不存在

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

啟動時警告:

解決方案:手動添加相關(guān)依賴

<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.服務(wù)啟動報錯

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

解決方式:加入JAXB依賴

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

解決方式:加入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的發(fā)布間隔差不多是半年,不用全部都要去關(guān)注,都是追趕,但是LTS版本,需要去追趕,去升級,Java11就是最新的LTS版本,下一個或者再一下major version,很可能又是一個LTS版本;雖然目前使用Java 8都挺好的,現(xiàn)實是Java 8的一些特性會被往后移植,但是后續(xù)版本的特性和優(yōu)化不會再被集成到Java 8中了。

往期精彩回顧

MongoDB通配符索引

實習(xí)招聘|360云平臺火熱招聘中

360Stack裸金屬服務(wù)器部署實踐

360技術(shù)公眾號

技術(shù)干貨|一手資訊|精彩活動

掃碼關(guān)注我們

總結(jié)

以上是生活随笔為你收集整理的java8中方法区的内存大小如何设置_从Java8升级到Java11的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。