ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Java の最小プログラム
Java はすべてが class に属し、エントリーポイントは public static void main(String[] args) です。
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, Java!");
}
}
// javac Hello.java → Hello.class
// java Hello → Hello, Java!
Java 11 以降は java Hello.java でコンパイル不要の単一ファイル実行もできます。
変数とデータ型
Java の変数は プリミティブ型 と 参照型 に大別されます。
| 分類 | 型 | サイズ | 例 |
|---|---|---|---|
| 整数 | byte | 8bit | -128 〜 127 |
short | 16bit | ±32,767 | |
int | 32bit | ±21 億 | |
long | 64bit | 末尾 L: 1_000L | |
| 浮動小数 | float | 32bit | 末尾 F: 3.14F |
double | 64bit | 標準 | |
| 論理 | boolean | 1bit | true / false |
| 文字 | char | 16bit | UTF-16 1 符号単位 |
| 参照型 | String など | 4 or 8byte | ヒープへの参照 |
int age = 30;
long pop = 7_900_000_000L; // アンダースコア区切り
double pi = 3.14159;
char ch = 'A';
boolean flag = true;
// var (Java 10+) - 型推論
var name = "Taro"; // String 扱い
var list = new java.util.ArrayList();
制御フロー
// if / else
if (score >= 80) {
grade = "A";
} else if (score >= 60) {
grade = "B";
} else {
grade = "C";
}
// switch (Java 14+ 式)
String season = switch (month) {
case 12, 1, 2 -> "冬";
case 3, 4, 5 -> "春";
case 6, 7, 8 -> "夏";
case 9, 10, 11 -> "秋";
default -> throw new IllegalArgumentException();
};
// for / 拡張 for / while
for (int i = 0; i < 10; i++) { ... }
for (String s : list) { ... }
while (cond) { ... }
do { ... } while (cond);
配列とコレクション
// 配列
int[] arr = new int[5];
int[] nums = {1, 2, 3, 4, 5};
System.out.println(nums.length); // 5
System.out.println(nums[0]); // 1
// 多次元配列
int[][] mat = {{1, 2}, {3, 4}};
// コレクション (java.util)
List list = new ArrayList<>();
Map map = new HashMap<>();
Set set = new HashSet<>();
list.add("a"); list.add("b");
map.put("apple", 100);
// List.of (Java 9+) は不変
List immutable = List.of(1, 2, 3);
クラスとインスタンス
public class User {
// フィールド
private String name;
private int age;
// コンストラクタ
public User(String name, int age) {
this.name = name;
this.age = age;
}
// メソッド
public String getName() { return name; }
public void setName(String name) { this.name = name; }
@Override
public String toString() {
return "User{name=" + name + ", age=" + age + "}";
}
}
// 利用
User u = new User("Taro", 30);
System.out.println(u.getName());
継承 (extends) と インターフェース (implements)
// 抽象クラス
abstract class Animal {
protected String name;
public Animal(String name) { this.name = name; }
public abstract String cry();
}
// 継承
class Dog extends Animal {
public Dog(String name) { super(name); }
@Override public String cry() { return "わん"; }
}
// インターフェース
interface Runnable {
void run();
default void warmup() { System.out.println("準備運動"); } // Java 8+
}
// 複数 implements 可
class Athlete extends Animal implements Runnable {
public Athlete(String name) { super(name); }
@Override public String cry() { return "がんばる"; }
@Override public void run() { System.out.println("走る"); }
}
アクセス修飾子と final / static
| 修飾子 | クラス内 | 同パッケージ | サブクラス | その他 |
|---|---|---|---|---|
public | ○ | ○ | ○ | ○ |
protected | ○ | ○ | ○ | × |
| (none) | ○ | ○ | × | × |
private | ○ | × | × | × |
public class Constants {
public static final double PI = 3.14159; // 定数
public static int counter = 0; // クラス共有変数
private final String id; // 一度だけ代入可能
public Constants(String id) { this.id = id; }
}
Generics (ジェネリクス)
// 型パラメータ
class Box {
private T value;
public void set(T v) { value = v; }
public T get() { return value; }
}
Box s = new Box<>();
Box i = new Box<>();
// 境界
class NumberBox {
public double doubleValue(T t) { return t.doubleValue(); }
}
// ワイルドカード
List extends Number> nums; // Number またはそのサブクラス(読み取り専用)
List super Integer> ints; // Integer またはそのスーパー(書き込み可)
例外処理 (try-catch-finally)
try {
int n = Integer.parseInt(s);
Files.readAllLines(Path.of("data.txt"));
} catch (NumberFormatException e) {
System.err.println("数値変換失敗: " + e.getMessage());
} catch (IOException e) {
System.err.println("ファイル読み込み失敗: " + e.getMessage());
} finally {
System.out.println("必ず実行");
}
// try-with-resources (Java 7+) - AutoCloseable を自動 close
try (BufferedReader br = Files.newBufferedReader(Path.of("a.txt"))) {
String line = br.readLine();
}
Lambda と Stream (Java 8+)
// Lambda
Runnable r = () -> System.out.println("hi");
Comparator cmp = (a, b) -> a.length() - b.length();
// Stream API
List nums = List.of(1, 2, 3, 4, 5);
int sum = nums.stream()
.filter(n -> n % 2 == 0)
.mapToInt(Integer::intValue)
.sum(); // 2 + 4 = 6
// メソッド参照
list.forEach(System.out::println);
list.stream().map(String::toUpperCase).toList();
record (Java 14+) と sealed class (Java 17+)
// record - 不変データクラス (boilerplate ゼロ)
public record Point(int x, int y) {}
Point p = new Point(3, 4);
System.out.println(p.x()); // 3
System.out.println(p); // Point[x=3, y=4]
// equals / hashCode / toString 自動生成
// sealed - 継承できるクラスを制限
sealed interface Shape permits Circle, Square, Triangle {}
record Circle(double r) implements Shape {}
record Square(double s) implements Shape {}
record Triangle(double a, double b, double c) implements Shape {}
FAQ
Q: int と Integer の違いは?
A: int はプリミティブ、Integer はラッパー (参照型)。コレクションには Integer しか入りません。autoboxing で自動変換されます。
Q: == と equals() の使い分け
A: 参照型は equals() で値比較。== は参照同一性。文字列は "a".equals(s) のように定数を左に置くと NullPointerException を防げます。
Q: どの Java バージョンを使うべき?
A: 2026 年時点では Java 21 LTS が標準。レガシー保守でも Java 17 LTS まで上げるのが望ましいです。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?