Characterクラスの概要 プリミティブcharの代わりにオブジェクトが必要な場合、ラッパークラスCharacterを使用します。静的ユーティリティメソッドが豊富で、文字操作に便利です。 オブジェクト生成 Character ch = new Character(a); // 明示的コンストラクタ Character ch = a; // オートボクシング(推奨) ボクシング/アンボクシング例 Character ch = a; // char → Character (ボクシング) char c = test(x); /
プリミティブ型とラッパークラス 通常はbyte, int, long, double等のプリミティブ型で数値を扱いますが、オブジェクトが必要な場面(コレクション格納、null許容、ユーティリティメソッド利用等)ではラッパークラスを使用します。 全ラッパークラス(Integer, Long, Byte, Double, Float, Short)は抽象クラスNumberのサブクラスです。 ボクシングとアンボクシング ボクシング:プリミティブ→ラッパーオブジェクト変換。コンパイラが自動処理(オートボクシング) アンボクシング:ラッパーオブジェクト→プリミティブ変換。これも自動(オート
意思決定構造の一般形 1つ以上の条件を評価し、trueなら文/ブロックを実行、falseなら別の文/ブロックを実行(オプション)する構造です。 Javaの意思決定文 #文説明 1ifboolean式に続く1つ以上の文 2if-elseifに続き、式がfalse時のelseブロックを任意指定 3ネストifif/else-ifを別のif/else-if内部に記述 4switch変数を値リストと等価比較 条件演算子 ? : 前章で説明した三項演算子はif-elseの置き換えに使用可能: Exp1 ? Exp2 : Exp3; Exp1がtrue → 全体の値はExp
ループの必要性 同じコードブロックを複数回実行する必要があるとき、ループ文を使用します。通常文は順次実行されますが、制御構造により複雑な実行パスが可能になります。 Javaのループ種類 #ループ説明 1while条件がtrueの間、文/ブロックを繰り返す。条件を事前判定 2for文列を複数回実行、ループ変数管理を簡潔に記述 3do-whilewhileに似るが、条件を事後判定(最低1回実行保証) ループ制御文 実行フローを通常シーケンスから変更: #文説明 1breakループまたはswitchを即座に終了、直後の文へ移動 2continueループ本体の残り
演算子の分類 Javaは豊富な演算子セットを提供し、以下のグループに分類できます: 算術演算子 関係演算子 ビット演算子 論理演算子 代入演算子 その他演算子 算術演算子 代数と同様に数式で使用。A=10, B=20と仮定: 演算子説明例 +加算A + B = 30 -減算A - B = -10 *乗算A * B = 200 /除算B / A = 2 %剰余B % A = 0 ++インクリメントB++ = 21 --デクリメントB-- = 19 関係演算子 A=10, B=20と仮定: 演算子説明例 ==等しいか(A
修飾子とは クラス、メソッド、変数の定義にキーワードを追加して意味を変更する仕組み。Javaには幅広い修飾子があり、大きく2分類されます。 修飾子使用例 public class className { ... } private boolean myFlag; static final double weeks = 9.5; protected static final int BOXWIDTH = 42; public static void main(String[] arguments) { ... } アクセス制御修飾子 クラス、変数、メソッド、コンストラクタのアクセスレベルを設
変数宣言の基本形 dataType variable [= value][, variable [= value] ...]; dataTypeはJavaのデータ型、variableは変数名。カンマ区切りで同型複数宣言可能。 宣言・初期化例 int a, b, c; // 3つのint宣言 int a = 10, b = 10; // 初期化付き byte B = 22; // byte初期化 double pi = 3.14159; // PI値代入 char a = a; // char初期
データ型の役割 変数は値を格納するためのメモリ領域です。データ型によってOSがメモリサイズと格納可能な値の範囲を決定します。Javaには2種類のデータ型があります: プリミティブデータ型(基本型) 参照/オブジェクトデータ型 8つのプリミティブデータ型詳細 byte(8ビット符号付き整数) 範囲:-128(-2⁷) 〜 127(2⁷-1) デフォルト値:0 用途:大規模配列でのメモリ節約(intの1/4サイズ) 例:byte a = 100; byte b = -50; short(16ビット符号付き整数) 範囲:-32,768(-2¹⁵) 〜 32
コンストラクタとは コンストラクタは、オブジェクト生成時にその初期化を行う特殊なメソッド様構文です。クラス名と同名で、明示的な戻り値型を持たないのが特徴です。 主にインスタンス変数への初期値設定や、オブジェクト完全構築に必要な起動手順に使用します。 すべてのクラスはコンストラクタを持ちます。自分で定義しなければ、Javaがデフォルトコンストラクタ(全メンバ変数を0/null/falseで初期化)を自動生成します。しかし、一度でも自前でコンストラクタを定義すると、デフォルトコンストラクタは使えなくなります。 構文 class ClassName { ClassName() { } /
Javaのオブジェクト指向サポート Javaはオブジェクト指向言語として、以下の基本概念をサポートします: ポリモーフィズム(多態性) 継承 カプセル化 抽象化 クラス オブジェクト インスタンス メソッド メッセージパッシング 本章では「クラス」と「オブジェクト」に焦点を当てます。 オブジェクトとは 現実世界には車、犬、人間など多数のオブジェクトが存在し、すべて状態と振る舞いを持ちます。 犬の状態:名前、品種、色 犬の振る舞い:吠える、尻尾を振る、走る ソフトウェアオブジェクトも同様に、状態はフィールドに格納、振る舞いはメソッドで表現され
Javaプログラムの構成要素 Javaプログラムは、メソッド呼び出しによって通信し合うオブジェクトの集合と見なせます。クラス、オブジェクト、メソッド、インスタンス変数の意味を簡単に確認しましょう。 オブジェクト:状態と振る舞いを持つ。例:犬には状態(色、名前、品種)と振る舞い(尻尾を振る、吠える、食べる)がある。オブジェクトはクラスのインスタンス。 クラス:その型のオブジェクトがサポートする振る舞い/状態を記述したテンプレート/設計図。 メソッド:振る舞いそのもの。クラスは複数のメソッドを持てる。ロジック記述、データ操作、アクション実行の場。 インスタンス変数:各オブジェク
ローカル環境構築 Javaプログラミングのための環境構築手順を解説します。まだ環境を整えていない場合は、以下のステップに従ってJavaをダウンロード・インストールし、環境変数を設定してください。 Javaのダウンロードとインストール Java SEは「Download Java」リンクから無償で入手できます。お使いのOSに合わせたバージョンをダウンロードし、.exeファイルを実行してインストールします。 Windowsでのパス設定 インストール先をc:\Program Files\java\jdkと仮定した手順: 「マイコンピュータ」を右クリック → 「プロパティ」を選択 「詳細
Javaの概要 Javaプログラミング言語は、もともとSun MicrosystemsでJames Gosling氏によって開発され、1995年にSun MicrosystemsのJavaプラットフォーム(Java 1.0[J2SE])のコアコンポーネントとしてリリースされました。 最新のJava Standard EditionはJava SE 8です。Javaの進化と幅広い普及に伴い、さまざまなプラットフォーム向けの複数の構成が構築されました。例えば: J2EE:エンタープライズアプリケーション向け J2ME:モバイルアプリケーション向け 新しいJ2バージョンは、それぞれJa
Javaとは Javaは、1995年にサン・マイクロシステムズによって最初にリリースされ、後にオラクルによって買収された、成熟したマルチプラットフォームのオブジェクト指向言語です。Java Virtual Machine (JVM) 上で動作し、世界中の数百万のアプリケーションを支えています。 この記事では以下を学びます: Javaの概要とコア機能 Scalaの概要とコア機能 両言語の比較 Javaを選ぶべきとき、Scalaを選ぶべきとき Scalaとは Scalaは、関数型とオブジェクト指向プログラミングを融合した静的型付け言語です。JVM上で動作するよう設計されており、Scala N
Javaとは Javaは、Java Virtual Machine (JVM) 上で動作するプラットフォーム非依存のオブジェクト指向言語です。1995年にサン・マイクロシステムズによって最初にリリースされ、現在はオラクルが保守しています。AndroidアプリからエンタープライズWebサービスまで、あらゆるものを支えています。 この比較では以下を学びます: JavaとPythonの基礎 開発者が各言語を選ぶ理由 主要な歴史的マイルストーン 機能、メリット、トレードオフ ユースケースシナリオと業界採用状況 給与期待値とキャリアパス Pythonとは Pythonは、可読性と簡潔な構文で知られ
Javaとは Javaは、1995年にサン・マイクロシステムズによってリリースされ、ジェームズ・ゴスリングによって設計された、「Write once, run anywhere(一度書けば、どこでも動く)」を実現する言語です。コードはバイトコードにコンパイルされ、あらゆるJava Virtual Machine (JVM) 実装上で動作します。 この記事では以下を学びます: C#とは JavaとC#の歴史 各言語の主要な特徴 JavaとC#の核心的な違い Javaを選ぶべきとき、C#を選ぶべきとき 両言語のメリットとデメリット C#とは C#は、.NETエコシステムの一環としてマイクロソ
Java Development Kit (JDK)とは JDKは、開発者がJavaアプリケーションの作成、コンパイル、デバッグ、実行を行うための包括的なツールキットです。Javaコンパイラ(javac)、コアクラスライブラリ、デバッガやJavaDocなどの開発ツール一式が同梱されています。Windows、macOS、Linux、Solarisで利用可能で、複数バージョンを同一マシンに共存させられます。 Java Runtime Environment (JRE)とは JREは、コンピュータでJavaプログラムを実行するためのランタイムパッケージです。Java Virtual Machine
C++とは C++は、Simula 67のオブジェクト指向機能をCに追加して拡張した、強力な中級レベルのプログラミング言語です。低レベルなメモリ制御と高レベルな抽象化を融合しており、ゲームエンジン、システムソフトウェア、組み込みシステムなど、パフォーマンスが重要なアプリケーションに最適です。 Javaとは Javaは、サン・マイクロシステムズの「グリーンチーム」によって1991年に考案された、高水準でプラットフォーム非依存の言語です。ネットワーク、クライアントサーバ、エンタープライズアプリケーション向けに設計されました。Javaのスローガン「Write once, run anywhere(
選択ソートとは 選択ソートは、未ソート部分から最小要素を繰り返し選んで所定の位置に交換する、シンプルな比較ベースのアルゴリズムです。大規模データには向きませんが、その簡潔さから教育目的や小さな配列に最適です。 アルゴリズムの仕組み 配列の先頭から開始 未ソート部分から最小要素を見つける それを現在位置の要素と交換 ソート済みと未ソートの境界を1つ右に移動 配列全体がソートされるまで繰り返す Java実装 以下は、整数配列に対する選択ソートアルゴリズムを示す簡潔なJavaプログラムです。ソート前後の配列と、各パスの中間ステップを出力します。 package com.guru99; pub
挿入ソートアルゴリズムとは 挿入ソートは、小さなデータセットやほぼソート済みのデータセットに適したシンプルなソート手法です。各反復で要素を1つ取り出し、直前の要素と比較しながら、適切な位置に挿入します。 挿入ソートは最悪・平均ケースでO(n²)の時間計算量ですが、配列がすでにソート済みの場合は線形時間で動作します。インプレースで安定なソートであり、追加メモリは定数しか必要としません。 挿入ソートのプロセス 挿入ソートのワークフローを視覚的に表現: 挿入ソートアルゴリズムのプロセス 挿入ソートで配列をソートするJavaプログラム例 package com.guru99
Java