はじめに
Javaは企業システムからAndroidアプリまで幅広く使われる言語です。「Write Once, Run Anywhere」の思想のもと、JVM上で動作します。
Hello World
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
# コンパイル
javac HelloWorld.java
# 実行
java HelloWorld
変数とデータ型
プリミティブ型
// 整数型
byte b = 127; // 8ビット
short s = 32767; // 16ビット
int i = 2147483647; // 32ビット
long l = 9223372036854775807L; // 64ビット
// 浮動小数点型
float f = 3.14f; // 32ビット
double d = 3.14159265; // 64ビット
// 文字型
char c = 'A'; // 16ビットUnicode
// 真偽型
boolean flag = true;
参照型
// 文字列
String name = "太郎";
String greeting = "こんにちは、" + name;
// 配列
int[] numbers = {1, 2, 3, 4, 5};
String[] fruits = new String[3];
fruits[0] = "apple";
// null
String empty = null;
型変換
// 暗黙的な型変換(小さい型 → 大きい型)
int i = 100;
long l = i;
double d = l;
// 明示的な型変換(キャスト)
double d2 = 3.14;
int i2 = (int) d2; // 3
// 文字列への変換
String s = String.valueOf(42);
String s2 = Integer.toString(42);
String s3 = "" + 42;
// 文字列からの変換
int num = Integer.parseInt("42");
double dbl = Double.parseDouble("3.14");
演算子
// 算術演算子
int a = 10 + 3; // 13
int b = 10 - 3; // 7
int c = 10 * 3; // 30
int d = 10 / 3; // 3(整数除算)
int e = 10 % 3; // 1(余り)
// 比較演算子
boolean eq = (5 == 5); // true
boolean ne = (5 != 3); // true
boolean gt = (5 > 3); // true
// 論理演算子
boolean and = true && false; // false
boolean or = true || false; // true
boolean not = !true; // false
// 文字列比較(equalsを使う)
String s1 = "hello";
String s2 = "hello";
boolean same = s1.equals(s2); // true
// s1 == s2 は参照の比較なので避ける
条件分岐
if文
int age = 20;
if (age >= 20) {
System.out.println("成人です");
} else if (age >= 13) {
System.out.println("ティーンエイジャーです");
} else {
System.out.println("子供です");
}
三項演算子
int age = 20;
String status = (age >= 20) ? "成人" : "未成年";
switch文
int day = 3;
switch (day) {
case 1:
System.out.println("月曜日");
break;
case 2:
System.out.println("火曜日");
break;
case 3:
System.out.println("水曜日");
break;
default:
System.out.println("その他");
}
// Java 14以降のswitch式
String dayName = switch (day) {
case 1 -> "月曜日";
case 2 -> "火曜日";
case 3 -> "水曜日";
default -> "その他";
};
ループ
for文
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
// 拡張for文(for-each)
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.println(num);
}
while文
int count = 0;
while (count < 5) {
System.out.println(count);
count++;
}
// do-while
int count2 = 0;
do {
System.out.println(count2);
count2++;
} while (count2 < 5);
配列
// 配列の作成
int[] numbers = new int[5];
int[] numbers2 = {1, 2, 3, 4, 5};
// 要素へのアクセス
numbers[0] = 10;
int first = numbers2[0];
// 長さ
int length = numbers.length;
// 多次元配列
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int value = matrix[1][2]; // 6
文字列操作
String str = "Hello, World!";
// 長さ
int len = str.length(); // 13
// 検索
int index = str.indexOf("World"); // 7
boolean contains = str.contains("Hello"); // true
// 切り出し
String sub = str.substring(0, 5); // "Hello"
// 変換
String upper = str.toUpperCase();
String lower = str.toLowerCase();
String replaced = str.replace("World", "Java");
// 分割
String[] parts = "a,b,c".split(",");
// 結合
String joined = String.join("-", "a", "b", "c"); // "a-b-c"
// 空白除去
String trimmed = " hello ".trim();
// フォーマット
String formatted = String.format("名前: %s, 年齢: %d", "太郎", 25);
// StringBuilder(可変文字列)
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(", ");
sb.append("World!");
String result = sb.toString();
まとめ
- Javaは静的型付けのオブジェクト指向言語
- プリミティブ型(int, double等)と参照型(String, 配列等)
- 文字列比較は
equals()を使用 - 拡張for文で配列を簡潔に反復
次回はメソッドとクラスの基本について学びます。