勉強メモ > Java

勉強メモ Java



参照型

  1. class Test{
  2. public static void main(String[] args) {
  3. Human tom = new Human("Jack"); //新しい人間(本名Jack)を1人作ってそいつにtomというニックネームで呼ぶことにする
  4. Human joe = tom; // tomとニックネームをつけた人間(Jack)をjoeというニックネームでも呼ぶことにする
  5. tom = null; //tomというニックネームで誰かを呼ぶことをやめる、
  6. //tomというニックネームで呼ばれる人間はいなくなる (Jackはもうtomとは呼ばれない)
  7. tom = new Human("Cindy"); //別の新しい人間(本名Cindy)を作ってそいつをtomというニックネームで呼ぶことにする
  8. Foo(tom); // Fooメソッドに tom と呼んでる人間(Cindy)を引数として渡す
  9. tom.die(); // tomと呼ばれてる人間(Cindy)を死なす
  10. joe = null; // joeというニックネームで誰かを呼ぶことをやめる、
  11. //joeというニックネームで呼ばれる人間はいなくなる、
  12. //また同時にJackをニックネームで呼ぶ者がいなくなったためJackは失踪する
  13. joe.die(); // joeと呼ばれてる人間はいないので存在しない者を死なすことは出来ない
  14. }
  15. static void Foo(Human bob) { //引数で渡された人間を このFooのメソッド内では ひとまずbobというニックネームで呼ぶことにする
  16. bob = null; //このメソッド内でbobというニックネームで誰かを呼ぶことをやめる、
  17. //このメソッド内でbobと呼ばれる人間はいなくなる
  18. }
  19. }


通信(TCP)

java.nio.channels.ServerSocketChannel
java.nio.channels.SocketChannel
を使って非同期の通信ができる
(JDK1.7からbind()メソッドが追加されたので巷のやりかたを少し変える必要があるかも)


java.lang.Object の hashCode() について

(JavaVMのデフォルトでは)乱数によって定まる

※参考資料
java.lang.Object#hashCode()の性質 - 地平線に行く
http://d.hatena.ne.jp/chiheisen/20120318/1332071962


java.lang.Object の finalize() について

オーバーライドするとgc(ガベージコレクト)のときに呼ばれるが
  • 必ず呼び出されるとは限らない
  • gcの対象になった最初のgc時にfinalize()が呼び出され、次のgcのときにメモリの解放がなされる
  • いつ呼び出されるか分からない(いつのgcで呼び出されるか分からない)
C++のデストラクタとは性質が全く異なることに注意

デストラクタ・ファイナライザ - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B9%E3%83%88%E3%83%A9%E3%82%AF%E3%82%BF


データベース(RDBMS,SQL)

JDKには Apache Derby (Java DB)と呼ばれるリレーショナルデータベースが同梱されてる
JDKのインストールフォルダにdbという名前のフォルダがあり
そのdbフォルダの中のderby.jarというファイルを自分のプロジェクトのフォルダにコピーして使うと
ローカルで簡易なデータベースが扱えるようになる
(クラスパスCLASSPATHというのを設定する必要がある)

Apache Derby
http://db.apache.org/derby/
Getting Started with Derby
https://builds.apache.org/job/Derby-docs/lastSuccessfulBuild/artifact/trunk/out/getstart/index.html
Using Java DB in Desktop Applications
http://www.oracle.com/technetwork/articles/javase/javadb-141163.html
Apache Derbyの組み込み型とUDT/UDFの使い方のメモ - seraphyの日記
http://d.hatena.ne.jp/seraphy/20120722



時間表示に便利なAPI

Joda-Time - Java date and time API
http://www.joda.org/joda-time/

タグ:

+ タグ編集
  • タグ:
最終更新:2013年11月07日 21:06