コツコツ学習ブログ

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

Java(基礎)

ラムダ式入門

ラムダ式とは ざっくりいうと、関数の定義とその実態の即時生成が行える式 記法 (型 引数名1,型 引数名2,...) -> { 処理; ... return 戻り値; } クロージャとは ラムダ式が持つ特性。 「自身が評価され関数の実態が生み出される際、その時点で アクセス可能…

関数オブジェクト

関数オブジェクトとは プログラムの実行中に生み出したり、代入したりできるものを第一級オブジェクトという。 例えば,インスタンスでやデータ(文字列など)やデータ構造(配列)など。 Javaでは、関数も第一級オブジェクトとして扱える。 特徴 変数に代入可能 …

.projectファイルが存在せずEclipseがプロジェクトを認識しないとき

.projectファイルとは Eclipseでプロジェクト作成時に作成されるファイル。 DbfluteのハンズオンプロジェクトをGithub から落としてきた際に、 このファイルがgitignoreに含まれており、Gitでクローンしてもファイルに含まれていなかったため、プロジェクト…

equals()のオーバーライド(equalsと==)

equals()は、2つの変数に入っているインスタンスを比較して等価であるかを判定する。 ■等価判定 equals()を使用する 2つのインスタンスが同じ内容であること。 何をもって同じとするかは、クラスの作成者が決める→equalsのオーバーライド Stringクラスなど…

自作クラスでのtoString()のオーバーライド

Javaにおける全てのクラスの祖先はlang.objectクラスである。 全てのクラスは、Objectクラスで定義されたメソッドを持つことが可能。 自作クラスで、実装してもないのにequals()やtoString()が使えるのはこういった理由から。 とはいえクラスを作成したらオ…

ラッパーオブジェクトとは

数字や文字列などの単なる値を包み込んで(ラッピングして) 値を操作する機能(メソッド)を付与する為の役割をもったオブジェクト

更新系 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…

ラムダ式

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

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

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

ジェネリクス

ジェネリクスとは クラスを生み出す原型のような存在。 ジェネリクスを使用したクラスでは、型を制約しない汎用的なクラスを 提供できるとともに、クラスを使う人自身で型安全性を確保することができる。 ジェネリクスの制約 ジェネリクスの型に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()が強制され、 自然順序づけの方法…

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も、ざっくり見れば同じ…

Objectクラス

JavaにおけるObjectクラス 全てのクラスの祖はJava.lang.objectクラスである。 その為 - 全クラスは、Objectクラスで定義されたメソッドを持てる - object型変数には、あらゆるインスタンスを代入可能である 多くのインスタンスに共通する5つの基本操作 メソ…

JavaにおけるString型

Stringは基本型ではない int型やdouble型の仲間ではなく、クラス型である。 なぜ定義せずに使用できるのか java.langパッケージに宣言されている ダブルクオテーションで文字列を囲めばインスタンスを生成できる (特例としてnewは必要ない)

Java API リファレンス

## Java APIとは Javaに最初から標準装備されているクラス ## Java API リファレンスとは? APIの説明書。Java8用, 11葉などがある。

クラス定義(フィールドとメンバとthis)

クラスの定義 「属性」、「操作」の一覧をクラス図にまとめ、それを Javaのコードに置き換えて「フィールド」と「メソッド」として記述していく フィールド クラスブロック内に宣言された変数の事。 メンバ クラスが持つフィールドやメソッドの総称 this 自…

クラスローダとクラスパス

クラスローダーとは クラスローダは、読み込み対象クラスのFQCN(完全修飾クラス名)に基づき、 クラスパスを基準としてパッケージ階層に従ったフォルダ構成内を探し、読み込む コンパイルして生成したクラスファイルは、実行時にクラスローダが見つけられるよ…

パッケージ

## パッケージとは Javaのクラスを分類、管理しやすくするためのしくみ。 ## クラスをパッケージに所属させる方法 package 所属させたいパッケージ名; ※ソースコードの先頭に記述する ## 親子関係 パッケージに親子関係、階層関係は存在しない ## デフォルト…

三角形と、円の面積をそれぞれ求めるメソッド

public class Main { public static double calcTriangleArea(double bottom, double height) { //底辺 * 高さ / 2 double result = (bottom * height) / 2; return result; } public static double calcCircleArea(double radius) { //半径 * 半径 * 3.14 d…

配列(配列とfor文)

##配列基礎 ```java //配列変数の作成(宣言) int scores; //要素の作成と代入 scores = new int[5]; //配列の宣言と要素の作成、代入を同時に行う int newScores = new int[5]; //配列の長さを調べる System.out.print(newScores.length); //配列の要素に値…

制御構造の応用

ネストとは 分岐や繰返しの制御構造の中に別の制御構造を含めること。 以下は九九計算を出力するサンプルプログラム。 public class Main { public static void main(String args[]) { for (int a = 1; a < 10; a++) { for (int b = 1; b < 10; b++) { Syste…

Java データ型について

Javaの代表的なデータ型について。 分類 型名 格納するデータ 変数宣言の例 利用頻度 整数 byte とても小さな整数 byte glasses; △ 整数 short 小さな整数 short age; △ 整数 int 普通の整数 int salary; ◎ 整数 long 大きな整数 long World People; △ 小数 …