강의

멘토링

커뮤니티

BEST
Programming

/

Programming Language

基礎タンタン!ひどく起動するJava - Part 2: OOPとJVM

ちょうど2つを'正しく'扱います。まさにオブジェクト指向プログラミングとJVM!そこに連結リストベースの線形データ構造もおまけにさせていただきます。

  • nullnull8537
자료구조
Java
이론 실습 모두
oop
jvm
data-structure

学習した受講者のレビュー

受講後に得られること

  • オブジェクト指向プログラミング技術

  • OOP言語を使用して作成されたフレームワークを活用する方法

  • JVMの動作原理とhashCodeの実体

  • 接続リストベースの線形データ構造

文法ですか?重要です。しかし、その前にOOPの本質を知ることがより重要です。
そして、JVMについてもよく知っておくことで、競争力のある開発者になれます!


'JVM(Java Virtual Machine)'まで
扱う理由 🤔

📺 Part 2 受講希望者の皆様、必ずご視聴ください! 📺

この講座をしっかり修了すれば
専攻者に匹敵する高い理解を基に
Javaを活用できるようになります。

オブジェクト指向プログラミング

皆さんOOPについて話し、文法を学びます。しかし、いざどのように活用し、どんな状況に適用すべきなのか感覚をつかめない場合が多いです。そこで学んだ文法を全部使いこなせるミニプロジェクトを実習例題として用意しました。

JVM(*Java Virtual Machine)

Javaで作成されたすべてのプログラムは、最終的にJVMで実行されます。結局、JVMに対する深い理解は、Javaに対する深い理解であり、多くの企業が求める実力のある開発者の必須条件です。そのような状況で競争力を身につけられるよう、JVMについて惜しみなくお伝えします。

基本的なデータ構造まで一度に

Javaでできることの中で最も一般的な作業は、DBの入出力とデータ活用です。そのためには、データ構造に対する理解が必須と言えます。そのような理由で、この講義に代表的な線形データ構造である連結リストを含めました。

デザインパターン

Java文法およびオブジェクト指向プログラミング技法とともに設計原則(デザインパターンの一部)まで提示します。これをもとに、かろうじて文法だけを知ってJavaを扱うコーダーではなく、真の開発者として成長することができます。

※ちょっと待って!JVMとは?
JVM(Java Virtual Machine)は、Javaプログラムをコンピュータで実行できるようにサポートする仮想のコンピュータです。

学習対象


コードをひたすら打ち込むだけで
頭に何も残らないと感じたことのあるプログラミング初心者


バックエンド開発者として
就職したい就活生


よく使う言語だからといって
学んだものの本質をよく知らない
1〜2年目のジュニア開発者

学習ロードマップ 🏃🏻

独学で始めるJavaシリーズは全4つの講義で構成されています。
付録1、2の講義はSpringバックエンド開発者として成長するために一緒に受講すると良い講義です🙂

  • Part 1 : 基礎的な文法、手続き型プログラミング

  • Part 2 : オブジェクト指向プログラミング + データ構造

  • Part 3 : システム活用プログラム作成

  • Part 4:Spring Frameworkに移行するための準備

  • 別途1:Webインフラ技術に対する理解とDB

  • 別途 2 : SQL 上級


Part 2ではオブジェクト指向プログラミングとデータ構造、そしてJVMについて学びます。特にJVMはSpring frameworkベースのJavaバックエンド実務開発者を目指す方にとって必須のものです。プログラミング言語の文法とOOPを駆使し、システム運用まで考えることができる能力のある開発者になるための礎を築きます。

この講義を受講すると...

  • 継承とオーバーライドを文法として理解するのではなく、フレームワークを実装する核心原理として理解し、本当にしっかりとOOPを駆使できるようになります。


  • 問題(処理条件)を明確に分析し、どのような形でコード化するか具体的に考えることができます。また、例題作成過程で発生する各種エラーに自ら対応できる実力が身につきます。


  • JVMのGC(Garbage collector)がどのような原理で動作するのかをしっかり理解できます。また、参照とインスタンスを完全に分離して考えることで、NullPointerException エラーに確実に対応できるようになります。

徹底的に始めるJavaは
ただのJava講義ではありません。

1⃣
入門段階で
JVM構造から学びます。

  • 入門段階にもかかわらず、JVMの構造をはじめとする様々な構造的理論を一緒に学びます。

    こうすることでJavaで開発したアプリケーションの根本的な動作原理を理解することができます。

  • これは結局、後に実務開発者として成長した時、新人らしくない障害対応能力として実を結ぶことでしょう。


2⃣
抽象的な概念ではなく
本当にしっかりとHash codeを理解することができます。


  • Javaは言語の特性上、クラスに対する参照型でインスタンスを識別します。この2つを一緒に使用する過程で参照型変数をインスタンスと同一視する問題が生じる可能性がありますが、このような問題を解決するために存在するHash codeの実体が何なのかを正しく理解することができます。

3⃣
設計(デザインパターン)まで扱う
入門講座

  • classの文法を知っていたとしても、OOP的な設計を理解し、クラス間の関係を適切に定義できなければ、Javaをきちんと学んだとは言えないでしょう。

  • この講義では、そのような問題を簡単に克服できるよう、授業で使用された例題にデザインパターンを一部適用しました。

4⃣
整理された教育資料と板書📜

  • すべての授業内容はPPT資料をベースにしていますが、まるでホワイトボードに板書をするように説明が続きます。

  • これにより受講者は、完成した一つの結果だけを見るのではなく、構造が生まれた背景と理由全般に対する流れを総合的に理解することができます。

5⃣
目標は差別化された競争力と就職💼

  • 本格的なJavaプログラミングを学ぶ前に、本講座が就職を目標としていることを明確にお知らせします。そして

    講師の長年の講義経験に基づいて明確な学習ロードマップと所要時間を提示します。

  • 間違った選択で時間を無駄にすることがないよう、最初から適切な学習配分とスケジュールを立てるように導きます。

6⃣
文法を超えて実質的な能力を
確保するためのデバッグ🐞

  • IntelliJデバッガーの使用方法を具体的に学びます。単純なPosition breakpointはもちろん、条件式を反映してより簡単に活用する方法も扱います。

  • JVMで各インスタンスを一意に識別する目的で付与されたObjectIDを利用してDeep copyとShallow copyを区別する方法など、実践的なデバッグ方法を体験できます。

7⃣
真のOOPプログラミングを直接体験できる
続く実習問題を提供🛠

  • 授業で学んだ内容をすぐに活用できるよう、様々な実習問題を提供します。

  • 手続き型プログラミング技法で作成されたコードをオブジェクト指向的にリファクタリングする過程を実習で直接体験しながら、この過程で学習した内容のほとんどを実際に活用します。

実習環境

  • オペレーティングシステムおよびバージョン(OS): Windows 11

  • 使用ツール:IntelliJ IDEA 2024.2.3 (Community Edition)

  • PC仕様:Windows 11 OSおよびIntelliJが無理なく動作できるレベル

学習資料

  • 授業で使用されたPPT資料(PDFファイルで提供)

  • 全体例題および必須実習問題の正解(Zipファイルで提供)

前提知識と注意事項

こんな方に
おすすめです

学習対象は
誰でしょう?

  • ひどく始まるJava - Part 1を終了して次のステップに進む人

  • 真のオブジェクト指向プログラミングの原理を知りたい方

  • JVMがインスタンスを管理する方法と内部構造について知りたい人

  • Javaの深い理解を体験したい開発者

前提知識、
必要でしょうか?

  • ひどく始まるJava - Part 1

  • 広く浅く覚えてコムボール専攻者になる

こんにちは
です。

45,539

受講生

2,518

受講レビュー

1,141

回答

4.9

講座評価

25

講座

널널한 개발자 TV 채널 주인장이자
30년 넘게 IT기술의 바다를 항해하고 있는 개발자 입니다.  반갑습니다. ^^  

カリキュラム

全体

77件 ∙ (20時間 14分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

39件

5.0

39件の受講レビュー

  • 파이팅님의 프로필 이미지
    파이팅

    受講レビュー 1

    平均評価 5.0

    5

    95% 受講後に作成

    하나하나 깊이 있는 원리를 알려주신 덕분에, 다시 한번 세상은 마법처럼 돌아가는 것이 아니라는 것을 깨달았습니다. 내용을 꼼꼼히 이해하려다 보니 완강까지 시간이 조금 걸렸지만, 그만큼 얻어가는 것도 많아 매우 만족스러웠습니다. 감사합니다.

    • 널널한 개발자
      知識共有者

      와우~! 강렬한 평가 고맙습니다. 개발자는 그 마법을 구현해야 할 사명을 가진 사람이라 할 수 있지 않을까 싶습니다. 멋진 의견 감사합니다. :)

  • hope님의 프로필 이미지
    hope

    受講レビュー 3

    平均評価 5.0

    5

    36% 受講後に作成

    책을 통해 자바를 학습하거나, 학수 수준에서 자바를 학습했습니다. 스스로 되돌아보는 과정에서 '자바 사용법'만 익혔지, 동작 원리는 모른채 사용하고 있더군요. 강의를 들어보니 기존에 알고 있는 내용도 있지만, 그 속에서 애매하게 알고 있었던 내용이라던지, 단순히 자바 사용법만 가르치는 강의에서는 들을 수 없는 다양한 얘기들이 포함되어 있어서 매우 좋았습니다. 훈이 얘기라던지, 팩폭(?) 해주는 내용이 은근 재밌어서 잘 듣고 있습니다. 강의 자료도 있지만, 그것보단 실시간으로 펜으로 설명해주셔서 이해가 잘됩니다! 어제 라이브에서 part3가 12월 말에 나올 수도 있다고 하셨는데 기다리고 있겠습니다! 좋은 강의 감사합니다.

    • 널널한 개발자
      知識共有者

      다행히 강의 스타일이 맞았나보네요. 어쩌면 불편했을 수 있는 부분이지만 농담으로 잘 받아주셔서 감사드립니다. 원론을 이해하면 결과적인 문법이 당연해보이는 이해의 수준을 경험할 수 있지요. 꼭 그렇게 되시기를 진심으로 바라고 응원하겠습니다. Part 3도 잘 준비해서 공개하겠습니다. 고맙습니다. :)

  • 별다방님의 프로필 이미지
    별다방

    受講レビュー 13

    平均評価 4.5

    5

    29% 受講後に作成

    역시나입니다. 특히 JVM은 신세계입니다. 좋은 강의 만들어주셔서 감사합니다. 후딱 완강하고 part3 기대하겠습니다!!

    • 다알쥐DAALZZWI님의 프로필 이미지
      다알쥐DAALZZWI

      受講レビュー 2

      平均評価 5.0

      5

      13% 受講後に作成

      조금 어려워졌지만 좋아요! 자바 1탄 강의 "고민있어요" 섹션에 글 올렸는데 확인 부탁드려요!

      • 널널한 개발자
        知識共有者

        새 강의를 오픈하면 아무래도 첫 수강평을 떨리는 마음으로 기대리게 됩니다. 다행히 좋은 평가 주셔서 고맙습니다. :)

    • weegoto님의 프로필 이미지
      weegoto

      受講レビュー 4

      平均評価 5.0

      修正済み

      5

      100% 受講後に作成

      처음 학교에서 자바를 접했을 때는 아무것도 모른 채로 실시간 채팅 프로그램을 만들던 기억이 납니다. 그땐 코드 한 줄 한 줄이 왜 그렇게 돌아가는지도 모르고, 그저 돌아가면 다행이라 생각했었는데 이번 수업을 들으며 그때를 돌아보니, 얼마나 시행착오 속에서 배우고 있었는지 새삼 느꼈습니다. 그때 저에게 이 수업을 들려줄 수 있었다면 얼마나 좋았을까 싶습니다. 강의 정말 재미있게 들었고, 처음 배우는 것처럼 오히려 새롭게 느껴지기도 했습니다. 파트 3로 넘어가기 전, 한 번 더 되짚으며 복습해보겠습니다 🫡

      • 널널한 개발자
        知識共有者

        아직 시간이 분명히 있습니다. 지금 이렇게 완강하실 정도의 열정이라면 빠르게 자신의 부족한 점을 채워 나아가실 것 같습니다. 시행착오는 지금의 저도 겪고 있습니다. 어쩌면 우리는 생의 끝자락에 가서도 시행착오와 멀어지지 못할 수도 있겠지요. 그러나 이렇게 열심히 노력하는 것으로도 충분하지 않나 생각해봅니다. 지금처럼 계속 해나가시면 분명히 좋은 결과도 따를 것이고요. 제가 응원하겠습니다. 고맙습니다. :)

    ¥8,292

    nullnull8537の他の講座

    知識共有者の他の講座を見てみましょう!

    似ている講座

    同じ分野の他の講座を見てみましょう!