最終更新日:2026年9月8日
fe fe-technology programming java software
まず結論
Javaは、オブジェクト指向を採用したプログラミング言語で、一般にソースコードをコンパイルしてバイトコードに変換し、JVM(Java Virtual Machine)上で実行します。
基本情報技術者試験では、次の組合せを押さえると判断しやすくなります。
Java
→ オブジェクト指向
→ バイトコード
→ JVMで実行
→ OSや機種への依存を小さくできる
迷ったら、Java固有の特徴か、プログラミング言語一般の説明かを切り分けます。
直感的な説明
普通のプログラムは、実行するOSやCPUに合わせて作り直しが必要になることがあります。
Javaでは、いったんJava用の中間形式であるバイトコードに変換し、そのバイトコードをJVMが実行します。
Javaソースコード
↓
コンパイル
↓
バイトコード
↓
JVM
↓
実行
OSごとに対応するJVMがあれば、同じバイトコードを動かしやすくなります。
この考え方は、
Write once, run anywhere
という言葉でも知られています。
定義・仕組み
オブジェクト指向
Javaは、データと処理をオブジェクトとしてまとめて扱うオブジェクト指向言語です。
FE試験では、次のような用語と一緒に出ることがあります。
- クラス
- オブジェクト
- 継承
- カプセル化
- ポリモーフィズム
ただし、これらはJavaだけの特徴ではなく、他のオブジェクト指向言語でも使われます。
バイトコード
Javaのソースコードは、一般にコンパイルするとバイトコードになります。
.java
↓ コンパイル
.class
この .class ファイルに含まれるバイトコードをJVMが実行します。
JVM
JVMは、Javaのバイトコードを実行する仮想マシンです。
Windows用JVM
Linux用JVM
macOS用JVM
のように環境ごとのJVMが用意されることで、Javaプログラム側のOS依存を小さくできます。
ただし、
Javaなら完全に環境差がなくなる
という意味ではありません。
OS固有機能や外部ライブラリなどを利用すると、環境差が生じる場合があります。
科目Aでどう出る?
科目Aでは、複数の言語や記述方式の特徴からJavaを選ぶ問題に注意します。
Javaを疑うキーワード
オブジェクト指向
+
JVM
+
バイトコード
+
プラットフォーム非依存
↓
Java
このうち、特に JVM と バイトコード はJavaを見分ける強い手掛かりです。
「高水準言語だからJava」とは決めない
「自然言語に近い」「文字で記述する」といった説明は、Javaだけを表すものではありません。
自然言語に近い
→ 高水準言語一般の説明
JVM・バイトコード
→ Javaを強く疑う
問題文の中で、Javaだけに絞れる特徴があるかを見ます。
どんな場面で使う?
Javaは、さまざまな分野で利用されてきました。
代表例としては、次のようなものがあります。
- 業務システム
- サーバサイドアプリケーション
- 大規模なWebシステム
- Androidアプリ開発の一部
- 組込み・分散システム関連
過去のFE問題ではJavaアプレットやJavaサーブレットなどが登場することもあります。
ただし、Javaアプレットは現在では一般的なWeb技術ではありません。
試験対策では、古い出題文に出てきた技術名と、現在の利用状況を分けて考えることが大切です。
よくある誤解・混同
JavaとJavaScriptは同じ?
違います。
名前は似ていますが、別のプログラミング言語です。
Java
→ JVM上で動く言語
JavaScript
→ 主にWebブラウザやサーバ上で実行されるスクリプト言語
試験では、名前の似ている別物として切り分けます。
JavaとHTMLは同じ種類?
違います。
HTMLはマークアップ言語であり、文書構造やリンクなどを記述します。
処理を書く
→ Javaなどのプログラミング言語
文書構造やリンクを書く
→ HTML
「アンカーを使って別文書へリンクする」という説明があれば、JavaではなくHTMLを疑います。
テキスト処理や連想配列が得意ならJava?
その説明だけではJavaとは判断できません。
過去問題では、テキスト処理や連想配列、パッケージの特徴を強調してPerlなどを説明する選択肢が出ることがあります。
FE試験では、
JVM・バイトコード
→ Java
テキスト処理・連想配列
→ Perlなどを疑う
と切り分けます。
Javaはインターネット専用の言語?
違います。
Javaはネットワークや分散環境でも利用されますが、用途はそれだけではありません。
インターネットで使われる
→ Javaの用途の一つ
オブジェクト指向・JVM・バイトコード
→ Javaの本質的な特徴
用途だけでなく、実行方式や言語の特徴を見るのがポイントです。
まとめ(試験直前用)
- Javaはオブジェクト指向のプログラミング言語
- Javaソースは一般にコンパイルされ、バイトコードになる
- バイトコードはJVM上で実行される
- JVMを介することで、OSや機種への依存を小さくできる
- 「自然言語に近い」はJava固有の特徴ではない
- HTMLはプログラミング言語ではなく、マークアップ言語
- JavaScriptはJavaとは別の言語
JVM・バイトコード
→ Java
文書構造・アンカー・リンク
→ HTML
自然言語に近い
→ 高水準言語一般
Javaを選ぶときは、「インターネットで使う」よりも「JVM・バイトコード・オブジェクト指向」を見る。