コツコツ学習ブログ

プログラマのweb上のメモ的なもの

2021-08-01から1ヶ月間の記事一覧

トランザクション処理

トランザクションとは プログラムからデータベースに送信する1つ以上のSQL文の要求を 1つのグループとして扱う考え方 ##データベースのトランザクション制御 同一トランザクションに属するSQL文の処理要求が複数ある場合、 - 全てが成功して初めて処理結果を…

検索系 SQL文の送信

package sample; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class Main { public static void main(String[] args) { //JDBCドラ…

更新系 SQL文の送信

Javaにおける更新系SQLの送信処理 送信すべきSQLの雛形を準備する PreparedStatement pstmt = con.prepareStatement(SQL文のひながた); //SQLの雛形として、あとで値が入る部分を?マークに置き換えたSQL文を""で囲んで記述する //この?の部分はパラメータ(…

JDBC(基礎)

JDBCとは Java Database Connectivity の略 データベース操作専用のAPIのこと データベース接続準備 DBMSごとに用意されているJDBCドライバーのJARファイルを入手 ※ DBMSとはOracleやMySQLなどのDBのこと JDBCドライバのロード JDBCドライバの中にあるドライ…

Java テキストファイルの読み書き

ファイルの書き込み Javaファイルに文字情報を書き込むには、 java.ioパッケージのFileWritterクラスを利用する。 package sample; import java.io.FileWriter; import java.io.IOException; public class Main { public static void main(String[] args) th…

関数インタフェース

1つの抽象メソッドのみを持つインタフェースは、 関数インタフェースとして扱われ、下記のような特徴がある 抽象メソッド宣言に記述した引数と型が一致する関数オブジェクトを格納できる 抽象メソッド名で呼び出すことができる

ラムダ式

メソッドの実体が生まれるタイミング メソッドとして定義した処理ロジック(関数)の実体は、 必要とされる時期に関わらず、クラスがJVMに読み込まれたときに自動的に生成される ラムダ式とは ざっくりいうと、関数の定義と、その実体の即時生成が行える ラム…

関数オブジェクト

関数とは 何らかの入力(Input)を受け取り、何らかの処理(Process)を行い、 何らかの出力(Output)を返すものという概念 メソッドも、クラスに属する一種の関数といえる。 しかし、関数にとって名前は重要ではない 第1級オブジェクト プログラムの実行中に生…

オプショナル(Optional)クラス

オプショナルクラスとは java.util.Optionalクラス。Optionalクラスをメソッドの戻り値の型として 用いることで、null安全に配慮したプログラムを作成できる 静的メソッドofNullable()で生成する isPresent()を用いて中身がnullかを検証できる get()で内容を…

インナークラス(編集中)

インナークラスとは クラス宣言ブロックの中に書かれたクラス宣言のこと。 Javaではクラス宣言ブロックの中に、更にクラス宣言を 書くことが許されている。 メンバクラス ローカルクラス 匿名クラス

列挙型

列挙型(enum)とは 指定した種類の値だけを入れることのできるかた switch文にも利用できる 定義 アクセス修飾子 enum 列挙型名 { 列挙子1,列挙子2,列挙子3, ... } 列挙子 列挙型の宣言では、その型の変数に入りうる具体的な値を列挙子(enum constans)として …

ジェネリクス

ジェネリクスとは クラスを生み出す原型のような存在。 ジェネリクスを使用したクラスでは、型を制約しない汎用的なクラスを 提供できるとともに、クラスを使う人自身で型安全性を確保することができる。 ジェネリクスの制約 ジェネリクスの型にintなどの基…

インスタンスの複製

cloneメソッド 全てのクラスは、自分自身の複製インスタンスを作って返すという責務を持った clone()をObjectクラスから継承している clone()の利用方法 ①Cloneableインタフェースを実装する -> java.lang.Cloneableインタフェースを実装する ②clone()をpubl…

インスタンスの複製

cloneメソッド 全てのクラスは、自分自身の複製インスタンスを作って返すという責務を持った clone()をObjectクラスから継承している clone()の利用方法 ①Cloneableインタフェースを実装する -> java.lang.Cloneableインタフェースを実装する ②clone()をpubl…

コンパレータ(sort)

コンパレータとは 現実世界における「並び替えのルール(2つのインスタンスに関する大小の比較方法)」を クラスとして表現したもの java.util.Comparatorインタフェースを実装しCompareTo()をオーバーライドして定義する //Main.java import java.util.ArrayL…

Collectionクラスのsort

自然順序づけとは あるクラスについて一般的に想定される並べ順のこと java.lang.Comparable あるクラスを開発する際に、そのクラスの自然順序を宣言するための インタフェース。 このインタフェースを実装するとcompareTo()が強制され、 自然順序づけの方法…

配列の等価判定

import java.util.Arrays; public class Main { public static void main(String[] args) { int[] a = { 1, 2, 3, 4, 5 }; int[] b = { 1, 2, 3, 4, 5 }; //objectクラスを継承した等値判定となりfalse System.out.println("誤った判定:" + a.equals(b)); /…

equals()のオーバーライド

等値と等価(おさらい) 等値(==) 同じアドレスを指していることを判定 等価(equals) 2つのものが同じ内容であること equals()のオーバーライド これを行わないと、予期せぬ不具合が発生する可能性があるため クラスを作成したら必ずオーバーライドを行う publ…

toString()のオーバーライド

toString()のオーバーライド 新しいクラスを開発した時、toString()をオーバーライドしておくことで 開発者が意図した文字列を渡すことができる。 オーバーライドしないと、@32a1bec0のような 人間に解読できない文字列になってしまう。 //Main.java public …

Javaにおける例外処理の基本

例外クラス APIには、様々な例外的状況を表す例外クラスが用意されている 例外クラスを継承してオリジナルの例外クラスを定義できる 例外の種類 Error系 java.lang.Errorの子孫、回復の見込みがない致命的な状況を表すクラス (例) OutOfmemoryError(メモリ不…

Javaにおける例外処理の基本

例外クラス APIには、様々な例外的状況を表す例外クラスが用意されている 例外クラスを継承してオリジナルの例外クラスを定義できる 例外の種類 Error系 java.lang.Errorの子孫、回復の見込みがない致命的な状況を表すクラス (例) OutOfmemoryError(メモリ不…

コレクション(List,Set,Map)

コレクションとは 様々なデータ構造に対応した「データをまとめて格納するための」 入れ物クラスのこと Java.uitlパッケージに属し、「コレクションフレームワーク」と呼ばれている List ArrayList LinkedList ArrayListもLinkedListも、ざっくり見れば同じ…

getterとsetter

getterとsetterとは カプセル化を実現するための手法 メンバへのアクセス制御として、フィールドはprivateとして外部から隠す。 getter/setter メソッドでアクセスする。 getterはフィールドの中身を呼び出し元に返すだけの単純なメソッド setterはフィール…

アクセス修飾子

アクセス修飾子とは フィールドやメソッドを宣言する際、先頭に記述することで アクセス制御が可能となる メンバへのアクセス制御の指定方法と範囲 名称 指定方法 アクセスを許可する範囲 private private 自身のクラスのみ package private 何も書かない 自…

カプセル化

カプセル化とは フィールドへの読み書きやメソッドの呼び出しを制限する機能のこと。 アクセス制御とは 情報へのアクセスや動作の実施について、「誰に何を許すか」を定めて制限することを アクセス制御という。

implements と extendsの使い分け

継承元 継承先 使用するキーワード 継承元の数 クラス クラス extends 1つ インタフェース クラス implements 1つ以上 インタフェース インタフェース extends 1つ以上 同種(クラス同士、インタフェース同士)の継承の場合は extendsを使う 異種ならimplement…

インタフェース

インタフェースとは? 抽象クラスの代表格のような存在。いくつかルールがある 全てのメソッドは抽象メソッドである 基本的にフィールドを一つも持たない。ただし、定数(final)は 宣言が許されている インタフェースに宣言されたメソッドは、自動的にpublic…

抽象クラス,抽象メソッド

抽象メソッドとは メソッドの内部の処理が未定なメソッド。 宣言 public abstract 戻り値 メソッド名(引数リスト); 抽象クラスとは 抽象メソッドを含むクラスのこと。 newによるインスタンス化ができない(禁止されている) 抽象クラスのメリット 詳細未定なメ…

has-a の関係

has -a の関係とは あるクラスが別のクラスをフィールド(データ、属性)として 利用している関係 Class A has-a ClassB

is -a の原則

is-aの原則とは オブジェクト指向における概念の一つ この原則が成立しなければ、継承は使うべきではない 子クラス(サブクラス) is -a 親クラス(スーパークラス) 例:Cat is a Pet; Car is Vehicle; など 汎化・特化の関係 継承において、子クラスになるほど…