雑記帳

趣味や仕事の備忘録などを気分で書いてみます

Java SE8 Silverに合格しました。

だいぶ前でしたが、Java SE8 Silverに合格したので、まとめてみます。

受験理由

Androidアプリを作成しようと思ったのですが、Java未経験だったのと、先輩から参考書を貰ったので、受験してみました。

学習時間

1日2時間×15日くらい

学習教材

紫本と黒本

勉強してみて

黒本やっておけば問題なし。

最近は配列を使わないので、配列についての問題は苦戦しました。
あとは、例外処理くらいかな。。。

For文や、If文、継承については他言語の経験があれば、問題なし。

受験してみて

ベンダー系の資格受験は初めてでしたが、特に問題なく受験できました。
試験時間も30分以上余る感じでした。

Oracle 演算子の優先順位

演算子の優先順位のメモ。
()を使用した場合、優先順位を変更できる。

優先順位 演算子
1 算術演算子(*,/,+,-)
2 連結演算子(||)
3 比較演算子(=,>,>=,<,<=)
4 IN演算子,LIKE演算子,IS NULL演算子
5 BETWEEN演算子
6 等しくない(<>,!=,^=)
7 NOT演算子
8 AND演算子
9 OR演算子

Oracle 代替引用符演算子

文字リテラルや日付リテラルを使用する場合、「'」で囲む必要があるが、文字リテラル内で「'」を使用したい場合、代替引用符演算子(q)を使用する。
SQL内で以下の文字を引用符デリミタとして、指定できる。

  • 任意のシングルバイト文字やダブルバイト文字
  • 、{}、()、の各組合せ
q'引用符デリミタ … 引用符デリミタ'

Oracle SQLの分類

SQLは以下に分類される。

DML

表内のデータを直接操作する。

  • SELECT文
  • INSERT文
  • UPDATE文
  • DELETE文
  • MERGE文

DDL

表などのデータベースオブジェクトを作成・変更・削除する。

  • CREATE文
  • ALTER文
  • DROP文
  • RENAME文
  • TRUNCATE文
  • COMMENT文

DCL

データベースに対する権限を付与したり、取り消したりする。

  • GRANT文
  • REVOKE文

トランザクション制御

トランザクションを制御する。

  • COMMENT文
  • ROLLBACK文
  • SAVEPOINT文

Oracle UNDO表領域の管理

 開発環境では各表領域のサイズを小さくしていたため、大量データの処理を行った際にDML文が失敗する現象が発生しました。
UNDO表領域についてまとめてみました。

UNDO表領域とは

UNDO情報を格納する表領域。
データベースには複数のUNDO表領域を作成できるが、1インスタンスに対して、アクティブにできるUNDO表領域は1つのみ。

UNDO表領域が小さい場合に起こること

  • DML文の失敗

 新しいトランザクションに対応するUNDOデータを格納する領域が不足することによるDML文の失敗

  • スナップショットが古すぎますのエラー

 UNDOデータ不足により、読み取り一貫性が維持できないことによるエラー

UNDO表領域の管理の観点

トランザクションロールバックやフラッシュバック機能を使用するためには、UNDO表領域を十分な大きさに設定したうえで、次の観点で管理を行う。

  • UNDO保存期間を設定する
  • AUTOEXTEND ONの場合は使用領域が過多にならないように注意する
  • UNDO表領域を固定サイズにする
  • UNDOデータの不足による「スナップショットが古すぎます」のエラーを回避する

UNDO表領域の拡張

ALTER DATABASE文を使用します。

ALTER DATABASE ファイルパス RESIZE 変更後のファイルサイズ

Java 例外とエラーについて

例外とエラーについてよく理解できていなかったので整理。

例外

例外は検査例外と非検査例外に分類される。

検査例外

try-catch-finallyブロックによる例外処理または、throwsキーワードによる例外処理が必須。
RuntimeExceptionクラス以外のExceptionのサブクラスが対象。

非検査例外

例外処理は任意。
RuntimeExceptionクラスおよびそのサブクラスが対象。
復旧可能。

エラー

メモリ不足などjava実行環境で発生する継続して処理続行が不可能な致命的なエラー。
Errorクラスとそのサブクラスが対象。