Skip to content

Instantly share code, notes, and snippets.

@popurax
Last active April 27, 2017 07:51
Show Gist options
  • Save popurax/6307348c81cd8d1db4af28a0eddec80e to your computer and use it in GitHub Desktop.
Save popurax/6307348c81cd8d1db4af28a0eddec80e to your computer and use it in GitHub Desktop.
書きなぐって覚えるJava言語

##サル以下の自分から見たJavaの概要

1995年にSumMicrosystemが開発したJava言語。オラクルに食われた。 C++言語から構造化プログラミングを、Smalltalkからはオブジェクト指向を混ぜてコードを書くことができる。 2017年になってもプログラミングのランキングみたいなので1位をキープしている。業務系では飛びぬけて使われている。 でもGoやらRustやらのモダンな言語に世代が移りそう。 Javaを学ぶ前にCをやっていたけれど、構造化はCから来ていることを今知った Javaはいろいろ真似て作ってきた

CPU、OSの環境の違いを無視 [ソース]->[中間コード]->[Java仮想マシン]->[OS]とJavaはプログラムを実行する。 その中でも[中間コード]->[Java仮想マシン]の仕組みによって、Windowsでビルドした中間コードをRaspberryPiで動かしたりできるはず。Write one, run anywhere. PythonやRubyなどのスクリプト言語も移植できるけど、中間コードにビルドしているJavaはそいつらより早い。速さも移植性も兼ね備えたハイブリッド。

メモリ管理 & GC C言語であった忌まわしきポインタが無くなり、Cより楽にコードが書ける。と思ったが、メソッド名が長くて度々ググらないといけないので±0

なぜこの言語を使うのか? "業務系では飛びぬけて使われている" "ポインタが無い(2017では当たり前だけど)" "どこでも動く" 正直これぐらいしか無い。

JRE 中間コード(.jarとか.classとか)を実行するためのラインタイム?らしい。Minecraftとかで見たことある。Cはバイナリなのでダブルクリックとかで動くけど、javaはJREを使って仮想マシンの中で動かす。 JDK 開発者用。javac(java compiler)っていう中間コードをビルドするやつや、アーカイバが入ってる。

実践の知識

1ファイル1クラス
ファイル名=クラス名 別々の名称にしても動くけど、デフォルトで中間コードはクラス名で作られるので、問題の元になる。
キーボードからはコマンドライン引数やBufferedReader() Cだったらscanf()とかfgets()とか。Pythonならinput()とか。
System.out.println() は画面出力 画面出力する関数がこんなに長いのが今だに理解できない。
final は定数にする修飾子 定数は初期値をいれると、プログラムからteisu=1;とかするとコンパイルエラーになる。
\u0012でユニコード入力
long整数型は64bit
String型は参照型 参照型って何だろ
string=""+123; で数値を文字列に まあキャスト演算子string=(string)123;でもできそう。

@popurax
Copy link
Author

popurax commented Apr 27, 2017

最初で最後

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment