Java silver 1ヶ月取得する為の勉強 10日目
Java silver 1ヶ月取得する為の勉強 10日目
・2.0時間勉強
・徹底攻略Java SE 8 Silver問題集 第9章 Java APIの主要なクラスの操作
勉強内容
■暗黙の継承(java.lang.Object)
あるクラスを定義した時、extendsで親クラスを指定しなければ、java.lang.Objectを親クラスとして継承したとみなされる
理由1:Object型の変数には、どんなインスタンスでも代入できる
理由2:すべてのクラスが最低限備えるべきメソッドを定義できる
equals()やtoString()など
■ラッパークラス
基本データ型に対応したラッパークラスがjava.langパッケージに存在する。
基本データ型とラッパークラスのデータは、valueOf()や~value()メソッドで明示的に変換できる。
両者はAutoBoxing/AutoUnboxing機能により暗黙的にも変換される
覚えていくリスト
■String
replaceAll(x,y) x→yにする
charAt(x) x番目の要素を引き出す
indexOf(“x”) xが存在する場合、その要素数を返す、存在しない場合、-1を返す。
substring(x,y) xとyの間を切り取って、その値を残す
.trim() スペース・空欄(¥t)を削除する
.lengthは要素の大きさの合計を表示する
.concat 文字列の連携
.capacity 文字列の大きさを返す
.split (正規表現)
[abc] abc
[^abc] abc以外
[¥d] 数字
[¥s] 空白文字
[¥w] 単語構成文字
■StringBuilder() 16文字のバッファを持ちながらつなげられる
↑.append プリミティブ型 String型 char型 オブジェクト型を結合する
insert(1,x) 導入する
delete(1.2) 間を削除
deleteCharAt(x) x番目の値を削除
reverse() 入れ替える
■array list
add(x) 追加 add(2.x)追加
set() 入れ替え
■Data
long start = System.currentTimeMillis();
Date d = new Date(); //現在日時を持つインスタンス
合計勉強時間:16.5時間
Java silver 1ヶ月取得する為の勉強 9日目
Java silver 1ヶ月取得する為の勉強 9日目
・2.0時間勉強
・徹底攻略Java SE 8 Silver問題集 第8章 例外の処理
勉強内容
覚えていくリスト
Error系例外
OutOfMemoryError
→ガベージ・コレクタが稼働しても使用可能なメモリをこれ以上確保できないメモリ不足時に発生
StackOverflowError
→アプリケーションでの再帰の回数が多すぎる場合に発生
Exception系例外
ArrayIndexOutOfBoundsException
→不正なインデックスで要素にアクセスしようとした場合に発生
ClassCastException
→参照変数において間違ったキャストを行った場合に発生
ArithmeticException
→際数をゼロで除算した場合に発生
NullPointerException
→nullが代入されている参照変数に対して、メソッド呼び出しをした場合に発生
NumberFormatException
→整数で表せない文字列を整数に変更しようとした場合に発生
RuntimeException系例外
IOException
→入出力を行う場合に発生
FileNotFoundException
→ファイル出力において、目的のファイルがなかった場合に発生
間違いやすいリスト
ArryIndexOutOfBoundsException
→要素外にアクセスした場合の例外
IndexOutOfBoundsException
→存在しない要素を取り出そうとした時の例外
ClassCastException
→継承関係や実現関係にないクラスをキャストしようとする場合
lllegalArgumentException
→利用される側のオブジェクトが不正な引数を渡されたことを、利用する側のオブジェクトに通知するための例外
staticイニシャライザ
→クラスを呼び出すときに一度だけ呼び出される初期化ブロック
※ここでエラーが発生すると、ExceptionlnlnitalizeError
ヒープメモリがいっぱいになった時のエラー
→OutOfMemoryError
合計勉強時間:14.5時間
Java silver 1ヶ月取得する為の勉強 8日目
Java silver 1ヶ月取得する為の勉強 8日目
・2.0時間勉強
・徹底攻略Java SE 8 Silver問題集 第8章 例外の処理
勉強内容
例外処理とは、例外が発生すると、すぐに対応するcatchブロックに移動する。
Finallyブロックに記述された処理は、例外発生の有無にかかわらず必ず実行されます。実行の順番は以下のいずれになる。
・try → finally 例外が発生しない場合
・try → catch → finally 例外が発生した場合
複数のcatchがある場合、
どちらの例外が先に到達するかを確認する。
到達可能なコードがなければ、コンパイルエラーになる
Try-catch-finallyの構文は確実に覚える。順番を変更してはならない。(コンパイルエラーになる)
複数のTry-catchがネストしている場合、スローられた例外が受け取るのは、その例外に対応したもっとも近いcatchブロックに入る。
ArryIndexOutOfBoundsException
→要素外にアクセスした場合の例外
IndexOutOfBoundsException
→存在しない要素を取り出そうとした時の例外
ClassCastException
→継承関係や実現関係にないクラスをキャストしようとする場合
lllegalArgumentException
→利用される側のオブジェクトが不正な引数を渡されたことを、利用する側のオブジェクトに通知するための例外
staticイニシャライザ
→クラスを呼び出すときに一度だけ呼び出される初期化ブロック
※ここでエラーが発生すると、ExceptionlnlnitalizeError
ヒープメモリがいっぱいになった時のエラー
→OutOfMemoryError
合計勉強時間:12.5時間
Java silver 1ヶ月取得する為の勉強 7日目
Java silver 1ヶ月取得する為の勉強 7日目
・2.0時間勉強
・徹底攻略Java SE 8 Silver問題集 第7章 継承の操作
勉強内容
・拡張の元になるクラスのことを基底クラスやスーパークラス、
・拡張したクラスのことを派生クラスやサブクラスという
継承は、生産性を向上させる強力なプログラミング
「差分プログラミングとも呼ぶ」
継承で引き継げない部分
・コンストラクタ
・privateなフィールドやメソッド
インターフェースのルール
Finalを使って、動的に値が変更されないこと(定数)
Staticを使って、インスタンスを生成しなくても使えること
抽象クラスはインスタンス化はできない。
抽象メソッドは、具象クラスが実装しなけらばならない
オーバーロード(多重定義)は、メソッドが同じで引数が異なる「新しいメソッド」を定義すること。
オーバーライドは、サブクラスでスーパークラスに定義されたメソッドを再定義すること
オーバーライドの3つのルール
・シグネチャが同じであること
・戻り値方は同じか、サブクラスであること
・アクセス修飾子は同じか、より緩いものを指定すること
フィールドを参照した場合は、変数で宣言された方を使う
メソッドを呼び出した場合は、メソッド内の指示に従う
ポリモーフィズムは、実際に動作しているインスタンスを、インスタンスの元になった型とは、異なる型で扱える仕組み。
ポリモーフィズムが成り立つのは、現実か継承関係しか成り立ちません。
インスタンスも型変換ができる
キャスト式を記述して明示的に型変換すると、コンパイルは成功する。
ただし、型同士の相互性がない場合は、実行時に例外がスローされる
Thisはインスタンス自身への参照を持っている
継承関係にあるクラスのインスタンスの生成をするときの動作
・スーパークラスのインスタンスが持つコンストラクタが先に実行されなけらばならない
・サブクラスのコンストラクタには、スーパークラスのコンストラクタを呼び出す「super();」が、コンパイラによって先頭行に追加される。
合計勉強時間:10.5時間
Java silver 1ヶ月取得する為の勉強 6日目
Java silver 1ヶ月取得する為の勉強 6日目
・1.5時間勉強
・徹底攻略Java SE 8 Silver問題集 第6章 メソッドとカプセル化の操作
勉強内容
・メソッドの呼び出しについて
何らかの戻り値を返すメソッドを呼び出しても、その戻り値を受け取る必要はない。ただし、内容は破棄されます。
・到達不可能なコード(リターン後)この文章はコンパイルエラーになる
・Static領域があるが、インスタンス生成後は、書き込みがある場合、その領域に書き換えが行われる。
引数の数、型、順番が異なる同数のメソッドを定義すること。
コンストラクタ
・メソッド名をクラス名と同じにすること
・戻り値型は記述しない
・newと一緒でしか使えない
※ 初期ブロックがある場合、そこはコンストラクタより先に処理がされる。
コンストラクタ内から、オーバーロードされた他のコンストラクタを読み出す場合は、thisを使う。
・アクセス修飾子
Public すべてのクラスからアクセスが可能
Protected 同じパッケージに属するか、継承しているサブクラスからのみ可能
なし 同じパッケージに属するクラスからのみアクセス可能
private クラス内からのみアクセス可能
フィールドを非公開(private)メソッドを公開(public)にすることで完成流
合計勉強時間:8.5時間
Java silver 1ヶ月取得する為の勉強 5日目
Java silver 1ヶ月取得する為の勉強 5日目
・1.5時間勉強
・徹底攻略Java SE 8 Silver問題集 第5章 ループ構造の使用
勉強内容
Javaの繰り返し文の種類
・while文
・do-while文
・for文
・拡張for文
do-while文
Do{
//繰り返し処理
}while(条件式);
・while文
・do-while文は中括弧を無くしたら、1行だけ処理される
・do-while文doとwhlieの一文のみでないとコンパイルエラーとなる
初期化する文は、同じ型でないといけないルール
変数のスコープについて
Javaは変数を宣言したブロック内(中括弧の範囲)でのみ有効。
for文は、初期化文、条件式、更新文
複数記述できるのは初期化文と更新文
複数条件を追加したい場合は、論理演算子を使う。
条件式は省略可能
拡張for文
for(型 変数名:集合){
//繰り返し処理
「一次変数の宣言:コレクション/配列」
変数に関しては、ブロック内で対応する、
ラベルを使うと、breakやcontinueのときに自由に飛ばせる
ラベルを利用する場合
・コードブロック
・全てのループ文と分岐(if、switch)
・式
・代入
・return文
・tryブロック
・throw文
合計勉強時間:7.0時間
Java silver 1ヶ月取得する為の勉強 4日目
Java silver 1ヶ月取得する為の勉強 4日目
・1.5時間勉強
・徹底攻略Java SE 8 Silver問題集 第4章 配列の作成と使用
勉強内容
配列
複数の値の集合を一つにまとめたインスタンスです。
配列の扱う値のことを「要素」という
配列インスタンスの生成
New int[3]; int型の3つの配列を作成
配列型変数の宣言
int array
※int arrayという書き方もできる
配列型変数arrayを代入
※配列型変数arrayを参照するとハッシュコードが返却される
一緒に書くこと
int array = new int[3];
int[0] 要素を1つも扱わないが、できる
多次元配列
int array
Int array
int array
int[ array
配列変数には、配列インスタンスへの参照を入れるだけで、参照先の配列がいくつの要素を扱えるかは関係ない。
配列変数に、要素数は入らない
宣言の時は、次元を合わせないといけない
1次元目要素数は宣言しないといけない
配列からアクセスをしようとするとき、変数の参照先がない場合、
NullPointerExceptionとなり、実行時に例外がフローされる
添字を用いた配列インスタンスの生成はNG
int array = new int{2,3} OK
int array = new int[2]{2,3} NG
2次元配列の設定は、合わせないといけない
int array = new int{} NG
int array = new int[]{} OK
Nullがある配列を(.length)等を行うとエラーになる
arraycopyメソッド(コピーする場合に利用する)
第2引数、第4引数は、「どこからコピーするかと終わり」
第5引数は、「コピーする数」を指定する
合計勉強時間:5.5時間