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

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

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

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

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

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

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

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

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

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

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

很準(zhǔn)確的定位到31行。

下面看看一個(gè)完整的代碼示例:

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ù)組越界錯(cuò)誤。

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

應(yīng)當(dā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;
  }
}

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

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

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ù)組越界問題實(shí)例解析的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:Java異常退出條件的判斷示例代碼、Java編程異常處理最佳實(shí)踐【推薦】等。有什么問題可以隨時(shí)留言,小編會(huì)及時(shí)回復(fù)大家的。

相關(guān)文章

  • 詳解使用SSM實(shí)現(xiàn)簡單工作流系統(tǒng)之實(shí)現(xiàn)篇

    詳解使用SSM實(shí)現(xiàn)簡單工作流系統(tǒng)之實(shí)現(xiàn)篇

    這篇文章主要介紹了使用SSM實(shí)現(xiàn)簡單工作流系統(tǒng)之實(shí)現(xiàn)篇,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • 詳解JAVA 函數(shù)式編程

    詳解JAVA 函數(shù)式編程

    這篇文章主要介紹了JAVA 函數(shù)式編程的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 校驗(yàn)非空的注解@NotNull如何取得自定義的message

    校驗(yàn)非空的注解@NotNull如何取得自定義的message

    這篇文章主要介紹了校驗(yàn)非空的注解@NotNull如何取得自定義的message,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • java堆排序原理及算法實(shí)現(xiàn)

    java堆排序原理及算法實(shí)現(xiàn)

    本篇文章主要介紹了堆排序的簡介,定義,算法實(shí)現(xiàn)以及堆排序的性質(zhì)。想要了解的朋友可以參考下
    2017-04-04
  • 利用Java中Calendar計(jì)算兩個(gè)日期之間的天數(shù)和周數(shù)

    利用Java中Calendar計(jì)算兩個(gè)日期之間的天數(shù)和周數(shù)

    Java 語言的Calendar(日歷),Date(日期),和DateFormat(日期格式)組成了Java標(biāo)準(zhǔn)的一個(gè)基本但是非常重要的部分。日期是商業(yè)邏輯計(jì)算一個(gè)關(guān)鍵的部分。下面這篇文章就給大家介紹了如何利用Java中Calendar計(jì)算兩個(gè)日期之間的天數(shù)和周數(shù),下面來一起看看吧。
    2016-12-12
  • JavaWeb中轉(zhuǎn)發(fā)與重定向的區(qū)別小結(jié)

    JavaWeb中轉(zhuǎn)發(fā)與重定向的區(qū)別小結(jié)

    轉(zhuǎn)發(fā)和重定向是JavaWeb中常用的兩種頁面跳轉(zhuǎn)方式,它們在實(shí)現(xiàn)上有一些區(qū)別,本文主要介紹了JavaWeb中轉(zhuǎn)發(fā)與重定向的區(qū)別小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • SpringCloud及Nacos服務(wù)注冊IP選擇問題解決方法

    SpringCloud及Nacos服務(wù)注冊IP選擇問題解決方法

    這篇文章主要介紹了SpringCloud及Nacos服務(wù)注冊IP選擇問題,為什么注冊的IP和真實(shí)IP不符合呢,原因是Nacos客戶端在注冊服務(wù)時(shí)會(huì)從機(jī)器網(wǎng)卡中選擇一個(gè)IP來注冊,所以,當(dāng)注冊了的是非真實(shí)IP后,另一臺(tái)機(jī)器調(diào)用時(shí)是不可能調(diào)通的,知道問題原因就是解決方法,一起看看吧
    2024-01-01
  • SpringMVC整合websocket實(shí)現(xiàn)消息推送及觸發(fā)功能

    SpringMVC整合websocket實(shí)現(xiàn)消息推送及觸發(fā)功能

    這篇文章主要為大家詳細(xì)介紹了SpringMVC整合websocket實(shí)現(xiàn)消息推送及觸發(fā)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Java黑科技之通過Google Java Style 文件配置IDEA和Ecplise代碼風(fēng)格

    Java黑科技之通過Google Java Style 文件配置IDEA和Ecplise代碼風(fēng)格

    在日常開發(fā)中,多人團(tuán)隊(duì)協(xié)作開發(fā)一個(gè)項(xiàng)目是很常見的,特別是大公司,這就會(huì)涉及到多人在一個(gè)工程上開發(fā)代碼.無規(guī)矩不成方圓,一個(gè)好的代碼風(fēng)格,更加有利于團(tuán)隊(duì)協(xié)作,減少代碼沖突,提高代碼可閱讀性,美觀性.本文就帶著大家仔細(xì)研究這個(gè)黑科技 ,需要的朋友可以參考下
    2021-05-05
  • 關(guān)于Spring Boot WebSocket整合以及nginx配置詳解

    關(guān)于Spring Boot WebSocket整合以及nginx配置詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot WebSocket整合以及nginx配置的相關(guān)資料,文中通過示例代碼給大家介紹的非常詳細(xì),相信對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)下吧。
    2017-09-09

最新評論

宜黄县| 含山县| 株洲市| 巫山县| 内江市| 积石山| 离岛区| 尼玛县| 神农架林区| 盐边县| 海伦市| 朝阳市| 永善县| 江陵县| 华宁县| 富蕴县| 闽清县| 和平县| 深泽县| 团风县| 清镇市| 湟中县| 民乐县| 彰化县| 安平县| 杨浦区| 余江县| 崇仁县| 巴彦淖尔市| 资兴市| 陆丰市| 华安县| 太仆寺旗| 赣州市| 石狮市| 盱眙县| 明水县| 博白县| 大城县| 同仁县| 苏尼特左旗|