質問するログイン新規登録

意見交換

12回答

1351閲覧

Javaのおすすめの勉強方法をおしえてください

JavaJavaJava

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2026/02/02 00:54

0

0

テーマ、知りたいこと

3ヵ月から半年程度の独学で、Javaを扱えるようになりたい。
到達目標①オーダー通りにプログラミング→動作テストが出来る
到達目標②プログラムを読んで内容理解→設計書を作成

背景、状況

「Java 独学」とか「Java 入門書」とかで色々調べてたら無限に出てきて、どれが良いのか逆にわからなくなってしまいました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

回答14

#1

cametan

総合スコア265

投稿2026/02/02 05:33

編集2026/02/02 09:45

俺も知りたいわ(笑)。
他の人が何を書くのか、非常に興味がある。

ただ、

Javaのおすすめの勉強方法をおしえてください

ってのは単純に、「本を読め。本のコードを実際に手を動かしてエディタでタイプしてコンパイルして結果を確かめろ。」としか言いようがないね。決してオンライン講座に手を出したり、YouTubeの動画で間に合わせようとしない事
昔ながらのやり方が一番いいんだ。本を購入して読む。そして実際にプログラミングしてみる。それ以上のやり方は存在しない。

さて、Java入門書の選定が難しい。そもそもオブジェクト指向って考え方がプログラミング初学者向けじゃないんだ。
元々、Javaって言語は、「マシなC++を作る」ってのが設計目標で、アピール対象が「C++経験者」だったわけ。
言わば「C++でのプログラミングで苦労している人達、Javaならもっとラクにプログラミング出来ますよ」と言うのがメッセージで、端から「C++プログラミング経験者用プログラミング言語」であって、全くのプログラミング未経験者を対象としては考えてなかったんだ。
まぁ、Javaを元々作ったSun Microsystemsの宣伝部のお陰で、「今からプログラミングを学ぶにはJava!」的なムーヴメントは出来たは出来たんだけど、そもそもこれって無理があんのね(笑)。
「ややこしいプログラミング方針」を持った言語を「全くのプログラミング初学者」に「やさしく」解説するのは骨だ。
そんなのもあって、中級者以上へのテクニック解説本での定番本ってのはそこそこある、って状況に反し、「全くのプログラミング初学者向け」の定番本、ってのは実はほぼ存在しない、って話になる。

そんな中で、僕が聞いたことあるのは、未読なんだけど「Head First Java」がイイ、って話。実は日本だと知名度は恐らく「イマイチ」なんだろうけど、諸外国だと貴方と同様の質問に対してまず「これを読め!」と一冊目に挙げられる本なのね。
んで、技術書全般に関して言える事なんだけど、「訳書」の方がマシなんだ。日本国内で執筆された本は玉石混交で紛れが多い。逆に「翻訳書」の場合は、出版国自体の状況はどうあれ、「翻訳する手間をかける」と言う事は「わざわざクソ本を訳そうとはしない」わけ。結果、フィルタが働くんで日本国内には、少なくとも原書としては良書しか入ってこないんだよ。
そういったわけで、入門書から翻訳書の方が信頼出来る、と言える。

Head First Java」にはメリットとデメリットがある。実は出版年がそこそこ古いんだ。2006年、つまり20年前の出版となる。原書でも第2版以降の改訂版は出てなくて、なおかつ「最初の一冊目」としていまだ名前が挙がってるわけだ。
結果、古本なら二束三文で買える。送料合わせても1,000円以下で購入出来る筈だ。これがメリット。
反面、デメリットもある。2014年に既存Javaユーザーを大混乱に陥れたJava8以降のイカれた機能に対して「Head First Java」は何も触れていない。まぁ、時期的に当然だけど。
もちろん、「仕様の変更」ではなく、「仕様の追加」なんで、古いコードでもほぼ最新のJavaでは動くだろう(Javaバージョン履歴)。ただ、「新しい機能を学びたい」と言うのなら「Head First Java」は適さない。あくまでJavaプログラミングの「基本」を学ぶに適したテキストだ、と言う評判であって、「最新機能」を学ぶには適さないし、最新機能を学びたいのなら追加で別の本が必要となるだろう。
とまぁ、そんなのが僕が聞いた又聞きの話、かな。他の人がどんな書籍を挙げるのか僕も興味がある。

なお、往年のJavaに比べると今のJavaの方が若干学びやすくなってるとは思う。2017年のJava9から搭載されたjshellの存在だ。jshellってのはJavaのインタプリタだ。
コンパイラ型の言語処理系でのプログラム開発は暗中模索になりやすい。コードを書いても、結果を簡単に見る事が出来ないし、特にオブジェクト指向だと「なんかの機能を使った結果をパッと見たい」と思ってもなかなかそれが許されない。
結果、書いてるコードのアッチコッチにいわゆる「printfデバッグ」を仕込んでは、最終的にコメントアウトする、みたいな手間をかけなきゃなんなかったんだけど、jshellはその辺を解決してくれる。非常に助かるし、また機能としても初学者向けだろう。

jshell

あと、Javaの定番IDEはいまだにEclipseなのかな。多分これが一括ダウンロード/インストールでは一番手間がないのかしらん。
他にはNetBeansとか、最近流行りのVisual Studio Codeとかあるけど、まぁこの辺はお好みで。どうしても「手が合う」とか「合わない」とかあるんで、他人の意見は完全にはアテになんない。

まぁ、そんなカンジかな。

#2

meg_

総合スコア11091

投稿2026/02/02 11:53

「Java 独学」とか「Java 入門書」とかで色々調べてたら無限に出てきて、どれが良いのか逆にわからなくなってしまいました。

あなたのバックグラウンドにもよるので実際に書店で手に取ってみるのが良いです。1冊読み切れそうな入門書が良いでしょう。

オーダー通りにプログラミング

上記についてはJavaの知識+αが必要だと思うのでそのオーダーに必要なことも勉強が必要です。例えば、DBの知識とかWEBフレームワークとかです。

#3

KT001

総合スコア738

投稿2026/02/02 13:30

他の方と回答は同じですが、まずは書店で(自分に読めそうな=合った)Javaの本を1冊買うのが良いと思います。

到達目標①オーダー通りにプログラミング→動作テストが出来る

学習の進み具合にもよるのですが、Javaの基礎的なものを学習したら、Spring Bootの学習&練習もすると良いです。(知らないと現場で足切りされてしまうことがあります)


それと、Javaは歴史があるので全部学ぶのではなく、やらない(勉強しない)範囲を決めておくと効率が良いです。
これは、タイムマシンがあったら過去の自分に言いたいことでもあります。

古すぎる内容や現場で(ほぼ)使わないことは、最初は外した方が学習が楽になります。具体的には以下の内容です。

  • Javaの画面周りは勉強しない(JavaFX/Swingは勉強しない)
  • Servlet/JSPは勉強しない(Servletは勉強する派としない派に分かれますが、JSPは勉強しないでください)
  • EJB/JSF/Applet/RMI/CORBAなどの単語が出たら、そこは勉強しない。
  • Spring Frameworkだけで勉強しない(必ずSpring Bootで勉強してください)

#4

jimbe

総合スコア13471

投稿2026/02/03 03:40

3ヵ月から半年程度の独学
オーダー通りにプログラミング
動作テストが出来る
プログラムを読んで内容理解
設計書を作成

現在どの程度(言語問わず)経験があるのでしょう。
入門書の数を見て辟易されている感じからすると、まず無いのでしょうか。
もし全く無いなら、(主に時間的に)無理と思います。

オーダー通り、とは、どのようなオーダーを想定していますか。
『ネットから○○な情報を集めるプログラムが欲しい』みたいな?

動作テストとは、どのようなイメージをお持ちでしょう。
ゲームのテスターみたいにひたすら操作し続けるようなことでしょうか。

プログラムを理解するとは、どれくらいの行数を読むつもりでしょう。
最近あるプログラムを逆コンパイルしてみたら、ぐちゃぐちゃな数万行のファイルが幾つも出てきました。逆コンパイルは完全にはソースコードは再現出来ませんが、それを差し引いても酷いモノです。そんなのも読みたいですか?
(すいませんこれはほぼ愚痴ですw)

設計書は何種類位でしょう。
本来設計はプログラミング言語には関係ありませんが。

そして、入門書をいくら踏破してもこれらの達成にはあまり距離が縮まらないかなと…思います。

達成出来るかは兎も角 java をやる気はあるということなら、書店に行ってその入門書らを片っ端から立ち読みすることをお勧めします(くれぐれも汚さないようにご注意を)。
ネットでの評価なんて所詮は他人の感想です。自身に合うかは自身で見てみなければ分かりませんし、何ならそれでも分からないかもしれません。
結局、やってみなければ分からないのです。
ある書をやってみて分からないことがあったら、他の書でどう書かれているか見て、それでも分からなかったら teratail や他で聞くとかで進められると思います。

#5

JavaJavaJava

総合スコア0

投稿2026/02/04 04:41

皆さんご回答ありがとうございます。
経験は、過去にAccess(VBA)を仕事で2~3年触っていたくらいです。

勉強方法はやはり、実際に手を動かすのが一番ですよね。

到達目標①の『動作テストが出来る』とは、
自分が書いたプログラムが想定通りに動くか自分で確認できる、ということです。
ざっくり、Javaのプログラミングが出来るという意味で捉えてください。

到達目標②の『設計書を作成』とは、具体的な行数は不明ですが、
コードを読んでどのような意味・構造なのか理解できる、ということです。

Javaを使う現場のことは完全に未知なのですが、初級Javaプログラマー(曖昧)が
現場で任されるレベルの実務に必要なスキル・知識を独学で身に付けたいということです。

エクリプス(イクリプス?)はダウンロードしました。
Git hubはよくわからなくてまだ何も触ってないです。

図解とかイラストが多い方がスッと理解に結び付きやすいタイプなので、
#1さんが紹介してくれたHead First Javaは一度探してみます。書店には並んでないかな…

#6

cametan

総合スコア265

投稿2026/02/04 07:28

経験は、過去にAccess(VBA)を仕事で2~3年触っていたくらいです。

ああ、じゃあ大丈夫なんじゃないかしらん。
曲がりなりにもVBAはオブジェクト指向でもあるし、ザックリとした概念を知ってる、なら「全くプログラミング自体をした事がない」人よりかは遥かに有利でしょ。

エクリプス(イクリプス?)はダウンロードしました。

仕事早いね。良い事だ。
EclipseはFull EditionならJDK(Java Development Kit: Java開発キット)も全部入りマシマシなんで、余計なダウンロード/設定要らずですぐプログラムが書ける環境を提供してる筈。

他にも、最近人気な、Androidアプリ開発で有名なIDE、JetBrain社のIntelliJ IDEAなんかもあるけど、残念ながら有償なんで、結局、最初はオーソドックスにEclipseが無難なんじゃないか、って思う。

Git hubはよくわからなくてまだ何も触ってないです。

この辺は、単に開発便利ツールなんで・・・・・・。
Gitってのはヴァージョン管理システムって呼ばれるソフトウェアの一つなの。プログラム書いてて、修正して・・・ってやっていくと「あれ、失敗した。戻したい。」とか思っても出来ない。
ヴァージョン管理システムってのは、一種の「セーブポイント」みたいなブツを登録するソフトウェアなのね。ゲームみたいな。そうすると、記録したポイントへ「戻す」事が簡単に出来る。そういう、実際使ってみれば「ビックリする」ソフトウェアだよ(笑)。「古いファイルに復元されとる!」と驚くだろうから(笑)。
他にもその「セーブポイントの流れ」を分岐したり出来て。僕らがSFとかでしか読んだ事が無い、「平行世界」を作る事が出来るんだ(笑)。あるファイルからの変更履歴Aと、別の流れの変更履歴Bが同時に存在出来る、と。そういうのをブランチ、とか言うんだけど、これがなかなかSF的トリップに思えるんじゃないか。

Windowsだと一番簡単なのは、Chocolateyを使ってインストールする事だと思う。
管理者権限でWindows PowerShellを立ち上げて

PowerShell

1choco install git tortoisegit

で一気にインストール出来ると思う。
なお、後者のTortoiseGitってのはWindows用GitGUIフロントエンドだ。
元々、Gitってのはコマンドラインツールとして開発されたんだけど、それじゃプログラマ相手でも必ずしも使いやすいってわけじゃねぇだろ、ってぇんでこういうGUIフロントエンドがある。
具体的にはDOS窓/Windows PowerShellでコマンドラインをパチパチ打ち込むんじゃなくって、マウスでの右クリックメニューに「良く使うGitの機能」が装備される。結果、マウスで右クリックして、選択して終了、となる。
また、記憶では(ごめん、僕はLinuxユーザーなんで・笑)、後述するGitHubへのソースコードアップロード機能やダウンロード機能も付いてたと思う。

gitの例

Linux上のgitの例。gitは指定したフォルダ(この場合はjavascriptフォルダ)を丸ごと記録しようとする(コマンドはgit init)。あとは、その中で「記録したいファイル」を指定して、セーブポイントに登録していく、と言うようなシステムだ。逆に言うと、「スナップショットを撮りたくない」ファイルは除外可能だ。

んで、GitHubってのはそのGit用の投稿サイトだね。ホスティングサービス、とも言うけど、要は原理的にはYouTubeやInstagramみてぇなモンだ。YouTubeは動画ホスティングサービス、Instagramは写真ホスティングサービスだけど、GitHubGitを利用したソースコードのホスティングサービスになる。

Gitに関しての詳しい話は、例えば入門gitなんかの本を参照して欲しいトコなんだけど、表層的な話をすれば、TortoiseGitがあれば軽く使う事自体はマニュアル無しでもそんなに難しくない、と思う。
また、原理的な話をすると、テキスト相手だったら何でもいいんで、例えばワープロで打った文章なんかもGitを使えばヴァージョン管理が出来ますよ、と言う、汎用的に見ても結構便利ツールではあるんだ(実は動画編集とかにも役立つんだけど、あるフォルダ内の指定した「状態」を圧縮して記録するんで、対象のブツの容量が多い場合、甚だ困った事になる)。

Head First Javaは一度探してみます。書店には並んでないかな…

多分、ジュンク堂みたいな大型書店なら置いてある公算は大、かしらん。

#7

この回答は、運営により削除されました。

#8

jimbe

総合スコア13471

投稿2026/02/04 18:17

cametan さんの仰られるように、経験ありなら大分進め易いように思います。
入門書レベルなら半分~8割くらいはパラパラと流しで読めるのでは。

プログラムのテストは様々なレベルがありますが、プログラマレベルでは、メソッド毎にテストの為のプログラムを作ってそのプログラムを常に走らせながら対象のプログラムを作っていくという手法があります。ただ開発手法は色々ありますので、実際の現場でどのような方法を取られているかは一概には言えません。
また、プログラマの仕事は仕様書通りのプログラムを作ることですから、コードを読んで設計書を起こすというのは仕事としては無いのではないでしょうか。(古~いシステムのリプレースならあるのかな?)

なお、過去に同じように『実際に仕事に入る前に少しでも能力を上げたい』みたいな質問を見たことがありますが、java は AccessVBA よりも使える範囲が広く、顧客が求めるものも現場でのやり方も色々で何が必要かもそれぞれですので、入門書の選択以上にお勧めというのは言えません。
確実なのは、実際に働くことになった所で何が必要か聞くことです。

#6
Android なら AndroidStudio でも良いかと思います。
言語的に Kotlin を勧められちゃうかもしれませんが…

#9

cametan

総合スコア265

投稿2026/02/04 23:49

編集2026/02/04 23:51

#8

Android なら AndroidStudio でも良いかと思います。

でしょうねぇ。
IntelliJ IDEAとか名前出すと、どうしてもそっちの「Android開発」になっちゃうし、話がKotlinの方に寄っていっちゃう。
でも多分質問者の人はAndroid開発とかは考えてないとは思います。思ってるのかな(笑)?

#10

KT001

総合スコア738

投稿2026/02/05 10:35

編集2026/02/05 15:19

Androidを視野に入れるならKotlinですが、IntelliJ IDEA + Javaなら → Android Studio(IntelliJ IDEAがベース)+ Kotlinにも移行はしやすいです。

結局のところ、買う本に合わせて、IDEも同じものを使った方がスムーズに進むかなと思います。(本ではEclipseを使っているのに、IntelliJ IDEAで学習するのは辛いと思うので)

また、設計の学習に関しては、フレームワークと一緒に学ぶことを推奨します。フレームワークはある意味レールに乗るようなものなので、何もレールがないJavaだと、本や人によって言うことが違うので混乱する可能性があるかなと思いました。

私が若い時は、設計やアンチパターンの本が好きで、Effective Javaやデザインパターンなどの本を読み漁りました。現在振り返ってみると、結局のところフレームワークがかなり吸収してくれるので、実務では「本に書いてあるような設計パターンになかなか出会わない」ことが多かったです。

他のフレームワークもそうなのですが、結局のところフレームワークの作法や思想を知った方が、設計力の向上に役立ったなという実感があります。(ただしDB設計など、設計にも多々あるので、他にも学ぶことはあります)


補足:
IntelliJ IDEAは、去年Community Edition(無料)とUltimate(有料)が統合されたのですが、Ultimateサブスクリプションに入らなければ無料で使えます。(Android Studioは無料のままです)

世界シェアはIntelliJ IDEAが84%でトップなのですが、日本だとEclipseもシェアが高いです。
https://www.jrebel.com/blog/best-java-ide

※ 日本のIT業界は3~5年ほど遅れていると言われてしまうことがあるのですが、5年か10年という単位で見れば、世界シェアと同じようなシェアになると思います。
(私自身も、新規案件はほとんどIntelliJ IDEAです。保守案件はEclipseが多いです)

#11

cametan

総合スコア265

投稿2026/02/05 14:09

編集2026/02/06 03:26

実は気になっちゃって、AmazonでHead First Java 第2版の古本買っちまったわ(笑)。新品で4,400円の本が送料込みで609円で入手出来た(笑)。書き込みとかあったけど、まぁエエやな(笑)。

うん、なるほど、この本かなりイイ。
イイって理由は、単なる「仕様書の絵解き」じゃないんだよ。
フツー、「✗✗言語入門」って残念ながら殆どのケースだと単なる「仕様書の絵解き」なんだよな。要は文法を易しく解説してみました、と。
でも英語とかでもそうだろ。「文法書ばっかやったって」英語が出来るようにはなんない。英会話なり英作文する、みたいなアウトプットがあって初めて「出来るようになる」んだけど、例えば英作文の「作り方」っつーか「書き方」教えないとどうしようもないでしょ、ってのが事実だ。
一方、Head First Javaは曲がりなりにもソフトウェアをキチンと作っちゃう辺りがいい。もちろん「プロが作りました」的なモノじゃないんだけど、ちゃんと動く。
ビックリしたのが「ドラムマシンを作ろう」とすんのね(笑)。これが最終後半戦に持ってこられてる。

BeatBox

極めて単純なんだけど、これがいい。ドラムがPC上で鳴り出した時には結構感動するだろう。もちろん、Javaビルトインのクラス、っつーのを使いまくりで、要は「APIを利用しました」的なブツではあるんだけどね(そして2006年のコードでも2026年で動く)。

トピック的にもネットワークプログラミングやサーバー・クライアントモデル辺りまで話が行くんで、やっぱ下手な国産「Java入門」よりイイんじゃないか。僕はそっちはまだ試してないんだけど、「ドラムマシン」も最終的にはサーバー・クライアントモデルにブラシアップしよう、と言う辺りが最終ネタになってる模様だ。
やっぱ実際「なんか作り上げる」ように持ってく指南書の方がいいだろ。具体的でさ。

さて、#10 氏も挙げてるIDEの問題。
実はHead First Javaと言う本ではテキストエディタで是、って書いてるんだよね。しかも指定もしてない。

「Javaプログラムを作り、動かすための環境」というのは、ここではとりあえず、テキストエディタと、後述のJava2SDK(Software Development Kit)を指します。その他、IDE(Integrated Development Environment)と呼ばれるツールもありますが、今のところは導入を考えなくてもいいでしょう。IDEの導入は、本書の学習が終わってから(少なくとも16章までの学習が終わってから)考えても遅くありません。IDEを使うと、プログラミングの作業のかなりの部分が簡略化され、確かに楽なのですが、そのためにJavaについて本を学ぶべきことがらの多くを学べなくなってしまう恐れがあります。

うーん、どうだろね。個人的にはちょっと「脳筋」かな、と(笑)。
そもそも、2026年での観点だと、受けられる支援はあった方がいいよね、と(笑)。補完機能とかスニペットとか。
まぁ、Cみたいな言語でこの意見は「アリ」だろうけど、原則、Javaって「何書くにしても」長い(笑)。長い以上IDEの支援がねぇと不便だろ、とか思う。
だから今はIDE支援アリで勉強した方がエエんちゃうんか、と。
でも本としては、IDEを指定してないんで、EclipseだろうがIntellJ IDEAだろうが、好きなモノを使えばエエと思います。まる。

Spacemacs

#12

JavaJavaJava

総合スコア0

投稿2026/02/06 02:14

Git hubについて、噛み砕いた説明をありがとうございます。
並行世界を作れるっていうのがとてもイメージしやすかったです。

近くの書店にはHead First Javaは並んでなかったので、試し読みは出来てませんが私もAmazonで第2版の中古品を購入しました。

Android開発は今のところ考えてない、というかどのような道が広がっているのか全然理解できていない状況ですね。

参考書で基礎を身に付けて、あとは現場ごとに必要な知識ややり方をその場その場で覚えていこうと思います。
とりあえず参考書が届いたら早速やってみます。

#13

cametan

総合スコア265

投稿2026/02/06 06:56

編集2026/02/06 06:58

近くの書店にはHead First Javaは並んでなかったので、試し読みは出来てませんが私もAmazonで第2版の中古品を購入しました。

おお、多分それが正解ですよ。
送料合わせて1,000円以下だったらたとえ失敗したにしても金銭リスクはそれほど大きくない。他の本へと移るのも気がラクでしょう(もっとも、僕みたいに一番安いブツを選ばなかったらその限りじゃないけど・笑)。
あと、#3 氏のアドバイスに従うと・・・・・・。

  • Javaの画面周りは勉強しない(JavaFX/Swingは勉強しない)=> 12章、13章はやらなくて良い
  • Servlet/JSPは勉強しない(Servletは勉強する派としない派に分かれますが、JSPは勉強しないでください)=> 18章はやらなくて良い
  • EJB/JSF/Applet/RMI/CORBAなどの単語が出たら、そこは勉強しない。=> 18章はやらなくて良い
  • Spring Frameworkだけで勉強しない(必ずSpring Bootで勉強してください)=> これはJavaそのものじゃなくフレームワークの話なんで、別書で学ぶ必要がある

って事かな・・・・・・。やべ、ドラムマシンのプログラムはSwing使ってるじゃん(笑)。
まぁ、敢えて言うと、SwingみたいないわゆるGUIツールキットって流行り廃りがあるのね。そして原則、後発のツールキットの方がより使いやすくて便利になってる。
んで、#3 氏が警告を出してる理由ってのは・・・ぶっちゃけ、GUIを直接コーディングするのは、どっちにせよ面倒くさいんだよ。そして手間がかかる割りには、実は決まりきったコードの羅列を書くハメになる。
2026年現代だと、この辺のGUIを書く際にはGUIビルダを使う方が多いんじゃねぇの、と。それこそGUIで、マウスでウィンドウに部品(ウィジェットと呼ぶ)をペタペタ貼っていく、と。恐らくVBAとかVBの経験があるのなら知ってるだろうけど。
EclipseなんかでもGUIビルダの拡張機能があるみたいだし、あまりこの辺、マジメにコーディング法を覚えても実用には至りませんよ、と。
多分#3 氏はそういう事を言ってるんだと思う。
実際、ドラムマシンのプログラムを写経したけど、僕自身もGUIのコードを「直打ち」したのは随分と久しぶりなんだ。通常、何にせよGUIビルダ使うしな。直打ちすると、どうしても「似たよーな形式のメソッドを」書きまくるハメになるんで、精神衛生上宜しくない(笑)。ホント「作業」になってその部分はつまんないんだよ(笑)。
ま、だから#3 氏が「無駄を省け」とアドバイスするのは当然だと思う。古い技術は新しい技術に上書きされるし。良いアドバイスだよね。

Android開発は今のところ考えてない、というかどのような道が広がっているのか全然理解できていない状況ですね。

うんまぁ、Androidの話はIDEの絡みで出てきただけ、なんで今のところは考えなくってエエんじゃないの?
ただ、Javaを学ぶってのはAndroidアプリ開発に繋がる道を提供してます、って事だ。

Androidってのは超ザックリ言うと、LinuxカーネルをJava及びJavaで作られたツールで囲んだモノだ。

Androidアーキテクチャ

で、Javaって言語は直接ハードウェア上では走らない。Javaで書かれたアプリケーションの移植性を高めるため、往年のPascalみてぇに、仮想マシン上でアプリケーションが動く言語処理系だ。Java用の仮想マシンをJVMと言う。
最近はちと変わったらしいんだけど、例えばJavardryとか日本プロ麻雀連盟ロンロンのクライアントアプリをダウンロード/インストールしても「JREがないので起動できません。JREをダウンロード/インストールしてください。」て言われたのはそれが理由だ。
あれだな、ツクールで書かれた無料ゲームをダウンロードしたけど、いざプレイしようとしたら「ランタイムが必要です」って言われてた事と良く似ている。あるいは、VBでもかつてはそういう状況だったよな。
なお、JDKは全部入りマシマシなんで気にしなくてイイ。

でだ。Javaで書かれてJavaでコンパイルされ、JVM上で動く言語を通称JVM言語と言う。これかなり数があるんだ。代表的なトコではJavaScript処理系RhinoXを書いてるScala、JavaによるPython実装であるJython、同様にRubyのJavaによる実装、JRuby、JavaによるLisp方言、Clojure及びKawa等々々、枚挙に暇がない。
これらは全部JVM上で動き、と言う事はJavaの豊富なライブラリを使い放題、って事だ(タダ乗り、とも言う・笑)。
そして理論的な話では、AndroidのアプリをこれらJVM言語で書ける、って事なんだ。

そんな中で、Androidの提供元のGoogleが、Android開発用として公式にサポートしてるJVM言語Kotlinってワケ。当然公式サポートなんで、他のJVM言語よか開発はやりやすくなる。

とは言っても、いくらJVM言語がJavaで書かれててJVM上で動きます、つったってプログラミング言語としてはまるで別物だ。C言語で書かれたプログラミング言語がC言語と違う文法を持ってるのは当たり前で、いくらC言語で書かれていてもC言語を打ち込んでも動かない、ってのと同様の話、となる。
まぁ、そんなワケで、JVM言語って存在がありますよ、って程度を覚えておけばそれで充分でしょ。その辺、「夢がひろがりんぐ」って捉えるか否かはあなた次第だし、大体、「スマホはiPhone使ってます」とか言う人(俺だ・笑)には直接的には魅力的な話じゃない。この辺もAndroidユーザーだと感想が変わるだろうしね。

なお、Android用開発言語っつーか環境としてはMIT App Inventorみたいな変わり種もある。これもJVM言語Kawaで書かれた処理系だ。

MIT App Inventor

参考まで、に。

とりあえず参考書が届いたら早速やってみます。

頑張ってください。

#14

この回答は、運営により削除されました。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

この意見交換はまだ受付中です。

会員登録して回答してみよう

アカウントをお持ちの方は

関連した質問