JavaA2Z

KAB-studio > プログラミング > JavaA2Z > バッファアンダーランとは

バッファアンダーラン

日本語 文字配列逆走り過ぎ
英語 buffer underrun
ふりがな ばっふぁあんだーらん
フリガナ バッファアンダーラン

解説

文字列を格納する配列の前の位置に文字を書き込もうとすること。
文字列配列で格納している場合に、インデックスナンバーに負の値を使用してアクセスしようとすること。ArrayIndexOutOfBoundsException例外投げられる
文字列配列を「バッファ」と呼び、その範囲を前の方向に超えるため「バッファアンダーラン」と呼ばれる。
 
Java以外の言語では、このバッファアンダーランによって「バッファアンダーフロー」が発生させられるため、バッファアンダーフローの原因、もしくは同義語として使われる。

参考サイト

  • (参考サイトはありません)

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            // たとえばchar型配列で4文字の場合。
            char[] chars = new char[4];

            // ここに、1文字ずつ書き込み、サイズを越えて書き込もうと
            // することでバッファアンダーランしてみます。

            String string = "あいうえお";
            // 1文字ずつ逆方向にコピーします。
            // 配列のサイズより1文字多いとこがポイント。
            forint iF1 = 0; iF1 < string.length(); ++iF1 )
            {
                chars[chars.length - 1 - iF1] = string.charAt( iF1 );
            }
        }
        catch( ArrayIndexOutOfBoundsException e )
        {
            e.printStackTrace();
            // java.lang.ArrayIndexOutOfBoundsException: -1
            //     at Sample.main(Sample.java:19)
        }

        // このように例外が発生します。
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            // たとえばchar型配列で4文字の場合。
            char[] chars = new char[4];

            // ここに、1文字ずつ書き込み、サイズを越えて書き込もうと
            // することでバッファアンダーランしてみます。

            String string = "あいうえお";
            // 1文字ずつ逆方向にコピーします。
            // 配列のサイズより1文字多いとこがポイント。
            for( int iF1 = 0; iF1 < string.length(); ++iF1 )
            {
                chars[chars.length - 1 - iF1] = string.charAt( iF1 );
            }
        }
        catch( ArrayIndexOutOfBoundsException e )
        {
            e.printStackTrace();
            // java.lang.ArrayIndexOutOfBoundsException: -1
            //     at Sample.main(Sample.java:19)
        }

        // このように例外が発生します。
    }
}

この単語を含むページ

「みだし」に含まれているページ

「解説」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/06/21
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。