Javaプログラミング用語集
エグゼクティブサマリ
本用語集は,Javaプログラミングの基礎から応用まで,体系的に整理した教育資料である.開発環境の使用方法,プログラムの基本構造,変数と演算子,入出力処理,制御構造,配列,数学関数,実践的なアルゴリズムまで,全8章で構成される.各概念は具体的なコード例とともに解説され,初学者が段階的に理解を深められる構成となっている.プログラミングの基本原理から実装技術まで,正確な知識の習得を支援する.大学の情報工学課程における入門教材として,またプログラミング初学者の参考資料として活用できる内容である.
目次
1. 開発環境
オンライン開発環境:ウェブブラウザ上でプログラミングができる環境である.GDBonlineなどを利用すると,ソフトウェアをインストールせずにJavaプログラミングを開始できる.
関連する外部ページ:GDBonline https://www.onlinegdb.com/online_java_compiler
プログラム編集:エディタ画面でプログラムの作成や修正を行う作業である.
例:
public class Example { public static void main(String[] args) { } }エディタ:プログラムのソースコードを作成・編集するための画面である.オンライン開発環境に含まれる.
プログラム実行と停止:開発環境のRunボタンでプログラムを実行し,Stopボタンで中断する操作である.プログラム内でSystem.exit()を呼び出して終了することもできる.
例:
if (emergencyStop) { System.exit(0); }プログラム保存:プログラムをファイルとして保存する操作である.Javaではクラス名と同じファイル名を使用し,拡張子は.javaとする.
例:
// ファイル名:Main.java public class Main { public static void main(String[] args) { } }
2. プログラムの基本要素
最初のプログラム:以下は,画面に「Hello, Java!」を表示するプログラムである.Javaプログラムはクラス定義とmainメソッドで構成される.
例:
public class Main { public static void main(String[] args) { System.out.println("Hello, Java!"); } }クラス:Javaプログラムの基本単位である.データと処理をまとめた構造で,public class クラス名 { } の形式で定義される.
mainメソッド:Javaプログラムの実行開始点である.public static void main(String[] args) { } の形式で記述され,プログラム実行時に最初に呼び出される.
プログラムの構造:プログラムはデータの入力,計算処理,結果の出力という流れで構成される.入力にはScannerクラス,出力には出力メソッドを使用する.
例:
Scanner sc = new Scanner(System.in); int x = sc.nextInt(); int result = x * 2; System.out.println(result);コメント:プログラム内に説明文を記述する機能である.コメントは実行に影響を与えず,コードの理解を助ける.1行コメントには//を,複数行コメントには/* */を使用する.
例:
// これは1行コメントです /* これは 複数行コメントです */字下げ(インデント):プログラムの構造を視覚的に明確にする技法である.ブロックの内部を一定の空白で字下げすることで,可読性が向上する.
例:
if (condition) { System.out.println("True"); }ブロック:波括弧 { } で囲まれた処理のまとまりである.複数の文を1つの単位として扱う.
3. 変数と演算子
変数宣言:変数の型と名前を指定してメモリ領域を確保する操作である.宣言時に初期値を代入することもできる.
例:
int count = 0; count = count + 1; double price = 299.99;int型:整数を格納するデータ型である.-2,147,483,648から2,147,483,647の範囲の値を扱える.
double型:倍精度浮動小数点数を格納するデータ型である.小数を扱う際に使用する.
四則演算:加算(+),減算(-),乗算(*),除算(/)を行う演算である.計算の優先順位は数学の規則に従う.
例:
int result = (5 + 3) * 4 / 2 - 1;比較演算子:2つの値の関係を評価する演算子である.小なり(<),大なり(>),等しい(==),以下(<=),以上(>=),等しくない(!=)がある.評価結果はboolean型(trueまたはfalse)となる.
例:
boolean isAdult = (age >= 20);boolean型:真偽値を格納するデータ型である.trueまたはfalseのいずれかの値を持つ.
論理演算子:複数の条件を組み合わせる演算子である.AND演算(&&)は両方が真のとき真,OR演算(||)はいずれかが真のとき真,NOT演算(!)は真偽を反転する.
例:
boolean isValid = (age >= 0 && age <= 120);
4. 入出力処理
Scanner:ユーザーがキーボードからデータを入力するためのクラスである.java.util.Scannerクラスを使用し,nextInt()で整数,nextDouble()で小数を読み込む.
例:
import java.util.Scanner; Scanner sc = new Scanner(System.in); int age = sc.nextInt(); double value = sc.nextDouble();出力メソッド:画面にデータを表示するメソッドである.System.out.printlnとSystem.out.printfがある.
System.out.println:画面にメッセージを表示し,出力後に改行する出力メソッドである.
例:
System.out.println("計算結果:" + result);System.out.printf:書式を指定して出力する出力メソッドである.%dで整数,%fで小数を表示する.%8.3fは全体8桁,小数点以下3桁を意味する.
例:
System.out.printf("x = %8.3f, y = %8.3f\n", 3.14159, 2.71828);
5. 制御構造
条件分岐(if文):条件式の真偽により異なる処理を実行する制御構造である.if文は条件が真の場合に処理を実行し,else文で偽の場合の処理を指定する.
例:
if (score >= 60) { result = "合格"; } else { result = "不合格"; }多分岐(if-else if-else文):複数の条件による分岐を実現する制御構造である.3つ以上の処理経路を設定できる.
例:
if (score >= 80) { grade = "A"; } else if (score >= 60) { grade = "B"; } else { grade = "C"; }while文:条件を満たす間,処理を繰り返す制御構造である.条件判定を先に行い,条件が真の間ブロック内の処理を実行する.
例:
int sum = 0; int i = 1; while (i <= 10) { sum += i; i++; }for文:繰り返し回数が明確な場合に使用する制御構造である.初期化,条件判定,更新をまとめて記述する.繰り返し回数を管理する変数iをループカウンタと呼ぶ.
例:
int sum = 0; for (int i = 1; i <= 10; i++) { sum += i; }ループカウンタ:繰り返し処理の回数を管理する変数である.通常はiやjなどの名前が使用される.
繰り返しの入れ子:繰り返し文の中に別の繰り返し文を配置する構造である.多重ループにより,2次元的なデータ処理を実現できる.
例:
for (int i = 1; i <= 3; i++) { for (int j = 1; j <= 3; j++) { System.out.printf("%d,%d ", i, j); } }
6. 配列
添字:配列の個々の要素を指定するための番号である.Javaでは添字は0から始まる.
例:
int[] numbers = new int[5]; numbers[0] = 10; int value = numbers[0];配列の宣言と初期化:データ型と配列名を指定して宣言し,サイズを指定してメモリ領域を確保する操作である.波括弧で初期値を列挙することもできる.
例:
int[] scores = new int[30]; double[] heights = {170.0, 165.5, 180.5};配列サイズ:配列の要素数である.サイズは宣言時に決定され,実行中に変更できない.lengthフィールドでサイズを取得する.
例:
int size = array.length; System.out.println("配列サイズ:" + size);多次元配列:複数の次元を持つ配列である.2次元配列は行列データの表現に使用する.
例:
int[][] matrix = new int[3][3]; matrix[0][0] = 1;配列走査:配列の全要素に対して順番に処理を行う操作である.拡張for文を使用すると簡潔に記述できる.
例:
for (int element : array) { System.out.print(element + " "); }配列境界チェック:添字が有効な範囲内であることを確認する処理である.範囲外の添字を使用するとArrayIndexOutOfBoundsExceptionが発生する.
例:
if (index >= 0 && index < array.length) { value = array[index]; }配列要素の交換:配列内の2つの要素の値を入れ替える操作である.一時変数に値を退避させる.ソートアルゴリズムなどで使用する.
例:
int temp = array[i]; array[i] = array[j]; array[j] = temp;ソートアルゴリズム:データを一定の順序に並べ替えるアルゴリズムである.配列要素の交換を繰り返して実現する.
7. 数学関数
標準ライブラリ:Javaに標準で用意されているクラスやメソッドの集合である.java.langパッケージは自動的にインポートされるため,Mathクラスはimport文なしで使用できる.
import文:他のパッケージのクラスを使用するための宣言である.java.util.Scannerなど,java.lang以外のクラスを使用する際に必要となる.
例:
import java.util.Scanner; import java.math.*;Mathクラス:数学的な計算を行うメソッドを提供する標準ライブラリのクラスである.java.langパッケージに含まれる.
Math.pow:べき乗を計算するMathクラスのメソッドである.第1引数を底,第2引数を指数とする.Math.pow(2, 3)は8.0を返す.
例:
double pow = Math.pow(2.0, 3.0);Math.floor:小数点以下を切り捨てるMathクラスのメソッドである.引数以下の最大の整数値を返す.Math.floor(3.7)は3.0を返す.
例:
double floor = Math.floor(3.7);Math.sin:正弦(サイン)を計算するMathクラスのメソッドである.引数はラジアン単位で,戻り値は-1から1の範囲となる.度数からラジアンへはπ/180を乗算して変換する.
例:
double sin30 = Math.sin(30.0 * Math.PI / 180.0);Math.cos:余弦(コサイン)を計算するMathクラスのメソッドである.引数はラジアン単位で,戻り値は-1から1の範囲となる.
例:
double cos60 = Math.cos(Math.PI / 3.0);Math.tan:正接(タンジェント)を計算するMathクラスのメソッドである.引数はラジアン単位である.90度(π/2ラジアン)では値が定義されない.
例:
double tan45 = Math.tan(Math.PI / 4.0);Math.exp:指数関数を計算するMathクラスのメソッドである.自然対数の底eを指定された指数で累乗した値を返す.戻り値は常に正となる.
例:
double e2 = Math.exp(2.0);Math.log10:常用対数(底が10の対数)を計算するMathクラスのメソッドである.引数は正の実数でなければならない.Math.log10(100)は2.0を返す.
例:
double log100 = Math.log10(100.0);
8. アルゴリズムと応用
素数判定:与えられた数が素数かを判定するアルゴリズムである.2からその数の平方根までの整数で割り切れるかを調べる.
例:
boolean isPrime = true; for (int i = 2; i * i <= n; i++) { if (n % i == 0) isPrime = false; }エラトステネスのふるい:指定された範囲内の素数を効率的に列挙するアルゴリズムである.古代ギリシャの数学者エラトステネスが考案した.
例:
boolean[] isNotPrime = new boolean[n + 1]; for (int i = 2; i * i <= n; i++) { if (!isNotPrime[i]) { for (int j = i * i; j <= n; j += i) { isNotPrime[j] = true; } } }ユークリッドの互除法:2つの自然数の最大公約数を求めるアルゴリズムである.大きい数を小さい数で割った余りを使って計算を繰り返す.
例:
while (b != 0) { int t = b; b = a % b; a = t; }うるう年判定(グレゴリオ暦):グレゴリオ暦のうるう年を判定するアルゴリズムである.4で割り切れる年はうるう年,100で割り切れる年は平年(うるう年でない年),400で割り切れる年はうるう年とする.
例:
boolean isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);複利計算:利息が元金に加算され,次の期間はその合計額に対して利息を計算する方式である.元金,利率,期間から最終金額を算出する.
例:
double amount = principal * Math.pow(1.0 + rate, years);Horner法:多項式を効率的に計算するアルゴリズムである.a₀ + a₁x + a₂x² + ... + aₙxⁿ の形の多項式を,内側から順に計算することで乗算回数を削減する.
例:
double result = a[n]; for (int i = n - 1; i >= 0; i--) { result = result * x + a[i]; }複素数の乗算:実部と虚部を持つ複素数の乗算を行う計算である.Javaでは実部と虚部を個別の変数で管理する.(a₁ + a₂i)(b₁ + b₂i) の計算例を示す.
例:
double real = a1 * b1 - a2 * b2; double imag = a1 * b2 + a2 * b1;浮動小数点数の計算誤差:浮動小数点演算では,近似値を繰り返し使用することで誤差が蓄積される現象である.以下の例では0.1を100回加算しても正確に10.0にはならない.
例:
double sum = 0.0; for (int i = 0; i < 100; i++) sum += 0.1;棒グラフ表示:数値データを記号で視覚的に表現する技法である.繰り返し処理で記号を出力し,簡易的なグラフを作成する.
例:
for (int i = 0; i < value; i++) System.out.print("*"); System.out.println();例外処理:実行時に発生するエラーを検出し処理する機構である.try-catch文で不正な入力値などによるエラーを適切に処理し,プログラムの堅牢性を確保する.
例:
try { int x = Integer.parseInt("abc"); } catch (NumberFormatException e) { System.out.println("数値形式エラー"); }