一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java中的這些騷操作你不能不知道!!!

Java中的這些騷操作你不能不知道!!!

2021-10-11 09:33香菜聊游戲 Java教程

今天在看python相關(guān)的東西,看到各種騷操作,回頭想了下Java有沒有什么騷操作,整理下面幾種,一起看一下吧,希望能給你帶來幫助

1、try with catch

還記得這樣的代碼嗎?我們需要手動的關(guān)閉資源的流,不然會造成資源泄漏,因為虛擬機無法管理系統(tǒng)資源的關(guān)閉,必須手動釋放。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public void manualClose(String fileName) {
  BufferedReader reader = null;
  try {
      String line;
      reader = new BufferedReader(new FileReader(fileName));
      while ((line = reader.readLine()) != null) {
          ...
      }
  } catch (Exception e) {
      ...
  } finally {
      if (reader != null) {
          try {
              reader.close();
          } catch (IOException e) {
              ...
          }
      }
  }
}

騷操作解救你:

?
1
2
3
4
5
6
7
8
9
10
public void autoClose(String fileName) {
  try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
      String line;
      while ((line = reader.readLine()) != null) {
          ...
      }
  } catch (Exception e) {
      ...
  }
}

可以看到,try-with-resources的比前一種方法明顯節(jié)省了很多代碼,資源在try后邊的()中生成,在try結(jié)束后程序會自動關(guān)閉資源。

如果需要聲明多個資源,可以在try后面的()中,以;分隔;也就是說,try后邊的()可以添加多行語句, 我上篇文章有展示:《保姆系列五》原來JavaIO如此簡單,驚呆了

2、instance of

對象是否是這個特定類或者是它的子類的一個實例,返回一個布爾值。左邊是對象,右邊是類;當對象是右邊類或子類所創(chuàng)建對象時,返回true;否則,返回false。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
用法:
result = object instanceof class
參數(shù):
Result:布爾類型。
Object:必選項。任意對象表達式。
Class:必選項。任意已定義的對象類。
public interface Monster {
  }
   public static class Dinosaur implements Monster{
  }
   public static void main(String[] args) {
       Dinosaur dinosaur = new Dinosaur();
       System.out.println(dinosaur instanceof Monster);
  }

3、不定項參數(shù) ...

格式如下:

參數(shù)個數(shù)可以0或者多個

?
1
public void method(int...args);

業(yè)務場景:

1、在業(yè)務開發(fā)的時候經(jīng)常之前寫一個方法,但是后來業(yè)務變動了,需要增加參數(shù),這個時候可以使用這種方式,多傳參數(shù),調(diào)用的地方不需要覆蓋

2、如果一個方法的的不確定參數(shù)個數(shù)的情況,通常來說我們會重載,但是如果多了很麻煩,這個時候...可以出場了

?
1
2
3
4
5
6
7
//方法重載,解決參數(shù)個數(shù)不確定問題
  public void method(){};
  public void method(int i){};
  public void method(int i, int j){};
  public void method(int i, int j, int k){};
優(yōu)化之后的形式:
public void method(int i,int ...args);

調(diào)用的三種方式

?
1
2
3
4
5
6
7
8
9
public void call(){
    //1、 不使用變參
    method(1);
    //2、 直接調(diào)用
    method(1,2,23,4,5,6);
    //3、 數(shù)組調(diào)用
    int[] arr = {1,2,23,4,5,6};
    method(5,arr);
}

4、跳出多層循環(huán)的label

Java 中的標簽是為循環(huán)設計的,是為了在多重循環(huán)中方便的使用 break 和coutinue ,當在循環(huán)中使用 break 或 continue 循環(huán)時跳到指定的標簽處

?
1
2
3
4
5
6
7
8
9
10
11
12
public static void main(String[] args) {
       for (int i = 0; i < 5; i++) {
           labelA: for (int j = 0; j < 5; j++) {
               for (int k = 0; k < 5; k++) {
                   if (k == 1) {
                       break labelA;
                  }
                   System.out.println(1);
              }
          }
      }
  }

不推薦這種用法,雖然很騷,但是老老實實的一層一層break 比較好,你覺得吶?

5、方法引用

用Lambda表達式僅僅是調(diào)用一些已經(jīng)存在的方法,除了調(diào)用動作外,沒有其他任何多余的動作

Java中的這些騷操作你不能不知道!!!

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package org.pdool;
import java.util.ArrayList;
import java.util.List;
/**
* 方法引用測試類
* @author 香菜
*/
public class Trytest {
   static List<Player> playerList = new ArrayList<>();
   // 靜態(tài)方法
   public static void print(String s) {
       System.out.println(s);
  }
   static class Player {
       private String name;
       public Player(String name) {
           this.name = name;
           playerList.add(this);
      }
       private void printName() {
           System.out.println(name);
      }
  }
   public static void main(String[] args) {
       List<String> strList = new ArrayList<>();
       strList.add("香菜");
       strList.add("follow me");
       // 1、靜態(tài)方法引用
       strList.forEach(Trytest::print);
       // /2、對象方法引用
       strList.forEach(System.out::println);
       // 3、構(gòu)造函數(shù)
       strList.forEach(Player::new);
       // 4、對象方法
       playerList.forEach(Player::printName);
  }
}

總結(jié):

1、在try結(jié)束后程序會自動關(guān)閉資源

2、instance of 必須是子類

3、參數(shù)個數(shù)可以0或者多個,重構(gòu)代碼利器

4、使用 break 或 continue 循環(huán)時跳到指定的標簽處

5、方法調(diào)用是除了調(diào)用動作外,沒有其他任何多余的動作

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注服務器之家的更多內(nèi)容!

原文鏈接:https://gamwatcher.blog.csdn.net/article/details/117164678

延伸 · 閱讀

精彩推薦
  • Java教程xml與Java對象的轉(zhuǎn)換詳解

    xml與Java對象的轉(zhuǎn)換詳解

    這篇文章主要介紹了xml與Java對象的轉(zhuǎn)換詳解的相關(guān)資料,需要的朋友可以參考下...

    Java教程網(wǎng)2942020-09-17
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程Java實現(xiàn)搶紅包功能

    Java實現(xiàn)搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現(xiàn)搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程Java BufferWriter寫文件寫不進去或缺失數(shù)據(jù)的解決

    Java BufferWriter寫文件寫不進去或缺失數(shù)據(jù)的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數(shù)據(jù)的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發(fā)項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經(jīng)有好久沒有升過級了。升級完畢重啟之后,突然發(fā)現(xiàn)好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關(guān)于小米推送Java代碼,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩(wěn)中求8032021-07-12
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發(fā)現(xiàn)了對于集合操作轉(zhuǎn)換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關(guān)于Java8中S...

    阿杜7472021-02-04
主站蜘蛛池模板: 四虎精品成人免费观看 | 日本三级香港三级久久99 | 国产专区一va亚洲v天堂 | 久久se精品一区二区国产 | 国产二区视频 | 国产片自拍 | 天天色资料 | 国产第9页 | 日本不卡免费新一二三区 | 女人被爽到呻吟娇喘的视频动态图 | 日本粉色视频 | 亚洲精品一区二区久久久久 | 国产精品福利在线观看入口 | haodiaocao几万部精彩视频 | 91制片厂制作传媒免费版樱花 | 女同性互吃奶乳免费视频 | 十大网站免费货源 | 日本高清二三四本2021 | 亚洲成人免费 | 99热这里只有精品在线 | 激情婷婷综合久久久久 | 午夜欧美精品久久久久久久 | 2020年精品国产午夜福利在线 | 亚洲国产精品久久精品成人网站 | 男人和女人日 | 黑人好大好硬好深好爽想要h | 欧美黑人成人免费全部 | 天天色色色 | 日本国产在线视频 | 大桥未久aⅴ一区二区 | 无限好资源第一片免费韩国 | 色交视频| 成人猫咪maomiav永久网址 | 亚洲精品国产一区二区三区在 | 情人我吃糖果小说 | 亚洲AV久久无码精品九号软件 | 免费日韩 | 免费永久观看美女视频网站网址 | 国产午夜精品久久久久小说 | 我在厨房摸岳的乳HD在线观看 | 超强台风免费观看完整版视频 |