【Java】勉強 – 要点整理ノート 例外、エラー、正規表現 等について – 7月上旬

EngineeringJava, 備忘録, 職業訓練

【Java】勉強 – 要点整理ノート 例外、エラー、正規表現 等について – 7月上旬

【エラー – 原因】

メモリ不足

権限がない

ネットワーク接続不具合

ヒープメモリ不足:OutOf MemoryError

リソース不足かJVMが壊れた:VirtualMachineError

JVM内部エラー:InternalError

メソッド呼出→スタック領域確保 スタック領域不足:StackOverflowError

staticイニシャライザで例外が発生:ExceptionInInitializerError

JVMが実行対象のクラスファイルを発見できなかった:NoClassDefFoundError

アサーションの条件式で合致しないものがあるAssertionError

 

【例外 – 原因】

プログラマーの不注意

要件や使用の間違い

実行マシンの不具合

ほかのソフトウェアとの連携不具合

配列の要素外アクセス:ArrrayIndexOutOfBoundsException

存在しない要素を取り出そうとする:IndexOutOfBoundsException

文字列の範囲外アクセス:StringIndexOutOfBoundsException

不正な引数を渡してメソッドを呼び出した:IllegalArgumentException

準備不十分な状態・異常な状態でメソッドを呼び出した:IllegalStateException

null ← 何も参照しない。nullに対してメソッドを呼び出す:NullPointerException

型の不一致:NumberFormatException

 

 

定数の宣言

final double TAX = 1.08;

 

 

キー入力ほか

・エスケープシーケンス  「\n」改行

・タブキー  イコールの位置を揃えるのに遣う。「\t」

・「0.1」 2進数で表現できない。無限小数になる。

・演算子はオペレーターともいう。

・int r = new java.util.Random().nextInt();  乱数発生のポイント:発生範囲ではなく、必要な数は何種類あるかを考える。

・String input = new java.util.Scanner(System.in).nextLine;  文字入力を促す

・int input = new java.util.Scanner(System.in).nextLine;  文字入力を促す

・int n = Integer.parseInt();

・int m = Math.max( , );

 

 

byte型の乱数発生

byte[] bs = new byte[1];
Random r = new Random();
r.nextBytes(bs);
for (byte b : bs) {
    System.out.print(b + " ");
}

発生させる乱数の範囲指定の方法が現時点で不明。 簡単なインデックス番号を振る程度ならばint型よりbyte型の方がメモリ消費を抑えて速度的にも有利と素人考えを起こしたのだが、さほどでもないらしい。

 

 

正規表現

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {

    public static void main(String args[]) {

        String s = "夕日 - Sunset"; //◆正規表現 文字列の一部一致
        Pattern p = Pattern.compile("Sunset$");
        Matcher m = p.matcher(s);

        if (m.find()==true){
            System.out.println("ok");
        }else{
            System.out.println("no matches");
        }
    }
}

Java SE 8 Silver の試験範囲に正規表現がないのが意外だ。

 

 

C言語的な書き方が可能

System.out.printf(“比較実験:%dと%dとで小さいほうは%d\n”, a, b, m);
%s:文字  %d:数値  %f:浮動小数点  %c:char型

 

 

 


危険物取扱者 通勤講座

EngineeringJava, 備忘録, 職業訓練

Posted by Qawai