亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java數(shù)組越界問題實例解析

 更新時間:2017年10月30日 16:33:44   作者:inione  
這篇文章主要介紹了Java數(shù)組越界問題實例解析,具有一定參考價值,需要的朋友可以了解下。

Java中數(shù)組初始化和OC其實是一樣的,分為動態(tài)初始化和靜態(tài)初始化,

動態(tài)初始化:指定長度,由系統(tǒng)給出初始化值

靜態(tài)初始化:給出初始化值,由系統(tǒng)給出長度

在我們使用數(shù)組時最容易出現(xiàn)的就是數(shù)組越界問題,好了,這里有個簡單的例子

     int [][] array = {{1,2,3},{1,4}};
    System.out.println(array[1][2]);

這是一個二維數(shù)組,很明顯,數(shù)組越界了,控制臺中會打印如下信息:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2

 at demo.Array.main(Array.java:31)

很準確的定位到31行。

下面看看一個完整的代碼示例:

package home_work_4_17;
abstract class Employee{
	abstract double earnings();
}
class YearWorker extends Employee{
	double earnings(){
		System.out.println("按年領(lǐng)取1000");
		return 1000;
	}
}
class MonthWorker extends Employee{
	double earnings(){
		System.out.println("按月領(lǐng)取100");
		return 100;
	}
}
class WeekWorker extends Employee{
	double earnings(){
		System.out.println("按星期領(lǐng)取10");
		return 10;
	}
}
class Company{
	int n;
	//該公司的人數(shù)
	public Company(int n) {
		this.n=n;
		// TODO Auto-generated constructor stub
	}
	Employee E[]=new Employee[n];
	double cal(){
		//返回薪水綜合
		double sum=0;
		for (int j=0;j<n;j++){
			sum+=E[j].earnings();
		}
		return sum;
	}
}
public class work_2 {
	public static void main(String args[]) {
		Company c=new Company(3);
		c.E[0]=new WeekWorker();
		c.E[1]=new MonthWorker();
		c.E[2]=new YearWorker();
		System.out.println("總支出:"+c.cal());
	}
}

編譯器顯示數(shù)組越界錯誤。

經(jīng)檢查發(fā)現(xiàn)劃線部分語句出錯

應(yīng)當做如下修改:

class Company{
  int n;  //該公司的人數(shù)
   Employee E[]; 
  public Company(int n) {
    this.n=n;// TODO Auto-generated constructor stub
    E=new Employee[n];  
   }
  double cal(){    //返回薪水綜合
    double sum=0;
    for(int j=0;j<n;j++){
      sum+=E[j].earnings();
    }
    return sum;
  }
}

出錯原因是:當Company構(gòu)造方法中并未對數(shù)組E進行初始化操作,故而E數(shù)組大小仍然為0,發(fā)生數(shù)組越界錯誤。

利用上述錯誤方式編寫的測試程序如下:

package test_a;
class people{
  int n;
  Student s[]=new Student[n];
  public people(int n) {
    this.n=n;// TODO Auto-generated constructor stub
  }
}
class Student{
  int number;
}
public class Cdcs {
  public static void main(String args[]) {
    people p=new people(3);
    System.out.println(p.s.length);
  }
}

輸出結(jié)果為0。即數(shù)組大小為零。

總結(jié)

以上就是本文關(guān)于Java數(shù)組越界問題實例解析的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:Java異常退出條件的判斷示例代碼Java編程異常處理最佳實踐【推薦】等。有什么問題可以隨時留言,小編會及時回復大家的。

相關(guān)文章

  • java讀取配置文件自定義字段(yml、properties)

    java讀取配置文件自定義字段(yml、properties)

    本文主要介紹了java讀取配置文件自定義字段(yml、properties),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • Java中父類Object的常用方法總結(jié)

    Java中父類Object的常用方法總結(jié)

    這篇文章給大家介紹了Java中父類Object的三個常用方法,對大家學習或使用Java具有一定的參考借鑒價值,有需要的朋友們下面來一起看看吧。
    2016-09-09
  • IDEA中創(chuàng)建maven項目webapp目錄無法識別即未被標識的解決辦法

    IDEA中創(chuàng)建maven項目webapp目錄無法識別即未被標識的解決辦法

    在學習SpringMVC課程中,基于IDEA新建maven項目模塊后,webapp目錄未被標識,即沒有小藍點的圖標顯示,所以本文給大家介紹了IDEA中創(chuàng)建maven項目webapp目錄無法識別即未被標識的解決辦法,需要的朋友可以參考下
    2024-03-03
  • SpringCloudAlibaba微服務(wù)調(diào)用組件OpenFeign的方法

    SpringCloudAlibaba微服務(wù)調(diào)用組件OpenFeign的方法

    Feign是Netflix開發(fā)的聲明式、模板化的HTTP客戶端,其靈感來自Retrofit、JAXRS-2.0以及WebSocket,Feign可幫助我們更加便捷、優(yōu)雅地調(diào)用HTTP API,這篇文章主要介紹了SpringCloudAlibaba微服務(wù)調(diào)用組件OpenFeign,需要的朋友可以參考下
    2024-07-07
  • Spring Boot2中如何優(yōu)雅地個性化定制Jackson實現(xiàn)示例

    Spring Boot2中如何優(yōu)雅地個性化定制Jackson實現(xiàn)示例

    這篇文章主要為大家介紹了Spring Boot2中如何優(yōu)雅地個性化定制Jackson實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • Java基于命令模式實現(xiàn)郵局發(fā)信功能詳解

    Java基于命令模式實現(xiàn)郵局發(fā)信功能詳解

    這篇文章主要介紹了Java基于命令模式實現(xiàn)郵局發(fā)信功能,較為詳細的分析了命令行模式的概念、原理并結(jié)合實例形式分析了Java使用命令行模式實現(xiàn)郵局發(fā)信功能的相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2018-04-04
  • 使用SpringBoot與Thrift實現(xiàn)RPC通信的方式詳解

    使用SpringBoot與Thrift實現(xiàn)RPC通信的方式詳解

    在微服務(wù)架構(gòu)的世界里,服務(wù)間的通信機制選擇成為了關(guān)鍵決策之一,RPC因其簡潔、高效的特點備受青睞,本文將詳細探討如何利用Spring?Boot和Thrift框架構(gòu)建RPC通信,讓讀者理解其內(nèi)在原理及實現(xiàn)方式,需要的朋友可以參考下
    2023-10-10
  • java之抽象類和繼承抽象類解讀

    java之抽象類和繼承抽象類解讀

    這篇文章主要介紹了java之抽象類和繼承抽象類,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 通過Java連接SQL?Server數(shù)據(jù)庫的超詳細操作流程

    通過Java連接SQL?Server數(shù)據(jù)庫的超詳細操作流程

    java相對于其他語言(例如c,c++等)連接數(shù)據(jù)庫要方便得多,那么如何連接呢?下面這篇文章主要給大家介紹了關(guān)于通過Java連接SQL?Server數(shù)據(jù)庫的超詳細操作流程,需要的朋友可以參考下
    2023-03-03
  • 解析Idea為什么不推薦使用@Autowired進行Field注入

    解析Idea為什么不推薦使用@Autowired進行Field注入

    這篇文章主要介紹了Idea不推薦使用@Autowired進行Field注入的原因,網(wǎng)上文章大部分都是介紹兩者的區(qū)別,沒有提到為什么,當時想了好久想出了可能的原因,今天來總結(jié)一下
    2022-05-05

最新評論