最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2021年07月15日 11:03:50   作者:香菜聊游戲  
今天在看python相關(guān)的東西,看到各種騷操作,回頭想了下Java有沒(méi)有什么騷操作,整理下面幾種,一起看一下吧,希望能給你帶來(lái)幫助

1、try with catch

還記得這樣的代碼嗎?我們需要手動(dòng)的關(guān)閉資源的流,不然會(huì)造成資源泄漏,因?yàn)樘摂M機(jī)無(wú)法管理系統(tǒng)資源的關(guān)閉,必須手動(dòng)釋放。

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) {
              ...
          }
      }
  }
}

騷操作解救你:

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é)束后程序會(huì)自動(dòng)關(guān)閉資源。

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

2、instance of

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

用法:
result = object instanceof class
參數(shù):
Result:布爾類(lèi)型。
Object:必選項(xiàng)。任意對(duì)象表達(dá)式。
Class:必選項(xiàng)。任意已定義的對(duì)象類(lèi)。
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、不定項(xiàng)參數(shù) ...

格式如下:

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

public void method(int...args);

業(yè)務(wù)場(chǎng)景:

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

2、如果一個(gè)方法的的不確定參數(shù)個(gè)數(shù)的情況,通常來(lái)說(shuō)我們會(huì)重載,但是如果多了很麻煩,這個(gè)時(shí)候...可以出場(chǎng)了

//方法重載,解決參數(shù)個(gè)數(shù)不確定問(wèn)題
  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)用的三種方式

  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 中的標(biāo)簽是為循環(huán)設(shè)計(jì)的,是為了在多重循環(huán)中方便的使用 break 和coutinue ,當(dāng)在循環(huán)中使用 break 或 continue 循環(huán)時(shí)跳到指定的標(biāo)簽處

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);
              }
          }
      }
  }

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

5、方法引用

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

圖片

package org.pdool;
import java.util.ArrayList;
import java.util.List;
/**
* 方法引用測(cè)試類(lèi)
* @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、對(duì)象方法引用
       strList.forEach(System.out::println);
       // 3、構(gòu)造函數(shù)
       strList.forEach(Player::new);
       // 4、對(duì)象方法
       playerList.forEach(Player::printName);
  }
}

總結(jié):

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

2、instance of 必須是子類(lèi)

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

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

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

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

相關(guān)文章

  • 在Spring Boot中從類(lèi)路徑加載文件的示例

    在Spring Boot中從類(lèi)路徑加載文件的示例

    創(chuàng)建Spring Boot Web應(yīng)用程序時(shí),有時(shí)有時(shí)需要從類(lèi)路徑中加載文件;war和jar的加載文件格式是不一樣的,在下面,您將找到在WAR和JAR中加載文件的解決方案。
    2020-10-10
  • Java中的三種校驗(yàn)注解的使用(@Valid,@Validated和@PathVariable)

    Java中的三種校驗(yàn)注解的使用(@Valid,@Validated和@PathVariable)

    本文主要介紹了Java中的三種校驗(yàn)注解的使用(@Valid,@Validated和@PathVariable),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Java的外部類(lèi)為什么不能使用private和protected進(jìn)行修飾的講解

    Java的外部類(lèi)為什么不能使用private和protected進(jìn)行修飾的講解

    今天小編就為大家分享一篇關(guān)于Java的外部類(lèi)為什么不能使用private和protected進(jìn)行修飾的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-04-04
  • Java中定時(shí)任務(wù)的6種實(shí)現(xiàn)方式

    Java中定時(shí)任務(wù)的6種實(shí)現(xiàn)方式

    這篇文章主要給大家分享的是Java中定時(shí)任務(wù)的6種實(shí)現(xiàn)方式,幾乎在所有的項(xiàng)目中,定時(shí)任務(wù)的使用都是不可或缺的,如果使用不當(dāng)甚至?xí)斐少Y損,下面文章我們就來(lái)看看Java中定時(shí)任務(wù)的具體使用方式吧
    2021-10-10
  • Java全面細(xì)致講解Cookie與Session及kaptcha驗(yàn)證碼的使用

    Java全面細(xì)致講解Cookie與Session及kaptcha驗(yàn)證碼的使用

    web開(kāi)發(fā)階段我們主要是瀏覽器和服務(wù)器之間來(lái)進(jìn)行交互。瀏覽器和服務(wù)器之間的交互就像人和人之間進(jìn)行交流一樣,但是對(duì)于機(jī)器來(lái)說(shuō),在一次請(qǐng)求之間只是會(huì)攜帶著本次請(qǐng)求的數(shù)據(jù)的,但是可能多次請(qǐng)求之間是會(huì)有聯(lián)系的,所以提供了會(huì)話(huà)機(jī)制
    2022-06-06
  • Java中File文件操作類(lèi)的超詳細(xì)使用教程

    Java中File文件操作類(lèi)的超詳細(xì)使用教程

    File類(lèi)在包java.io.File下、代表操作系統(tǒng)的文件對(duì)象(文件、文件夾),File類(lèi)提供了諸如:定位文件,獲取文件本身的信息、刪除文件、創(chuàng)建文件(文件夾)等功能,下面這篇文章主要給大家介紹了關(guān)于Java中File文件操作類(lèi)的超詳細(xì)使用教程,需要的朋友可以參考下
    2023-01-01
  • SpringBoot實(shí)現(xiàn)初始化的三種策略模式

    SpringBoot實(shí)現(xiàn)初始化的三種策略模式

    本文主要介紹了SpringBoot實(shí)現(xiàn)初始化的三種策略模式,包括默認(rèn)初始化策略、懶加載初始化策略和自定義初始化策略,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-12-12
  • IDEA下Servlet可能出現(xiàn)404的一些情況

    IDEA下Servlet可能出現(xiàn)404的一些情況

    相信有很多小伙伴遇到報(bào)錯(cuò)都不知道怎么處理,今天特地整理了這篇文章,文中對(duì)IDEA下Servlet可能出現(xiàn)404的一些情況作了詳細(xì)的介紹,需要的朋友可以參考下
    2021-06-06
  • springboot項(xiàng)目不加端口號(hào)也可以訪(fǎng)問(wèn)項(xiàng)目的方法步驟分析

    springboot項(xiàng)目不加端口號(hào)也可以訪(fǎng)問(wèn)項(xiàng)目的方法步驟分析

    這篇文章主要介紹了springboot項(xiàng)目不加端口號(hào)也可以訪(fǎng)問(wèn)項(xiàng)目的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 圖解Java排序算法之3種簡(jiǎn)單排序

    圖解Java排序算法之3種簡(jiǎn)單排序

    這篇文章主要為大家詳細(xì)介紹了Java排序算法之3種簡(jiǎn)單排序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11

最新評(píng)論

宁乡县| 永昌县| 同心县| 津市市| 阿图什市| 安乡县| 新竹县| 额济纳旗| 定襄县| 饶河县| 甘孜| 剑河县| 宜兰县| 武隆县| 诸暨市| 宝山区| 文山县| 贞丰县| 宜城市| 买车| 汉源县| 贵州省| 安阳县| 海伦市| 衡阳市| 剑川县| 安丘市| 七台河市| 桃源县| 宁夏| 南投县| 开化县| 什邡市| 灵石县| 聊城市| 高要市| 班戈县| 礼泉县| 东台市| 海门市| 桦南县|