##はじめに
この記事はこれからJavaを勉強する方に向けた私自身の理解している内容の記録です。
これからJavaの機能や記載方法についてを、下記のリストに分けて記載していきます。
・変数と型、型変換 https://qiita.com/pitan109/items/2538b234a2c6e20c037f
・変数のスコープ https://qiita.com/pitan109/items/b30589bc4c2e8169734c
・文字列の操作(準備中)
・配列の操作(準備中)
・演算子(準備中)
・条件分岐(準備中)
・繰り返し処理(準備中)
・例外処理(準備中)
・クラスについて(準備中)
・抽象クラス(準備中)
・インターフェース(準備中)
・カプセル化(準備中)
・モジュールについて(準備中)
今回はJavaを使う上で覚えておきたいことの概要と、私自身がRubyを使用していたので、Rubyとの比較を列挙していきます。
5/11 更新 共通箇所、各方式のメリットデメリットを追記
5/12 更新 目次を追加
##コンパイラ方式
コンパイラ(コンパイル)とは、シンプルにいうとコードをコンピュータが読める形に全て変更してから実行します。Javaではこちらが採用されています。あとはC++もコンパイラ方式です。
Rubyやpythonはインタプリタ方式です。インタプリタでは一行ずつ翻訳して実行していく形です。
どのような違いがあるのか見ていきましょう。
インタプリタ
$ ruby hello.rb
インタプリタではこれで実行すると、コード内の処理が表示されます。
コンパイラ
$ javac hello.java
この例はJavaなのでJavacのコマンドで解説していきます。コンパイラではコンパイルするコマンドを入力し、コンピュータがわかるclassファイルを生成します。hello.javaファイル内のHelloクラスができるので、それを実行します。
$ java Hello
これでclass内の処理が実行されます。この手順を踏まなければJavaを実行できないので覚えておきましょう。
変数の型、型変換
Javaでは変数の型指定を静的に行う必要があります。
String str = "文字型";
strという変数を文字型(String)で作成していますが、こちらに数値型(int)等の別の型の要素を代入することはできません。
Rubyでは
str = "文字型"
と記載できます。関連付けがないため、この後
str = 1
と記載しても大丈夫です。
また、Javaでは型変換ができます。この変数をこの型で参照したい時などに使用します。
Rubyでも型変換ができ、基本的には記載方法が違うだけで、考え方としては同じです。
Java
String str = (String)10;
Ruby
str = 10.to_s
Javaで変数の型指定、型変換についての詳細はこちらに記載しています。
https://qiita.com/pitan109/items/2538b234a2c6e20c037f
##変数のスコープ
JavaもRubyも変数を書いている場所や、記載方法の違いなどで、変数を参照できる範囲が変わります。
JavaとRubyでは様々な書き方が変わってきますが、考え方は同じで、Javaで知ったことは、Rubyに応用できると思います。
Javaでの変数の参照範囲、記載方法については、こちらに詳しく記載しています。
https://qiita.com/pitan109/items/b30589bc4c2e8169734c
##RubyとJavaの共通箇所
今回は私がRubyを使っていたので、おまけで共通の部分も記載しようと思います。
オブジェクト指向言語であることとインターフェースが使えることです。書き方や詳細についてはここでは触れませんが、オブジェクト指向やインターフェースの考え方があると片方の言語を学習していれば、
もう片方の考え方がほぼそのまま使えるので、JavaやRubyに限らず、オブジェクト指向の言語を1つ学んでおくのはおすすめだと思います。
##終わりに
今回はRubyと比較しつつ、Javaの主要な機能をまとめてみました。また、今回の記事はこちらも参照させていただきました。
https://codezine.jp/article/detail/2144