第1回:Javaを味わってみませんか? (1/3)

はじめてのJava
はじめてのJava入門

第1回:Javaを味わってみませんか?

著者:サイオステクノロジー  片桐 一宗   2007/8/1
1   2  3  次のページ
はじめてのJava

   Javaが登場してから10年以上経ちました。当初は「遅い」という評価がほとんどでしたが、実行マシンの性能向上やJVM(Java Virtual Machine)の改善により、今ではサーバサイドにおける基幹系・金融系などの業務システムに欠かせない言語となっています。

   最近はRubyやPythonのようなスクリプト言語が「Javaより早くシステムを構築できる」と人気があるようですが、これまでの実績や豊富なナレッジ、充実した開発ツールを鑑みても、Javaがまだまだ使用される言語であることは間違いありません。

   「興味はあるけれど業務では使ったことがない」という方も、本連載をきっかけにJavaの世界に飛び込んでみてはいかがでしょうか。

Write once,Run anywhere

   Javaは1995年にSun Microsystemsからリリースされたオブジェクト指向プログラミング言語です。今となっては驚くことではないのですが、「プラットフォームに依存しない」ことは当時かなり衝撃的でした。「Write once, Run anywhere(1度書けばどこでも動く)」という思想はシステムの開発スタイルを大きく変えるものでした。

   例えば、Webアプリケーションの開発では開発者ごとに用意された環境(主にWindows)でテストを行い、作成したモジュールをそのまま本番環境にデプロイすることが可能になったのです。

   本番環境は開発者の環境と一緒である必要はありません。筆者がかつて経験したUNIX Cを使用したWebシステム開発プロジェクトでは、開発者ごとにUNIXマシンを用意することができないため、複数の開発者が1台のマシンにtelnetで接続して、ソース作成からコンパイル、テスト(デバッグ)を行う開発スタイルを取っていました。

   そのため、開発者1人の都合だけでアプリケーションサーバを再起動することが難しく、テストするのに時間がかかりました。その頃に比べると、気軽に自分の環境でデバッグできるようになったことで、開発効率は格段に向上しました。


JVM(Java Virtual Machine)

   「Write once, Run anywhere」を実現するJavaの実行環境は、JVM(Java Virtual Machine)と呼ばれています。Javaのコンパイラはソースコードを中間コードに変換します。その中間コードを実行する環境がJVMで、プラットフォームごとに用意されています。プラットフォームの差異はJVMが吸収し、中間コードがあればどの環境でも動く仕組みになっているのです(図1)。

JVM
図1:JVM

   C言語の場合、メモリアドレスの参照を間違えたプログラムによってシステム全体をダウンさせてしまうことがあります。またプログラムで動的に確保したメモリは、プログラムによって明示的に解放しなければなりません。ほかにもメモリ解放処理を記述し忘れることで、運用中にメモリが不足してしまうということも発生しました。

   しかしJavaプログラムではメモリアドレスに対して直接アクセスできません。それはメモリの確保・解放はJVMが行うためです。このようにJavaは、開発者を煩雑な手順から解放し、より業務処理の開発に注力できるような環境を提供します。

1   2  3  次のページ


株式会社システムインテグレータ 安治
著者プロフィール
サイオステクノロジー株式会社  片桐 一宗
ソフトハウスでC、C++、Javaでの開発経験を積み、テンアートニ(現サイオステクノロジー)入社。Webシステムの設計・開発・保守からプロジェクトリーダーまでこなした後、現在、品質管理チームの一員を担当。サイオステクノロジーのシステム構築サービス品質向上に向け、日々奮闘中。


INDEX
第1回:Javaを味わってみませんか?
はじめてのJava
 Javaを構成するソフトウェア
 Javaプログラムの作成〜実行
はじめてのJava入門
第1回Javaを味わってみませんか?
第2回何はなくともまずクラス
第3回オブジェクト指向への第一歩を踏み出そう

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30