成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

測試開發同學必須了解的Java11中的重要變化

開發 后端
目前市場上主流的穩定版是Java 8和Java 11(java17也推出了穩定版,但使用者寥寥),我個人建議測試開發人員可以選擇使用jdk11,在這里總結一下使用jdk11的一些重要變化!

目前市場上主流的穩定版是Java 8和Java 11(java17也推出了穩定版,但使用者寥寥),目前大部分公司的生產環境還是Java 8居多。因為正在建設中的系統,擅自更換語言SDK版本更是大忌。因為更換語言SDK就意味著SDK API面臨著變更風險,極有可能導致很多未知的運行時錯誤和編譯器錯誤。一個大型的軟件系統,其實不僅僅光包含了語言SDK,還可能包含了諸多框架和中間件,例如Spring Cloud全家桶、Kafka、Spark等等,升級SDK意味著你要面對大量SDK升級帶來的可能對中間組件的非向下兼容特性,一旦遇到,那對整個軟件系統那就是滅頂之災。而對于測試開發工程師而言,升級到jdk11的風險要小很多,因為我們的代碼量以及依賴的框架和中間件相對還是較開發人員小很多的!我個人建議測試開發人員可以選擇使用jdk11,在這里總結一下使用jdk11的一些重要變化!

總體感受:jdk11的語法越來越像python啦!

變量類型推斷

引入關鍵字var,用var來定義的變量不用寫具體類型,編譯器能根據=右邊的實際賦值來自動推斷出變量的類型:

  1. var str="hello jdk 11"
  2.  
  3. System.out.println(str); 

 輸出

  1. hello jdk 11 

是不是有了錯覺,我是誰?我在哪?我在使用python嗎?

Files類文件讀寫增強

可以通過Files類的靜態方法writeString()和readString()完成文件讀寫操作,核心示例代碼如下:

  1. Path path = Paths.get("D: /test.txt"); 
  2. String content = null
  3. try { 
  4.     content = Files.readString(path, StandardCharsets.UTF_8); 
  5. } catch (IOException e) { 
  6.     e.printStackTrace(); 
  7. System.out.println(content); 
  8. try { 
  9.     Files.writeString( path, "老李", StandardCharsets.UTF_8 ); 
  10. } catch (IOException e) { 
  11.     e.printStackTrace(); 
  12.  

官方提供HTTPClient

現在JDK官方就自帶HTTP Client了,位于java.net.http包下,很顯然就是對標apache的httpclient,我們直接使用jdk11中自帶的httpclient就可以做接口測試相關的工作了!核心示例代碼如下:

  1. var request = HttpRequest.newBuilder() 
  2.         .uri( URI.create("https://www.baidu.com") ) 
  3.         .GET() 
  4.         .build(); 
  5.  
  6. HttpResponse<String> httpResponse = null
  7. try { 
  8.     httpResponse = HttpClient.newHttpClient() 
  9.             .send( request, HttpResponse.BodyHandlers.ofString()); 
  10. } catch (IOException e) { 
  11.     e.printStackTrace(); 
  12. } catch (InterruptedException e) { 
  13.     e.printStackTrace(); 
  14. System.out.println( httpResponse.body() ); // 打印獲取到的網頁內容 

支持java源文件直接運行

通過在cmd中,執行命令java **.java,直接運行**.java文件

是不是又有了錯覺,我是誰?我在哪?我在使用python嗎?

Jshell交互式工具的使用

從java9開始,java開始引入了類似于python的交互式工具

在jdk bin目錄下提供了工具Jshell,使用方法如下圖

測試開發同學必須了解的Java11中的重要變化

是不是再次有了錯覺,我是誰?我在哪?我在使用python嗎?

接下來這兩個功能對于性能測試工程師來說,絕對有必要了解一下:

垃圾回收機制性能的提升

ZGC, 這應該是JDK11最為矚目的特性, 沒有之一。但是后面帶了Experimental, 說明這還不建議用到生產環境。ZGC的設計目標是:支持TB級內存容量,暫停時間低(<10ms),對整個程序吞吐量的影響小于15%。

完全支持Linux容器(包括Docker)

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

  • 遵守容器中設置的內存限制
  • 在容器中設置可用的CPU
  • 在容器中設置CPU約束

升級到jdk11的問題-軟件不兼容

最大的問題就是jdk11跟其他軟件的不兼容,例如jmeter4.0在jdk11環境中就會運行失敗。因此建議在電腦上同時安裝jdk1.8和jdk11!

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2021-04-07 07:48:00

測試開發Java反射Spring

2021-04-13 08:25:12

測試開發Java注解Spring

2009-09-22 18:26:48

2019-05-15 13:48:17

PythonDjangoFlask

2020-09-28 08:54:51

python

2020-09-27 14:00:44

代碼

2022-02-09 15:55:01

JavaHttpClientJAVA11

2018-05-30 13:42:39

2009-06-29 10:28:00

無線網絡MIMO測試

2010-08-12 14:13:01

Flex開發者

2016-12-23 08:59:00

AB 測試CRO

2014-12-15 10:25:21

移動開發像素設計

2021-10-19 09:44:22

開發測試工具

2012-07-13 14:09:47

測試工程師軟件測試

2015-12-03 15:28:57

2019-07-15 16:10:13

MYSQL開源數據庫

2011-12-16 13:37:50

數據

2022-01-05 14:02:31

前端Nginx單頁加載

2020-02-25 17:13:15

移動開發iOSAndroid

2023-11-16 08:00:56

Java11G1
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕视频在线观看免费 | 自拍偷拍第一页 | 精品一区二区三区在线观看 | 精品一二 | www.操.com | 天天操操 | 精品欧美一区二区三区 | 久久精品一级 | 国产91在线播放 | 暖暖成人免费视频 | 天天爽天天操 | 成年人免费网站 | 久久精品国产一区二区电影 | 国产精品久久 | 欧美中文字幕一区二区三区 | 337p日本欧洲亚洲大胆 | 在线一区 | 亚洲一区精品在线 | 伊人久麻豆社区 | 中文字幕av在线播放 | 四虎影院新网址 | 午夜免费看视频 | 免费成人av | 亚洲精品大全 | 国产精品美女一区二区 | 久久婷婷色 | 成人av看片 | 蜜桃av鲁一鲁一鲁一鲁 | www.亚洲.com | 天天爱天天操 | av毛片在线免费观看 | 精品中文字幕一区二区三区 | 国产成人精品av | 久久久精品久久久 | 欧美日韩亚 | 国产精品日韩在线观看一区二区 | 亚洲+变态+欧美+另类+精品 | 欧美成人在线网站 | 日韩中文字幕在线观看 | 久久久久久亚洲国产精品 | 午夜精品一区二区三区在线视 |