概要
IT業界に飛び込んで約半年、いろいろな技術を勉強してきました。
ただ、これやったけどなんだっけという事が多くなったので、備忘録として基本的なことを書いていきます。
JAVA
・オーバーライド
→スーパークラスで定義されているメソッドをサブクラスで上書きする
・オーバーロード
→引数や戻り値が異なるが名称が同一のメソッドを定義する
・ポリモフィズム
→同じ操作でも扱う対象によって振る舞いが異なる仕組み
・継承
→あるクラスを基に新しいクラスを定義する
・オブジェクト
→クラスを複数定義しクラスから生成したオブジェクトを利用。
【特徴】 再利用性が高い、仕様変更に強い
・抽象クラス
→抽象メソッド1つ以上定義したクラス
【特徴】 abstractを指定、メソッドを定義できる、インスタンス化出来ない、実装は持たない
・カプセル化
→publicやprivateなどのアクセス修飾子を適切に設定し、クラスに対するアクセス制限を行う
【特徴】 クラスのアクセスが統一されるため、独立性が高まる、バグを未然に防げる、クラスの変更が簡単
・ArrayListとLinkedListの違い
→ArrayListはアクセスに強い、LinkedListは追加や削除に強い
【理由】
①ArrayListはListインターフェイスを実装しており、配列の要素番号があるため検索が容易にできる。
②LinkedListは要素同士が前後に持っているリンク情報で数珠状態でつながっているため情報の追加などは容易にできる。
DB周り
・SQL内部結合と外部結合の違い
→inser joinは条件が一致していて、テーブルに値があるものを持ってくるが、outer join は値が一方のテーブルにしかなくても取得ができる。
・インデックス
→インデックスを使うとデータの参照が高速になる
・シーケンス
→データを一位に特定する列を作る時に使う(ID・学生番号などの重複させたくない時)
WEBアプリケーションの脆弱性
・アプリケーション・バッファーオーバーフロー
→大量のファイルを送りつけてシステムダウンを起こす
・XSS
→ユーザがwebページにアクセスすることで不正なスクリプトが実行されてしまう。その結果不正ログインなどが実行される。
・CSRF クロスサイトフォージェリー
→webアプリケーション利用者が意図しない処理が実行されてしまう。意図しないWEBアプリケーション上の処理実行。
そのほかいろいろ
・バッチ処理
→複数のプログラムからなる作業を一連の手順を登録しておいてまとめて連続的に実行すること。集計処理とかバッチ処理!
・デプロイ
→特定の環境下でアプリケーションやシステムを使えるようにすること。
最後に
ほんとに初期の部分をまとめてみました。
言葉はわかるけど説明してっていわれたら出来なさそうとか思う用語がちょいちょいありました。
根拠を持って実装ができるといいね!