欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java 方法與數(shù)組基礎(chǔ)使用詳解

 更新時間:2022年04月02日 11:54:14   作者:Pretend..  
Java語言中的“方法”(Method)在其他語言當(dāng)中也可能被稱為“函數(shù)”(Function),數(shù)組對于每一門編程語言來說都是重要的數(shù)據(jù)結(jié)構(gòu)之一,當(dāng)然不同語言對數(shù)組的實現(xiàn)及處理也不盡相同。Java 語言中提供的數(shù)組是用來存儲固定大小的同類型元素

一、方法的使用

1、方法的定義

java中的方法就相當(dāng)于C語言中的函數(shù)

方法的語法格式

//方法的定義

修飾符  返回值類型  方法的名稱(【參數(shù)類型 參數(shù)】){

              方法體代碼;

             【return 返回值】;

}

【注意事項】

  • 修飾符:現(xiàn)階段直接使用public static 固定搭配
  • 返回值類型:如果方法有返回值,返回值類型必須要與返回的實體類型一致,如果沒有返回值,必須寫成void
  • 方法名字:采用小駝峰命名
  • 參數(shù)列表:如果方法沒有參數(shù),()中什么都不寫,如果有參數(shù),需指定參數(shù)類型,多個參數(shù)之間使用逗號隔開
  • 方法體:方法內(nèi)部要執(zhí)行的語句 
  • 在java當(dāng)中,方法必須寫在類當(dāng)中 
  • 在java當(dāng)中,方法不能嵌套定義 
  • 在java當(dāng)中,沒有方法聲明一說

2、方法重載

如果多個方法的名字相同,參數(shù)列表不同,則稱該方法被重載。

public class TestMethod {
    public static void main(String[] args) {
        add(1, 2);    //調(diào)用函數(shù)add(int,int)
        add(1.5, 2.5);//調(diào)用函數(shù)add(double,double)
        add(1, 3, 5);//調(diào)用函數(shù)add(int,int,int)
    }
    public static int add(int x, int y) {
        return x + y;
    }
    public static double add(double x, double y) {
        return x + y;
    }
    public static double add(int x, int y, int z) {
        return x + y + z;
    }
}

【注】

  • 方法名必須相同
  • 參數(shù)列表必須不同(參數(shù)的個數(shù)不同、參數(shù)的類型不同、類型的次序必須不同)
  • 與返回值類型是否相同無關(guān)

二、數(shù)組的定義和使用

1、數(shù)組的基本概念

(1)數(shù)組的創(chuàng)建

T[ ] 數(shù)組名 = new T[N];

T:表示數(shù)組中元素的類型

N:表示數(shù)組的大小

int[] array1 = new int[10]; // 創(chuàng)建一個可以容納10個int類型元素的數(shù)組
double[] array2 = new double[5]; // 創(chuàng)建一個可以容納5個double類型元素的數(shù)組
String[] array3 = new double[3]; // 創(chuàng)建一個可以容納3個字符串元素的數(shù)組

(2)數(shù)組的初始化

動態(tài)初始化:在創(chuàng)建數(shù)組時,直接指定書中元素的個數(shù)

int[] array = new int[10];  //默認(rèn)值為0

靜態(tài)初始化:在創(chuàng)建時不直接指定數(shù)據(jù)元素個數(shù),直接將元素內(nèi)容指定。

語法格式:T[ ] 數(shù)組名 = {data1,……,datan};

int[] array1 = new int[]{0,1,2,3,4,5,6,7,8,9};
double[] array2 = new double[]{1.0, 2.0, 3.0, 4.0, 5.0};
String[] array3 = new String[]{"hell", "Java", "!!!"};

【注意】

  • 靜態(tài)初始化雖然沒有指定數(shù)組的長度,編譯器在編譯時會根據(jù){}中元素個數(shù)來確定數(shù)組的長度。
  • 靜態(tài)初始化時, {}中數(shù)據(jù)類型必須與[]前數(shù)據(jù)類型一致。
  • 靜態(tài)初始化可以簡寫,省去后面的new T[]。
  • 數(shù)組也可以按照如下C語言個數(shù)創(chuàng)建,不推薦。
  • 如果不確定數(shù)組當(dāng)中內(nèi)容時,使用動態(tài)初始化,否則建議使用靜態(tài)態(tài)初始化。
  • 如果沒有對數(shù)組進(jìn)行初始化,數(shù)組中元素有其默認(rèn)值。

(3)數(shù)組的遍歷

  • 通過for循環(huán)來遍歷,在數(shù)組中可以通過length來獲取數(shù)組長
  • 使用for-each遍歷數(shù)組
int[] array={1,2,3};
for(int x:array){
    System.out.println(x);
};
//遍歷array中元素,將元素放在x中進(jìn)行打印
  • 將數(shù)組以字符串的形式進(jìn)行打印
Array.toString(array);//將數(shù)組以字符串的形式進(jìn)行輸出

2、數(shù)組是引用類型(JVM的內(nèi)存分布)

方法區(qū)(Method Area)和堆(Heap)為所有線程所共享,每個線程擁有獨立的虛擬機(jī)棧(JVM Stack)、本地方法棧(Native Method Stack)以及程序計數(shù)器。

  • 程序計數(shù)器 (PC Register): 用來保存下一條執(zhí)行的指令的地址
  • 虛擬機(jī)棧(JVM Stack): 用來保存方法執(zhí)行相關(guān)的一些信息:局部變量、操作數(shù)棧、動態(tài)鏈接、返回地址以及其他的一些信息。當(dāng)方法運行結(jié)束后,棧幀就被銷毀了,即棧幀中保存的數(shù)據(jù)也被銷毀了。
  • 本地方法棧(Native Method Stack): 虛擬機(jī)棧的作用類似. 只不過保存的內(nèi)容是Native方法的局部變量。
  • 堆(Heap):使用 new 創(chuàng)建的對象都是在堆上保存。堆是隨著程序開始運行時而創(chuàng)建,隨著程序的退出而銷毀,堆中的數(shù)據(jù)只要還有在使用,就不會被銷毀。
  • 方法區(qū)(Method Area): 用于存儲已被虛擬機(jī)加載的類信息、常量、靜態(tài)變量、即時編譯器編譯后的代碼等數(shù)據(jù). 方法編譯出的的字節(jié)碼就是保存在這個區(qū)域 。

3、引用變量

  • 引用變量的0值為null,引用為空值時,不指向任何對象
  • 引用變量虛擬機(jī)棧中存儲的是其在堆中空間的起始地址,通過改地址可以去操作對象。

舉例如下:

public static void func() {
   int[] array1 = new int[3];
   array1[0] = 10;
   array1[1] = 20;
   array1[2] = 30;
   int[] array2 = new int[]{1,2,3,4,5};
   array2[0] = 100;
   array2[1] = 200;
   array1 = array2;
   array1[2] = 300;
   array1[3] = 400;
   array2[4] = 500;
   for (int i = 0; i < array2.length; i++) {
       System.out.println(array2[i]);
   }
}
  • 創(chuàng)建數(shù)組array1,沒有設(shè)置初始值,因此其為0;
  • 通過下標(biāo)修改數(shù)組array1中元素為10、20、30;
  • 創(chuàng)建數(shù)組array2,初始值為1、2、3、4、5;
  • 通過下標(biāo)方式將數(shù)組array2中前兩個元素設(shè)置為100、200;
  • array1=array2,既讓array1去引用array2引用的數(shù)組的空間,此時array1和array2其實是一個數(shù)組;
  • 通過array1將2、3號元素修改為300、400;通過array2修改4號元素為500;
  • 此時打印array2的結(jié)果應(yīng)為:100、200、300、400、500

4、數(shù)組拷貝函數(shù)

完全拷貝(Array.copyof)

int[] arr={1,2,3,4,5};
int[] newarr=Array.copyof(arr,arr.length);
  • copyof方法在進(jìn)行數(shù)組拷貝時,創(chuàng)建了新的數(shù)組
  • 此時arr和newarr引用的不是同一個數(shù)組

范圍拷貝(Array.copyofRange)

int[] newarr1=Array.copyofRange(arr,int i,int j);

拷貝從 i 下標(biāo)的 j -1 下標(biāo)的數(shù)組元素;

5、二維數(shù)組的for.each遍歷

int[][]arr={{1,2,3,4},{5,6,7,8},{3,6,2,3}};
for(int[] tmp:arr){
   for(int x:tmp){
       System.out.println(x);
   }
}

二位數(shù)組就是特殊的一維數(shù)組

到此這篇關(guān)于java 方法與數(shù)組基礎(chǔ)使用詳解的文章就介紹到這了,更多相關(guān)java 方法與數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring-boot實現(xiàn)增加自定義filter(新)

    spring-boot實現(xiàn)增加自定義filter(新)

    本篇文章主要介紹了spring-boot實現(xiàn)增加自定義filter(新),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 詳解Spring Cloud Stream使用延遲消息實現(xiàn)定時任務(wù)(RabbitMQ)

    詳解Spring Cloud Stream使用延遲消息實現(xiàn)定時任務(wù)(RabbitMQ)

    這篇文章主要介紹了詳解Spring Cloud Stream使用延遲消息實現(xiàn)定時任務(wù)(RabbitMQ),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 實例詳解SpringBoot默認(rèn)的JSON解析方案

    實例詳解SpringBoot默認(rèn)的JSON解析方案

    JSON數(shù)據(jù)現(xiàn)在是我們開發(fā)中用的最多的,百分之九十的數(shù)據(jù)都是通過JSON方式進(jìn)行傳輸,下面這篇文章主要給大家介紹了關(guān)于SpringBoot默認(rèn)的JSON解析方案的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • ActiveMQ消息簽收機(jī)制代碼實例詳解

    ActiveMQ消息簽收機(jī)制代碼實例詳解

    這篇文章主要介紹了ActiveMQ消息簽收機(jī)制代碼實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • spring webflux自定義netty 參數(shù)解析

    spring webflux自定義netty 參數(shù)解析

    這篇文章主要介紹了spring webflux自定義netty 參數(shù)解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java線程池ThreadPoolExecutor的使用及其原理詳細(xì)解讀

    Java線程池ThreadPoolExecutor的使用及其原理詳細(xì)解讀

    這篇文章主要介紹了Java線程池ThreadPoolExecutor的使用及其原理詳細(xì)解讀,線程池是一種多線程處理形式,處理過程中將任務(wù)添加到隊列,然后在創(chuàng)建線程后自動啟動這些任務(wù),線程池線程都是后臺線程,需要的朋友可以參考下
    2023-12-12
  • Java NIO 文件通道 FileChannel 用法及原理

    Java NIO 文件通道 FileChannel 用法及原理

    這篇文章主要介紹了Java NIO 文件通道 FileChannel 用法和原理,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • SpringBoot 動態(tài)配置郵箱發(fā)件人過程解析

    SpringBoot 動態(tài)配置郵箱發(fā)件人過程解析

    這篇文章主要介紹了SpringBoot 動態(tài)配置郵箱發(fā)件人過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • Java設(shè)計模式之命令模式_動力節(jié)點Java學(xué)院整理

    Java設(shè)計模式之命令模式_動力節(jié)點Java學(xué)院整理

    命令模式就是對命令的封裝,下文中給大家介紹了命令模式類圖中的基本結(jié)構(gòu),對java設(shè)計模式之命令模式相關(guān)知識感興趣的朋友一起看看吧
    2017-08-08
  • Java 日期時間工具包–java.time的使用

    Java 日期時間工具包–java.time的使用

    這篇文章主要介紹了Java 日期時間工具包–java.time的使用,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-04-04

最新評論