ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Java の変数宣言の基本
Java では変数を使う前に 必ず型と名前を宣言します。PHP や JavaScript と違い、型を省略するとコンパイルエラーになります。
// 型 変数名 = 初期値;
int count = 10;
double price = 99.99;
boolean flag = true;
char c = 'A';
String name = "Taro"; // 参照型 (クラス)
// 初期化せず宣言だけも可能
int total;
total = 100; // 後で代入
// 同じ型の変数を複数宣言
int a = 1, b = 2, c2 = 3;
プリミティブ型と参照型
| 分類 | 型 | サイズ | デフォルト値 |
|---|---|---|---|
| 整数 | byte | 8 bit | 0 |
short | 16 bit | 0 | |
int | 32 bit | 0 | |
long | 64 bit | 0L | |
| 浮動小数 | float | 32 bit | 0.0f |
double | 64 bit | 0.0d | |
| 論理 | boolean | JVM 依存 | false |
| 文字 | char | 16 bit | ' ' |
| 参照 | String / 配列 / クラス | 4 or 8 byte | null |
Java 10+ の var (型推論)
Java 10 で導入された Local Variable Type Inference。右辺から型を推論します:
// 従来の書き方
ArrayList<Map<String, Integer>> data = new ArrayList<Map<String, Integer>>();
// var で簡潔に
var data = new ArrayList<Map<String, Integer>>();
var n = 10; // int と推論
var s = "hello"; // String
var list = List.of(1, 2); // List<Integer>
// ❌ NG: 右辺から推論できない場合
var x; // コンパイルエラー (初期化必須)
var y = null; // エラー (型決定不能)
// ❌ NG: メソッドの引数やフィールドには使えない
// public void foo(var x) {} ← コンパイルエラー
// class C { var field; } ← コンパイルエラー
var はあくまで構文糖衣で、コンパイル時に型が確定します。動的型付けではありません。
final 修飾子(再代入不可)
final int MAX = 100;
MAX = 200; // ❌ コンパイルエラー
// オブジェクトの場合は「参照の再代入」ができないだけ
final List<Integer> list = new ArrayList<>();
list.add(1); // ✅ OK (中身は変更可)
list = new ArrayList<>(); // ❌ NG
// メソッド引数の final
public int sum(final int a, final int b) {
// a = 10; // ❌ NG
return a + b;
}
// クラスフィールドの final (定数)
public class Config {
public static final String VERSION = "1.0";
}
スコープ(有効範囲)
public class ScopeDemo {
// クラススコープ (フィールド)
private int field = 1;
private static int CLASS_VAR = 100;
public void method() {
// メソッドスコープ
int local = 10;
if (local > 5) {
// ブロックスコープ
int inner = 20;
System.out.println(local + inner);
}
// ここで inner は参照不可
// System.out.println(inner); ← コンパイルエラー
}
}
命名規則(Java の慣習)
| 対象 | 規則 | 例 |
|---|---|---|
| ローカル変数 / フィールド | camelCase | userName / totalCount |
| 定数 (static final) | UPPER_SNAKE_CASE | MAX_SIZE / API_KEY |
| クラス / インタフェース | PascalCase | UserService |
| メソッド | camelCase (動詞始まり) | getUserName() |
| パッケージ | 全小文字 (ドット区切り) | com.example.app |
初期化していない変数の扱い
Java は ローカル変数の自動初期化を行いません。未初期化のまま参照するとコンパイルエラーになります:
public void demo() {
int x;
System.out.println(x); // ❌ variable x might not have been initialized
}
// 一方、フィールドは自動でデフォルト値が入る
public class Foo {
int n; // 0
boolean b; // false
String s; // null
}
PHP の変数宣言との違い
| 項目 | Java | PHP |
|---|---|---|
| 型宣言 | 必須 (var 除く) | 不要 (動的型付け) |
| 変数の prefix | 無し | $ 必須 |
| 未初期化参照 | コンパイルエラー | Warning + null |
| 再代入で型変更 | 不可 | 可 ($x = 1; $x = "a";) |
| const / 再代入禁止 | final | readonly プロパティ / const |
FAQ
Q: var はいつ使うべき?
A: 右辺の型が明らかな場合(new ArrayList<>() 等)に推奨。プリミティブや戻り値が不明瞭な API では従来通り型を明示するのが読みやすいです。
Q: final 引数は冗長では?
A: Java 8 のラムダ内で外側の変数を参照するとき、実質的 final(effectively final)である必要があります。明示的に final を付けると意図が伝わりやすくなります。
Q: 変数名にアンダースコアやドル記号は使える?
A: 構文上は OK ですが、$ は内部生成クラス用、_ は将来予約されているため使用非推奨です。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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アノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 2026-06-22 12:19:10
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?