Javaプログラミング勉強中。自分なりに雑記。
現在こちらのサイトを見ながらJavaのプログラミングの基礎を勉強しております。え?なんでJavaかって?
だって、前働いていたウェブサービスの会社でもJavaを使ってたし、
いまScala・Liftだって出てきてるし、Scala勉強会@東北もあるし、Scala勉強会@東北の勉強会に参加したいけど、Javaがわからないとチンプンカンプンだと思うし、Scala波に乗り遅れたくないし・・・
など色々あって勉強しています。
ウェブデザイナーでそこまで必要か?という方もいられるかもしれませんが、
やはり、Java使いの魂というか本質的な所を少しでもわかっていると、
Javaプログラマの方と一緒に働く時にうまく会話ができるんじゃないかと思うところもあっての勉強です。
前一緒に働いていたJavaプログラマの方の今でも印象に残ってる言葉は
「名前には魂を込めなきゃ!」
です。いままで何となく画像やファイルに名前をつけていた僕に降りてきた雷のような言葉でした。
そしてウェブデザイナーは特に名前を略するのを好む(image = img とか)のですが、
そのプログラマの方はそれも好ましくないというふうにおっしゃってました。
その理由としてはJavaの作法として冗長になっても意味のわかる名前のつけかたをするみたいなことがあるということで、そういうのがないとちがう人のファイルを触る時にわからなくなってしまいうとのことでした。まさにその通りだと。。。
それ以来、名前をつける際は「魂」を込めるように気をつけております。(DTPではちょっと手を抜き気味ですが(笑))
そんなこんなで、長い前置きになりましたが勉強中に大事というか覚えておきたいなぁと思ったことを雑記いたします。
- プログラムにはコンパイラ型とインタプリタ型がある。
- これもなんかふぉあ〜んとしか覚えてなかったのですが、PHPやJavascriptはインタプリタ型でCやJavaはコンパイラ型ということですよね。静的型付け言語と動的型付け言語とも言うみたいです。コンパイラとはソースファイルを実行可能な形式のファイルに変換するプログラムのことだそうです。そして、Javaのコンパイラはソースファイルをプログラムが実行可能な形式のファイルには変換せず中間コードを生み出すとのこと。そしてそのままではCPUが理解できないので「バーチャルマシン」という方式を使って実行させるそうです。もしかしてこれがJavaVMのことか!
- 実行可能なファイルを作成するためのプログラムをまとめて「開発環境」という。
- Java 2 SDKのことですね。ふむふむ。Javaの開発環境を「JDK」と呼ぶ事もある。
- 「.java」のファイルを実行すると「.class」ファイルが生成される。
- これがコンパイルすること。Javaプログラマの方のデスクトップの覗き込んだ時に.java以外に.classが大量にあったのはこれだったのか!
- Javaにはアプリケーション構築に必要なプログラムの部品を集めた「パッケージ」という仕組みがある。
- 「System.out.println」のような文も開発環境で標準に用意された「パッケージ」を使っている。そして基本的なパッケージ(コアパッケージ)は変更してはいけない。バーチャルマシンはコンパイラが生成した中間コードと、あらかじめ用意されたコアパッケージの中間コードの両方を解釈してプログラムを実行する。そしてコアパッケージの中間コードはrt.jarというファイルに格納されている。そこからバーチャルマシンは必要な中間コードを取り出して実行している。
以上、本当に初歩の初歩ですが。
自分なりの雑記でした。Scala・Lift目指してコツコツ勉強していくぞ〜。
(三日坊主になりませんように・・・)
ってかこの間、PythonでGoogleAppEngineとかいっといてって感じですね(笑)
でもきっとJavaを学べばそこにも生きてくる気がいたします。。。
コメント