平成22年度 秋期7テクノロジ系

基本情報 平成22年度 秋期 問7:テクノロジ系に関する問題

]ava VMが稼働している環境だけがあれば, Web ブラウザや Web サーバがなくても 動作するプログラムはどれか。

  • aJavaScript
  • bJava アプリケーション正答
  • cJava アプレット
  • dJava サーブレット
正答:BJava アプリケーション

AI解説(初心者・標準・上級)

理解度に合わせて3レベルの解説を無料で読めます。

初心者向けまずはここから。やさしく要点を解説

答えは b「Javaアプリケーション」 です。

Javaのプログラムには種類があります:

  • Javaアプリケーション:パソコン上で普通に実行するプログラム。Java VMがあれば動く(ブラウザ不要・Webサーバ不要)
  • JavaアプレットWebブラウザの中で動かす昔のJavaプログラム(今は廃止)
  • Java ServletWebサーバ上で動くJavaプログラム
  • JavaScript:Javaとほぼ無関係の別言語。Webブラウザで動く

👉 覚え方:「普通に実行=アプリケーション」「ブラウザ内=アプレット(廃止)」「Webサーバ内=Servlet」。

Java VMだけでOK=Webブラウザ・Webサーバ不要、で当てはまるのはアプリケーションだけ!

標準試験対策の基準レベル

なぜこれが正解か

正解は bJavaアプリケーションはJVM(Java Virtual Machine)上で直接実行されるスタンドアロン型プログラムで、mainメソッドを起点に動作する。Webブラウザ・Webサーバ等の追加コンテナを必要としない。

各選択肢の解説

  • a JavaScript:Java VMでなくWebブラウザのJavaScriptエンジン(V8、SpiderMonkey、JavaScriptCore)または各種ランタイム(Node.js、Deno、Bun)で動作。
  • b Javaアプリケーション:JVMだけあれば動く。正解。
  • c Javaアプレット:Webブラウザ内で動作する古いJava(Java 11で削除)。
  • d Javaサーブレット:Webサーバ(Tomcat、Jetty等のServletコンテナ)上で動作。

覚え方・ひっかけ注意

Java VMだけでOK=スタンドアロン=Javaアプリケーション」が判定基準。Java EE(Jakarta EE)の各種コンポーネント(Servlet、JSP、EJB、JAX-RS)はWebサーバ/アプリケーションサーバ内で動作。「JavaScript≠Java」は語感だけ似た別言語であることを徹底。

上級誤答論破・背景理論まで深掘り

理論的背景

Javaの実行モデル:(1) ソースコード(.java)→javacでコンパイル→バイトコード(.class)、(2) JVMがクラスローダでクラスを読込み、バイトコードインタープリタまたはJITコンパイラ(HotSpot:C1高速起動、C2積極最適化、Graal)で実行、(3) GC(Garbage Collector:Serial/Parallel/CMS/G1/ZGC/Shenandoah)でメモリ自動管理。Javaアプリケーションは`java -jar app.jar`のようにコマンドラインから起動、メインメソッド`public static void main(String[] args)`がエントリポイント。WORA(Write Once, Run Anywhere)の理念で、JVMさえあれば任意プラットフォームで動作するプラットフォーム独立性が最大特長。

実務での使われ方

現代のJavaはJava EEの分離でJakarta EEに改称(Eclipse Foundation管理)。サーバサイド主流:Spring Boot(組込みTomcat、自動設定、Actuator監視)、Quarkus(クラウドネイティブ、GraalVM Native Image、超高速起動)、Micronaut(Reactive、コンパイル時DI)、Helidon(Oracle、軽量)。Vert.xはReactive・Polyglot対応のイベント駆動フレームワーク。Project Loom(Java 21 LTS)でVirtual Threadsが正式リリース、軽量スレッドで百万単位の並行処理が可能に。GraalVM Native ImageでAOT(Ahead-of-Time)コンパイルしてサーバレス向けの瞬時起動・低メモリ実行を実現。Kotlin(Android公式、サーバサイドでも台頭)、Scala(関数型)はJVM言語の代表的兄弟。

試験での位置づけ

FE科目AでJavaプログラム種別の識別が頻出。応用情報・システムアーキテクトではJVM内部構造、メモリ管理(Heap/Stack/Metaspace、Young/Old世代)、GCアルゴリズム選定、性能チューニング、Spring/Spring Boot基本が問われる。情報処理安全確保支援士ではJava脆弱性(Log4Shell:CVE-2021-44228のLog4j脆弱性が著名)、デシリアライゼーション攻撃、JNDIインジェクションが頻出。

選択肢の発展補足

Javaのリリースケイデンス:6ヶ月ごとの新バージョンLTS(Java 8/11/17/21/25 LTS)。Project Valhalla(Value Type、Generic特殊化、メモリレイアウト最適化)、Project Panama(Foreign Function & Memory API、JNI後継、ネイティブライブラリ簡単統合)、Project Lilliput(オブジェクトヘッダ縮小)が今後の主要プロジェクト。Pattern Matching for SwitchRecordsSealed ClassesText Blocksなどモダン構文が継続追加。OpenJDKディストリビューション:Oracle JDK(商用)、Eclipse Temurin(旧AdoptOpenJDK、Adoptium)、Amazon Corretto、Azul Zulu、Microsoft Build of OpenJDK等が選定対象。Polyglot JVM(GraalVM)はJava/JavaScript/Python/Ruby/R/LLVM/Wasmを単一VMで動かす先進機能。FE午後・応用情報の言語問題、開発技術者試験で頻出範囲。

出典・引用について

出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成22年度 秋期7/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。

テクノロジ系の他の過去問

1
テクノロジ系
2
テクノロジ系
3
テクノロジ系
4
テクノロジ系
5
テクノロジ系

あなたの弱点を診断して、合格までの最短ルートを

この分野を連続演習し、AIがあなたの弱点を分析。合格ナビなら基本情報の過去問を解きながら学べます。