10-1-1 プリミティブ型と参照型の値の渡し方
- 原則として、引数オブジェクトの修正は避ける
- 戻り値がvoidの場合は、引数オブジェクトを修正してもいい
- 戻り値がvoid以外の場合は、引数オブジェクトを変更してはならない
10-2-2 可視性のグッドプラクティス
- (1)原則、最も範囲が狭い可視性にする
- クラスで宣言するフィールドは、privateとする
- 外部からアクセスするメソッドのみ、publicにする
- (2)拡張性をあげるためにprotectedにする
- (3)テストの容易性を上げるためにprotectedにする
10-3-2 ライフサイクルのグッドプラクティス
- ライフサイクルを短くして事故を防ぐ
- ライフサイクルを長くして性能を上げる
- ユーティリティクラス自体は非staticメソッドで構成して、インスタンスをstaticにする手法を採用しています
10-4-2 インタフェースと抽象クラスの性質と違い
10-4-4 インタフェースのstaticメソッド
11-1-2 マルチスレッドにするメリット
- なるべく各スレッドの処理が同時に終わるようにデータを分割する
- スレッド間でお互いを待たせるような処理がない/少ない
11-1-3 マルチスレッドで困ること
- (1)メモリの使用量が増える
- (2)スループットが低下する
- (3)同時に作業する場合、特有の問題が発生する
11-1-4 同時に作業する場合に起こる問題
- (1)データの上書きが発生する
- (2)デッドロックが発生して、処理が停止する
- (3)例外が発生する
- (4)無限ループが発生する
11-2-1 スレッドセーフとは
- 複数のスレッドから読み書きをおこなっても、データが破損しない
- 複数のスレッドから読み書きをおこなっても、エラー処理が発生しない
- 複数のスレッドから読み書きをおこなっても、デッドロック/停止処理が発生しない