什麼是Java可變參數?Varargs的實例與詳解

2021-01-11 Java從零開始

1. Java中的Varargs是什麼?

Varargs(可變參數)是Java 1.5中引入的功能。它允許方法採用任意數量的值作為參數。

publicstaticvoidmain(String[] args) {

print("a");

print("a", "b");

print("a", "b", "c");}

publicstaticvoidprint(String …… s){

for(String a: s)

System.out.println(a);}

2. Varargs如何工作?

使用varargs工具時,它實際上首先創建一個數組,該數組的大小是在調用站點傳遞的參數數量,然後將參數值放入該數組中,最後將該數組傳遞給該方法。

3.何時使用Varargs?

顧名思義,當方法需要處理任意數量的對象時,varargs很有用。Java SDK的一個很好的例子是String.format(String format, Object…… args)。該字符串可以格式化任何數量的參數,因此使用varargs。

String.format("An integer: %d", i);String.format("An integer: %d and a string: %s", i, s);

最後,開發這麼多年我也總結了一套學習Java的資料與面試題,如果你在技術上面想提升自己的話,可以關注我,私信發送領取資料或者在評論區留下自己的聯繫方式,有時間記得幫我點下轉發讓跟多的人看到哦。

相關焦點

  • Java反射機制深入詳解
    例如:1 System.out.println("The name of class Foo is: "+Foo.class.getName());在沒有對象實例的時候,主要有兩種辦法。現在得到cls1就可以創建一個Role類的實例了,利用Class的newInstance方法相當於調用類的默認的構造器。
  • Java之可變參數的簡單介紹
    各位小夥伴們大家好,這次小編要介紹的是Java當中的可變參數,什麼是可變參數呢?就是可以變化的參數呀。什麼時候可以用可變參數呢?當方法的參數列表數據類型已經確定,但是參數個數不確定的時候,是可以使用可變參數的,接下來小編要講的是使用格式。
  • Java中可變參數的使用方式
    在Java的參數定義中,有一種比較特殊的定義方式,就是可變參數。可能有的朋友對這個名稱有點陌生,但是看到代碼可能就會說,「就是他啊」。那這個可變參數是什麼呢,就是類似下面這個方法籤名中的參數的定義方式了。
  • java基礎入門-day18-可變參數
    int[] arr = {1,2,3,,4,5,5};sum(arr); 2 可變參數方法的定義可以把數組類型的參數定義為可變參數,例如:int sum(int[] arr) {int sum = 0;for(int i = 0; i < arr.length; i++) {sum
  • 為什麼Java字符串是不可變對象?(3)
    為什麼Java字符串是不可變對象?(3) 本文主要來介紹一下Java中的不可變對象,以及Java中String類的不可變性,那麼為什麼Java的String類是不可變對象?讓我們一起來分析一下。
  • Java基礎-今日內容介紹(collection、map集合框架、可變參數
    清空操作List知識點:List集合是可變數組,繼承Collection接口。List接口特點: 有序,有索引,可以重複元素。相關操作:set(int index, E)//修改指定索引上的元素, 返回被修改之前的元素。
  • 如何使用JAVA反射/JAVA反射實例
    ;  // 指定泛型  try{   // 以下的操作形式是在開發中最常用的一種形式   c1 = Class.forName("com.test.instancedemo.X") ;  }catch(ClassNotFoundException e){   e.printStackTrace() ;  }  c2 = new X().getClass() ;  // 通過Object類中的方法實例化
  • Java經典面試題Spring是什麼 Spring框架入門詳解
    那麼Spring是什麼呢,Spring遵循分層的結構思想什麼什麼實現了高內聚低耦合巴拉巴拉一大堆,咬文嚼字不是我的強項,直接開幹,讓你們看看Spring到底是什麼東西。BeanFactory :是在getBean的時候才會生成類的實例. applicationContext :在加載applicationContext.xml(容器啟動)時候就會創建.
  • 反射——Java高級開發必須懂得
    描述:在 main 函數中,有一個 String args[] 參數,這就表示在執行某 .class 文件時,可以對 main 函數傳字符串參數(例如:命令行中:java OfficeBetter Excel,傳給主函數的參數就是Excel,如果傳多個參數,參數用空格隔開),Office類中使用了兩個類(沒有提供這兩個類),並調用其相應的方法
  • 「JAVA」萬字長篇詳述字節碼對象與反射機制完成動態編程
    Class類的實例:其實就是JVM中的字節碼對象,一個字節碼文件有一個字節碼對象,一個Class實例表示在JVM中的某個類或者接口,當然,也包括枚舉和註解,因為枚舉是一種特殊的類,註解是一種特殊的接口。每一個類都有都有一個Class對象,也就是說每個類都有一個字節碼對象,有一個字節碼文件。
  • Java8 lambda表達式語法
    但是有一點這裡強調一下(Windows系統):目前我們工作的版本一般是java 6或者java 7,所以很多人安裝java8基本都是學習為主。這樣就在自己的機器上會存在多版本的JDK。而且大家一般是希望在命令行中執行java命令是基於老版本的jdk。但是在安裝完jdk8並且沒有設置path的情況下,你如果在命令行中輸入:java -version,屏幕上會顯示是jdk 8。
  • 零基礎java入門教程函數function實例化格式案例void返回值說明
    java基礎自學入門:函數:定義在類中的具有特定功能的一段獨立小程序有時候我們函數也稱為方法,平時我們聽到的函數也就是方法,方法也是函數,每個人的叫法不同,所以這裡要切記。老程式設計師別露餡喲。哈哈哈哈函數的英文單詞function這個一定要認識下面實例化下函數的格式:修飾符 返回值類型 函數名(參數類型 形參1,參數類型 形參2, ……){
  • 很多C語言初學者都非常好奇的問題,怎樣定義可以可變參數函數?
    怎樣定義自己的可變參數函數?事實上,標準庫 <stdarg.h>就是方便C語言程式設計師定義自己的「可變參數」函數的。這裡不打算介紹過多枯燥的理論知識,我們直接看實例,請看相關C語言代碼:C語言代碼上述代碼定義了可變參數函數
  • Java反射初探 ——「當類也學會照鏡子」
    實例對象2.通過類創建的實例對象的getClass方法取得MyClass myClass = new MyClass();Class classInstance = myClass.getClass();三.通過Class類的靜態方法forName方法取得(參數是帶包名的完整的類名)
  • EffectiveJava-3-類和接口
    String,基本類型的包裝類,BigInteger,BigDecimal,不可變類比可變類更易於設計,實現和使用,且更加不易出錯,是線程安全,可以被自由的共享,充分利用現有實例;使類不可變的五條規則:1.
  • 萬字梳理,帶你拿下 Java 面試題!
    簡單理解的話就是:值傳遞是指在調用函數時將實際參數複製一份到函數中,這樣的話如果函數對其傳遞過來的形式參數進行修改,將不會影響到實際參數引用傳遞是指在調用函數時將對象的地址直接傳遞到函數中,如果在對形式參數進行修改,將影響到實際參數的值。
  • 深入分析java中的多態(從jvm角度分析)
    我們先看一下標準的概念:多態是面向對象程式語言的重要特性,它允許基類的指針或引用指向派生類的對象,而在具體訪問時實現方法的動態綁定(1)Java的方法重載(類內部之間的多態):就是在類中可以創建多個方法,它們具有相同的名字,但可具有不同的參數列表、返回值類型。
  • Java基礎教程:java反射機制教程
    現在出現一個問題,如果這個user類不是我們自己定義的,我們從外部看不到裡面有什麼東西,而且我們又想去知道內部長什麼樣,比如說有幾個欄位、方法、構造方法、共有還是私有的等等,這時候該怎麼辦呢?這時候java語言在設計的時候為我們提供了一個機制,就是反射機制,他能夠很方便的去解決我們的問題。
  • 程式設計師:深入理解JVM,從JVM層面來講Java多態
    只要能被invokestatic和invokespecial指令調用的方法,都可以在解析階段中唯一確定調用版本,符合這個條件的有:靜態方法、私有方法、實例構造器、父類方法。它們在類加載的時候就會把符號引用解析為該方法的直接引用。這些方法也稱為「非虛方法」。
  • java之數組作為方法參數的使用
    各位小夥伴們大家好,這次小編要介紹的是java作為方法參數,返回值的使用。首先,小編要介紹的是java作為方法參數的使用。static void main(String[] args){int[] array={1,2,34,78};//定義一個方法System.out.println(array);//地址值printArray(array);//(方法的調用)}/** 方法定義的三要素:* 1.返回值類型:只是進行列印,不需要進行計算,也沒有結果,用void* 2.方法名稱:printArray* 3.參數列表