Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Hello Java

5,800 views

Published on

Java女子部 Oracleコンサルによる超Java入門
https://javajo.doorkeeper.jp/events/29534
https://javajo.doorkeeper.jp/events/29535

本資料は2015/08/29日にJava女子部で使用した資料です。
Javaをはじめて2年未満の方をターゲットとしています。

Published in: Technology
  • Dating direct: ❶❶❶ http://bit.ly/39sFWPG ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Follow the link, new dating source: ❶❶❶ http://bit.ly/39sFWPG ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • ..............ACCESS that WEBSITE Over for All Ebooks ................ ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Hello Java

  1. 1. Hello Java Java女子部 Oracleコンサルによる超Java入門 伊藤 智博(Chihiro Ito) Twitter : @chiroito
  2. 2. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito 自己紹介 • 日本オラクル Fusion Middleware製品コンサルタント – Java SE全般/Coherence/Event Processor/トラブルシュートを主に担当 • 講演(http://www.slideshare.net/ChihiroIto1) – オラクルの公式イベント – 日本Javaユーザグループなど • 執筆 – 技術評論社様 • 絵で見て分かるJVM(http://gihyo.jp/dev/serial/01/jvm-arc) 2
  3. 3. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito ここで示されている見解は私個人のものであり 所属会社の見解を反映したものではありません 3
  4. 4. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito アジェンダ 1. Javaとは 2. Java VMの内部 3. アプリケーションとJava VM 4. HotSpot JVM 5. アプリケーション開発方法 6. Java VM運用方法 7. Javaの情報収集方法 4
  5. 5. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito 1.Javaとは 5
  6. 6. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito • Raspberry Pi • 携帯電話 • GUI • CUI • 動的なサイト • スマホアプリの通信先 Javaが使われている分野 組み込み機器 デスクトップ ブラウザ / スマホアプリ 実行環境 システム ■ - × >java Hello please Input : Java Hello Java ! > ■ - × 6
  7. 7. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito • オブジェクト指向によって プログラミングを行う言語 • アプリケーション開発者が使用 • 教材はたくさんある • Java言語によって書かれた アプリケーションの実行環境 • インフラ担当者が使用 • 教材はほとんどない 7 Javaとは プログラミング言語 実行環境
  8. 8. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito • 組込み機器用実行環境 • Java SEに比べて機能 を限定し軽量 • デスクトップやサーバ で使用する実行環境 • 一般的に言うJava • 標準的なAPIの仕様 – Servlet/JSF/JSP/EJB /CDI/JAX-RS/JPA • 実行にAPサーバが必須 Javaの種類 Java SE Embedded / Java ME Java SE Java EE Java SE API 実行環境実行環境 8 ※ APサーバ:アプリケーションサーバ ※
  9. 9. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito 実行環境のメリット Linux用 アプリ Linux Solaris用 アプリ Solaris ネイティブの場合 環境ごとにアプリを作る 実行環境 アプリ Linux 実行環境 Solaris アプリ Javaの場合 環境の差異は実行環境が吸収 →1つのアプリで良い 9
  10. 10. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito アプリケーション(AP)サーバとは • Java EEアプリケーションの実行に必要 • APサーバはJava EEによるAPIの実装を提供 • リソースを管理およびアプリケーションへ提供 – データベース接続など • 運用に必要なツールも提供 • ベンダーやオープンソースによって開発 – WebLogic Server、Oracle Application Server – GlassFish Server 10 実行環境 アプリ OS APサーバ アプリ…
  11. 11. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito Javaの作られ方 • 仕様の要望をJava Specification Requests(JSR)としてまとめる • Java Community Process(JCP)の一部メンバーによって投票 – JCPメンバーにはベンダーだけではなく利用者もいる • 仕様を策定し、参照実装(RI : Reference Implementation)を作成 – 製品ベンダーはこの仕様にあわせてRIを参考に開発 • 互換テストにより、仕様を満たすことで認定 11
  12. 12. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito さまざまな実行環境 Oracle 実行環境 (HotSpot) アプリ OS Oracle 実行環境 (JRockit) アプリ OS H社様 実行環境 アプリ OS OpenJDK (HotSpot) アプリ OS I社様 実行環境 アプリ OS • さまざまな企業(ベンダー)やオープンソースが実装 12 • さまざまな企業(ベンダー)
  13. 13. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito 開発から実行するまでの流れ 開発者 アプリケーション 実行環境 13 • ソースファイル – Java言語で書かれる • コンパイル – ソースファイルから クラスファイルを生成 • クラスファイル – 実行環境が実行できる バイトコードが含まれる 実行 ソース ファイル 記述 クラス ファイル コンパイル
  14. 14. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito API アプリケーション • Java VM – バイトコードを読み込み、 ネイティブコードへ変換して アプリケーションを実行する – アプリケーションの実行に必要な メモリを管理する • API – 標準で含まれるクラスの集合 – Stringクラスなど 実行環境とは クラス ファイル 実行環境 読込 クラス ファイル クラス ファイル クラス ファイル 14 参照 Java VM 読込 クラス ファイル クラス ファイル 読込んだ クラス ファイル 実行
  15. 15. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito 2.Java VMの内部 15
  16. 16. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito Java VMとは • Java Virtual Machineの略称、更に略してJVMと呼ばれる • javaコマンドで実行される • OSから見るとプロセス • ベンダーごとの実装によって細かい動きは異なる 16
  17. 17. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito Java VMの役割 • アプリケーションを動かす • アプリケーションのサポート – アプリケーションの実行に必要なクラスファイルを読込む – バイトコードをネイティブコードへ変換・最適化 – オブジェクトの終了処理 – アプリケーションが使用したメモリの掃除(ガベージ・コレクション) – など 17
  18. 18. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito Java VMの構成要素 • スレッド – 与えられた仕事を実行する – OSのCPUリソースを使用 • メモリ領域 – スレッドが作業領域として使用 – OSのメモリリソースを使用 18 メモリ領域 JVMプロセス スレッド
  19. 19. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito メモリ領域 Java VMが持つ2種類のスレッド • アプリケーションスレッド – アプリケーションを動かす – 開発者が作成・管理可能 • VMスレッド – アプリケーションをサポートする – 開発者は気にしない 19 JVMプロセス VMアプリケーション
  20. 20. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito メモリ領域 いろいろな役割のVMスレッド • スレッドによって役割がある – ガベージ・コレクション スレッド – コンパイル スレッド – ファイナライザ スレッド 20 JVMプロセス アプリケーションGC担当 コンパイル 担当 VM など
  21. 21. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito Java VMのメモリ構造 • メモリ領域は2種類 – ヒープ領域 • アプリケーションのオブジェクトを格納 • アプリケーションがnewすると使用 • 開発者はオブジェクトの削除を意識不要 – ネイティブ領域 • Java VM自身が使用するメモリ空間 21 メモリ領域 JVMプロセス ネイティブヒープ VMアプリケーション abc new GC
  22. 22. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito Java VMのネイティブ領域 • JVM内部で使用 • 他にもさまざまな用途で使用 – スレッドスタック • スレッドが処理中の情報を格納 – メタスペース • 読込んだクラスの情報を格納 22 JVMプロセス ネイティブヒープ VMアプリケーション スレッド スタック 処理中の 情報を記録
  23. 23. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito 3.アプリケーションとJava VM 23
  24. 24. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito 実行環境 String s = new String(“abc”); 1. Stringクラスの読み込み 2. Stringオブジェクトの作成 3. 変数とオブジェクトの紐付け Java VMの動きの例 ヒープ メタスペース s ※フィールドを含む 変数※ API開発者が実行したい処理 実行環境が行う主な処理 abc オブジェクト 2 参照 3 24 1 StringString
  25. 25. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito アプリケーションをサポートする機能例 • ガベージ・コレクション – ヒープ領域にある使われないオブジェクトを削除する – GCスレッドによって実行される – 実行中はアプリケーションが停止する(Stop The World : STW) 25
  26. 26. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito アプリケーションとGC String s = new String(“abc”); s = null ; メモリ abcs 参照 参照があるため GC対象ではない メモリ abcs 参照を削除 参照がないため GC対象 26
  27. 27. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito 4.HotSpot JVM 27
  28. 28. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito HotSpotのヒープ構造 • 大きく2つに分割され、細かくは4つの領域に分割 – New領域 • Eden – 最初にオブジェクトを作られる領域 • Survivor 0/1 – 1回以上GCを経験したオブジェクトの領域 – Tenured領域 • 指定回数以上GCを経験した、 またはSurvivorに入りきらなかった オブジェクトの領域 28 Eden 領域 Tenured 領域 Survivor 0 領域 Survivor 1 領域
  29. 29. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito HotSpotのGC • GCはNew領域だけを対象とするものと全体を対象とする2種類 • GCの方法は主に3種類 – パラレル • 複数のスレッドでGCを行う – コンカレント・マーク&スイープ (CMS) • 複数の役割に分けてGCを行う • アプリと並行して実行可能な役割もある – ガベージ・ファースト (G1GC) • 領域を細かく分ける • 複数の役割に分けてGCを行う 29 Eden 領域 Tenured 領域 Survivor 0 領域 Survivor 1 領域 Full GC Minor GC
  30. 30. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito 1.Edenにオブジェクトが作成される 3.Edenにオブジェクトが作成される 2.GCが実行され、参照のあるオブ ジェクトはEdenからSurvivor 0へ移 動 4.GCが実行され、参照のあるオブ ジェクトはEdenからSurvivor 1へ移 動 GCによるオブジェクトの動き (1/2) Eden 領域 Tenured 領域 Survivor 0 領域 Survivor 1 領域 参照のあるオブジェクト 参照の無いオブジェクト Eden 領域 Tenured 領域 Survivor 0 領域 Survivor 1 領域 Eden 領域 Tenured 領域 Survivor 0 領域 Survivor 1 領域 1 2 1 2 Eden 領域 Tenured 領域 Survivor 0 領域 Survivor 1 領域 1 23 1 3 30
  31. 31. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito 5.Edenにオブジェクトが作成される 7.GCを繰返すとTenuredがいっぱい になる 6.GCが実行され、一定回数GCを 経験するとTenuredへ移動する 8.Full GCが実行され、参照のない オブジェクトは全て削除される GCによるオブジェクトの動き (2/2) Eden 領域 Tenured 領域 Survivor 0 領域 Survivor 1 領域 参照のあるオブジェクト 参照の無いオブジェクト Eden 領域 Tenured 領域 Survivor 0 領域 Survivor 1 領域 Eden 領域 Tenured 領域 Survivor 0 領域 Survivor 1 領域 1 3 Eden 領域 Tenured 領域 Survivor 0 領域 Survivor 1 領域1 3 31 1 1
  32. 32. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito 5.Javaアプリケーションの開発方法 32
  33. 33. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito 開発には Java Development Kit を使用 • Java用のソフトウェア開発キット(SDK) • Java Development Kit(JDK)の構成要素 – 実行環境(JRE) – 開発ツール:コンパイラ、アーカイブ、ドキュメント生成 – 運用ツール:分析ツール、監視ツール 33
  34. 34. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito アプリケーション開発で扱う3種類のファイル • ソースファイル (*.java) – 開発者がJava言語で作成するファイル • クラスファイル (*.class) – JVMが実行可能なバイトコードを含むファイル • アーカイブファイル (*.jar, *.war, *.ear) – クラスファイルをまとめたファイル 34
  35. 35. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito 35 アプリケーション開発の流れ ソース ファイル クラス ファイル アーカイブ ファイル 記述 実行実行コンパイル アーカイブ • 実行はクラスファイルとアーカイブファイルのどちらでも可能
  36. 36. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito 昔のアプリケーション開発の流れ • エディタ(メモ帳など)を使用してソースファイルを作成 • JDKを直接使用してクラスファイル・アーカイブファイルを作成 36 ソース ファイル クラス ファイル アーカイブ ファイル javacコマンド jarコマンド エディタ JDK 実行
  37. 37. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito IDEを使ったアプリケーション開発の流れ • 統合開発環境:Integrated Development Environment (IDE) – Eclipse, Netbeans, JDeveloper など – アプリケーション開発に必要な機能がまとめられている 37 ソース ファイル クラス ファイル アーカイブ ファイル Run保存/ビルド エクスポート IDEを使った開発 記述 実行
  38. 38. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito 商用で使われるアプリケーション開発の流れ(例) • CIツール – 継続的にテストやビルドを繰返し、品質管理を行うツール – ビルドツールを使用してコンパイルやアーカイブを行う 38 ソース ファイル クラス ファイル アーカイブ ファイル 実行コンパイル アーカイブ IDE CIツール
  39. 39. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito 6.Java VMの運用方法 39
  40. 40. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito なぜ監視するのか • アプリケーションとJVMが動けているか確認 – OSリソース/APサーバ/Java VM/アプリケーションのリソースの過不足 – アプリケーションが動かず、Java VMばかり動いていないか – アプリケーションやJava VMが無駄な処理をしていないか 40
  41. 41. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito • 使用量 – 各領域のGC前後の使用量 • GCの履歴 – GC開始時間と処理時間 • 占有オブジェクト – ヒープを閉めている オブジェクトの種類 • ステータス – 処理待ちしていないか – スリープしていないか • 実行中の処理 – 実行中の処理の スタックトレース • 処理量 – 起動からの処理量 • リソース使用量 – DB接続の使用数など • メソッドの実行時間 – メソッドの呼び出しごと と累計の処理時間 監視する項目 ヒープ スレッド アプリ 41
  42. 42. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito • 使用量 – 各領域のGC前後の使用量 • GCの履歴 – GC開始時間と処理時間 • 占有オブジェクト – ヒープを閉めている オブジェクトの種類 • ステータス – 処理待ちしていないか – スリープしていないか • 実行中の処理 – 実行中の処理の スタックトレース • 処理量 – 起動からの処理量 • リソース使用量 – DB接続の使用数など • メソッドの実行時間 – メソッドの呼び出しごと と累計の処理時間 監視するツールと機能 ヒープ スレッド アプリ 42 GCログ ヒープダンプ MBean プロファイラ スレッドダンプ
  43. 43. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito 7.Javaの情報収集方法 43
  44. 44. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito • 毎月Javaの勉強会を開催 • 年2回大規模な勉強会を開催 • Twitter @JJUG、#JJUG • 関東と関西で開催 • もくもく会と勉強会を開催 • Twitter @java_women、#javajo • 1~2ヶ月に1回 勉強会を開催 • Twitter @kan_java、#kanjava • Twitter #okajug Javaのコミュニティに参加しましょう 日本Javaユーザグループ Java女子部 関西Javaエンジニアの会 岡山Javaユーザ会 44 • Twitter #hirojug 広島Javaユーザグループ
  45. 45. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito Oracleが提供するオススメの情報源 • 認定試験 – Oracle Certified Java Programmer Silver/Gold • ドキュメント – JavaMagazine (http://www.oracle.com/technetwork/java/javamagazine/index.html) • 日本語版 (http://www.oracle.com/technetwork/jp/articles/java/overview/index.html) • イベント – 国内 • Java Day Tokyo、JavaOne Tokyo、Oracle DBA & Developer Day – 海外 • JavaOne San Francisco 45
  46. 46. Java女子部 Oracleコンサルによる超Java入門 / Hello Java / @chiroito • Java チャンピオン – Javaにおけるリーダシップの役割を持つ – Java の技術に関する啓蒙活動等を行う – 厳選されたJava のスペシャリスト • Oracle Ace – Oracleの製品に卓越した知識と経験を持つ – コミュニティ活動を強力に支援 – トップエンジニアとしてオラクルが認定 • エバンジェリスト – 技術の採用を促す広報役 – 主に、所属会社の製品や技術戦略に則って 活動し、それらをエンジニアに広める • コミッター – 製品やその機能を開発し、反映できる人 – JavaではOpenJDKや各種ライブラリ 信頼できる情報発信源から情報を得ましょう 46

×