- ベストアンサー
Android Java
Android Studioで使われてるJavaって Eclipseなどで使われてるJavaと同じ物ですか? 素朴な疑問です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Android の Java にはスマホの機能に合わせた拡張が施されていますが、基本的には同じです。
その他の回答 (2)
- amanojaku1
- ベストアンサー率54% (265/488)
(Eclipseなどで使われてる)スタンダードなJavaとAndroid Javaのシンタックスは非常に高い互換性を持っています(とは言っても、今のところ100%互換ではありません)が、API(Application Programming Interface)は全くの別物です、importするパッケージ名を比較してみれば一目瞭然でしょう。 (シンタックスではありませんが)基本的な仕様のカラーがJavaはオブジェクト、Android Javaは整数になっているので、勘違いしやすいです。
- anmochi
- ベストアンサー率65% (1332/2045)
まず、Javaとは何かについて考えてみよう。 1.Java VMをOSの中に作りその中でJavaのクラスを実行する機能。Windowsであればjava.exeとかjavaw.exeとかjavavm.dllとか。これはOSやJavaVMベンダーによって変わる。 2.java.io.*などのコアパッケージとjavax.mail.*などの拡張パッケージ。 3.sun.*などのベンダーパッケージ。 4.あなたが作ったクラス。 正確なJavaの定義というのとは違うが今お話の中でJavaとは以上の4つが組み合わさってできているとしよう。 さて、質問の中で「Android Studioで使われているJava」という表現があるが、これの解釈によって回答は変わってくる。 A.Android Studioという開発ツールを動かすためのJava。 →Eclipseなどで使われているJavaと同じ物です。Windowsであれば大抵の場合Oracle社製のOracle JavaVMというものを使っていると思われる。ひょっとしたらIBM製JavaVMを使っているかも知れない。 B.Android Studio内で開発するAndroidアプリを動かすためのJava。 →1番と3番が変わってきます。1番は、あなたが作ったAndroidアプリをAndroid OS上で動作させるJavaVMはGoogleとかがうんたらかんたらしたもので、Eclipseなどで使われているJavaは前述のAの通りJavaで書かれた開発ツールをWindowsなどで動作させる時のJavaVMなのでJavaVMベンダーが違うという事になる。3番のベンダーパッケージについては同じくGoogleとかがAndroid OS上でAndroid OSの機能を呼び出すためのベンダーパッケージandroid.*などを提供している。これはEclipseを動かすためのOracle社製Java for Windowsにはないベンダーパッケージだ。 それ以外についてはEclipseなどで使われているJavaとほぼ同じだと言えよう。要するにOSごとにJavaVMがあり、その中でコアパッケージは共通(各社が共通になるように作っている)、ベンダーごとにベンダー専用のパッケージ群を提供している、というJavaの共通的な仕組みの中であれこれできるようにしてくれているのだ。