Your SlideShare is downloading. ×
Fundamental Java
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Fundamental Java

10,474
views

Published on

社内勉強会「Java基礎以前」講義資料

社内勉強会「Java基礎以前」講義資料

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
10,474
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Fundamental Java HASUNUMA KenjiVice president, GlassFish Users Group Japan k.hasunuma@coppermine.jp Twitter: @btnrouge
  • 2. What’s Java?
  • 3. Javaの特徴• オープンな規格である• 常に進化している• 互換性を重視している
  • 4. Javaはオープン規格• 言語、標準API、仮想マシン仕様• Java Community Processで標準化• 現在はオープンソース (GPLv2)
  • 5. • Write Once, Run Anywhere• 言語レベルでマルチスレッド対応• 厳格な例外処理機構• Unicodeを全面的に採用
  • 6. Write Once, Run Anywhere• OS、Java VM実装に依存しない• 古いコードが最新のJavaでも動く• Blu-rayから巨大システムまで
  • 7. 当初: OSの差異をJava VMが吸収する現在: Java VMが多言語の共通基盤へ
  • 8. Essential Java
  • 9. Javaのエコシステム
  • 10. クラスとインタフェース
  • 11. クラスの継承
  • 12. Polymorphismとは?
  • 13. プロセスとスレッド
  • 14. プロセスとスレッド
  • 15. Javaの入出力(Stream)現在では文字列データに特化したReader/Writerや、高速I/Oを実現するChannelもよく使われている
  • 16. Javaのパッケージ
  • 17. クラス名の表記方法• 原則: パッケージを含む完全名 (例) java.util.List• import宣言: 特定のパッケージを省略可 (方法1) import java.util.List; (方法2) import java.util.*;• java.lang…常にパッケージを省略可
  • 18. Javaクラスの同一性• クラス名が同一である• パッケージ名が完全に一致している• 同じクラスローダーから読み込まれた
  • 19. Java Core Parts
  • 20. クラスとオブジェクト• クラスは定義のみ…実体がない• オブジェクト(インスタンス) …クラスから作成した実体のこと• フィールドとメソッドはオブジェクトに 属する( staticはクラスに属する)
  • 21. java.lang.Object• Javaの全クラスのスーパークラス• クラスの根幹に関わるメソッドを持つ• プリミティブ型に対してリファレンス型 と呼ばれることもある
  • 22. java.lang.Object のメソッドequals 同一チェックに使うhashCode ※原則としてオーバーライドするtoString 文字列表現を返す ※用途は様々 wait スレッド制御用メソッド notify ※通常はConcurrency Utilitiesを経由notifyAll して使用する(オーバーライド不可) clone コピー(最近は使われない)finalize 後処理(通常はオーバーライドしない)
  • 23. Object o = new Object();
  • 24. Object o = new Object();
  • 25. Object o = new Object();右辺と同じクラス or スーパークラス or実装インタフェース
  • 26. Object o = new ArrayList();
  • 27. キャストObject o = new ArrayList(); • objの定義はObject、実体はArrayList • アクセスは定義を通じて行う • 実体への直接アクセス→キャストArrayList list = (ArrayList) o; • キャスト=サブクラスの定義でアクセス • キャスト後は実体に直接アクセス可能
  • 28. プリミティブ型• クラスではないデータ型• 対応するクラス(ラッパー)を持つ• auto-boxing/unboxing: プリミティブ型とラッパーの相互変換
  • 29. プリミティブ型 ラッパークラス boolean Boolean byte Byte char Character short Short int Integer long Long float Float double Double
  • 30. 配列• 同じクラスorプリミティブ型の連続• 演算子 [ ] で要素にアクセスする• 内部的にはjava.lang.Arrayクラス
  • 31. Object[ ] o = new Object[8];o は Objectの配列 配列の要素数は 8 (要素数は指定しない) (必ず定数=後で変更不可) 配列の場合、左辺と右辺は同じクラス
  • 32. その他の重要なトピック• Generics (J2SE 5.0)• Annotation (J2SE 5.0)• Project Coin (Java SE 7)• Collections Framework (J2SE 1.2)• New I/O (J2SE 1.4 & Java SE 7)• Concurrency Utilitites (J2SE 5.0 & Java SE 7)
  • 33. Fundamental JavaHASUNUMA Kenjik.hasunuma@coppermine.jpTwitter: @btnrouge