Java Basic
스스로 기초를 다지는 데 도움이 되는 공부 거리를 목차로 정리합니다. 큰 목차는 MIT 6.005의 2: Basic Java와 거의 같습니다.
Language Basic #
flowchart TB
classDef site stroke:none,fill:none;
classDef section fill:none;
classDef group stroke:none,fill:none;
basic_syntax@{ shape: text, label: "문법을 익히는 데 도움이 됩니다" }
-.- |baeldung| gswj(Get Started with Java)
--- gswj_basic(Java Language Basics)
--- gswj_arrays(Java Arrays)
basic_syntax -.- |oracle| oracle_basic(Language Basic)
click oracle_basic "https://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html"
click gswj "https://www.baeldung.com/get-started-with-java-series"
class gswj site;
class oracle_basic site;
basic_programming@{ shape: text, label: "문법과 프로그래밍 기초를 더불어 익히는 데 도움이 됩니다" }
-.- |MIT OCW| mit_ocw_6092(6.092: Introduction to Programming in Java)
basic_programming -.- |David J. Eck| javanotes(Introduction to Programming Using Java)
basic_programming -.- |Robert Sedgewick & Kevin Wayne| introcs_java(Introduction to Programming in Java)
mit_ocw_6092
--> mit_ocw_6092_lecture1(Lecture 1 - Types, Variables, Operators)
--> mit_ocw_6092_lecture2(Lecture 2 - More Types, Methods, Conditionals)
--> mit_ocw_6092_lecture3(Lecture 3 - Loops, Arrays)
javanotes
--> javanotes_chapter1(Chapter 1: Overview: The Mental Landscape)
--> javanotes_chapter2(Chapter 2: Programming in the Small I: Names and Things)
--> javanotes_chapter3(Chapter 3: Programming in the Small II: Control)
--> javanotes_chapter4(Chapter 4: Programming in the Large I: Subroutines)
--> javanotes_chapter7(Chapter 7: Arrays, ArrayLists, and Records)
--> javanotes_chapter7_section1(Section 1:
Array Details)
--> javanotes_chapter7_section2(Section 2:
Array Processing)
introcs_java
--> introcs_java_chapter1(Chapter 1: Elements of Programming)
--> introcs_java_chapter2(Chapter 2: Functions)
click mit_ocw_6092 "https://ocw.mit.edu/courses/6-092-introduction-to-programming-in-java-january-iap-2010/pages/lecture-notes/"
click javanotes "https://math.hws.edu/javanotes/"
click introcs_java "https://introcs.cs.princeton.edu/java/home/"
class mit_ocw_6092 site
class javanotes site
class introcs_java site
class javanotes_chapter7_section1 section
class javanotes_chapter7_section2 sectionNumbers & Strings #
flowchart TB
classDef site stroke:none,fill:none;
classDef section fill:none;
classDef group stroke:none,fill:none;
cs@{ shape: diam, label: "0.3 == 0.1 + 0.1 + 0.1?" }
cs --> |false| start
cs --> |true| introcs_sc_float([
_9.1: Floating Point_,
Scientific Computation
])
--> cs
start@{ shape: sm-circ , label: "" } -.- |oracle| oracle_data(Numbers & Strings)
start -.- |baeldung| baeldung_wrapper_classes([Wrapper Classes in Java])
--> baeldung_number_class(Guide to the Number Class in Java)
--> gswj_strings(
_Java Strings_,
Get Started with Java
)
oracle_data & gswj_strings
-.- prerequisite_classes_objects(Classes & Objects)
-.- prerequisite_essential_java_classes(Essential Java Classes)
-.- |baeldung| gswj_overflow_underflow([Overflow and Underflow in Java])
--> gswj_comparing_doubles([Comparing Doubles in Java])
click oracle_data "https://docs.oracle.com/javase/tutorial/java/data/index.html"
click introcs_sc_float "https://introcs.cs.princeton.edu/java/91float/"
click baeldung_wrapper_classes "https://www.baeldung.com/java-wrapper-classes"
click baeldung_number_class "https://www.baeldung.com/java-number-class"
click prerequisite_classes_objects "#classes--objects"
click prerequisite_essential_java_classes "#essential-java-classes"
click gswj_strings "https://www.baeldung.com/get-started-with-java-series"
click gswj_comparing_doubles "https://www.baeldung.com/java-comparing-doubles"
click gswj_overflow_underflow "https://www.baeldung.com/java-overflow-underflow"
class gswj_strings chapter
class prerequisite_classes_objects section
class prerequisite_essential_java_classes section
class oracle_data chapter
class introcs_sc_float section
class baeldung_wrapper_classes section
class baeldung_number_class section
class gswj_comparing_doubles section
class gswj_overflow_underflow sectionClasses & Objects #
flowchart TB
classDef site stroke:none,fill:none;
classDef section fill:none;
classDef group stroke:none,fill:none;
subgraph programming [ ]
direction TB
basic_programming@{ shape: text, label: "문법과 프로그래밍 기초를 더불어 익히는 데 도움이 됩니다" }
-.- |MIT OCW| mit_ocw_6092_lecture4(
_Lecture 4 - Classes and Objects_,
6.092: Introduction to Programming in Java)
basic_programming
-.- |David J. Eck| javanotes_chapter5(
_Chapter 5: Programming in the Large II:
Objects and Classes_,
Introduction to Programming Using Java
)
basic_programming
-.- |Robert Sedgewick & Kevin Wayne| introcs_chapter3(
_Chapter 3: Object-Oriented Programming_,
Introduction to Programming in Java)
click mit_ocw_6092_lecture4 "https://ocw.mit.edu/courses/6-092-introduction-to-programming-in-java-january-iap-2010/resources/mit6_092iap10_lec04/"
click javanotes_chapter5 "https://math.hws.edu/javanotes/c5/index.html"
click introcs_chapter3 "https://introcs.cs.princeton.edu/java/30oop/"
class mit_ocw_6092 site
class javanotes site
class introcs_java site
end
subgraph syntax [ ]
direction TB
basic_syntax@{ shape: text, label: "문법을 익히는 데 도움이 됩니다" }
-.- |baeldung| gswj_oo(
_Java OOP_,
Get Started with Java
)
basic_syntax -.- |oracle| oracle_oo(Classes & Objects)
--> oracle_ii(Interface & Inheritance)
click oracle_basic "https://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html"
click gswj_oo "https://www.baeldung.com/get-started-with-java-series"
click oracle_oo "https://docs.oracle.com/javase/tutorial/java/javaOO/index.html"
click oracle_ii "https://docs.oracle.com/javase/tutorial/java/IandI/index.html"
class gswj_oo chapter;
class oracle_oo chapter;
class oracle_ii chapter;
end
subgraph supplements [ ]
direction LR
mit_ocw_6005_s16_equality([
_15: Equality_,
6.005: Software Construction Readings
])
-.- | baeldung | baeldung
subgraph baeldung [ ]
baeldung_equals(["Difference Between == and equals() in Java"])
--> baeldung_contracts(["Java equals() and hashCode() Contracts"])
--> baeldung_hashcode(["Guide to hashCode() in Java"])
--> baeldung_comparable(["Comparing Objects in Java"])
end
click mit_ocw_6005_s16_equality "https://ocw.mit.edu/ans7870/6/6.005/s16/classes/15-equality/"
click baeldung_equals "https://www.baeldung.com/java-equals-method-operator-difference"
click baeldung_contracts "https://www.baeldung.com/java-equals-hashcode-contracts"
click baeldung_hashcode "https://www.baeldung.com/java-hashcode"
click baeldung_comparable "https://www.baeldung.com/java-comparing-objects"
class mit_ocw_6005_s16_equality section
class baeldung_equals section
class baeldung_contracts section
class baeldung_hashcode section
class baeldung_comparable section
end
syntax & programming -.- |MIT OCW| mit_ocw_6005_s16_equality
class syntax group
class programming group
class supplements group
class baeldung groupEssential Java Classes #
flowchart TB
classDef site stroke:none,fill:none;
classDef section fill:none;
classDef group stroke:none,fill:none;
subgraph programming [ ]
direction TB
basic_programming@{ shape: text, label: "사용법과 프로그래밍 기초를 더불어 익히는 데 도움이 됩니다" }
-.- |David J. Eck| javanotes(Introduction to Programming Using Java)
--> |Chapter 8: Correctness, Robustness, Efficiency| javanotes_chapter8_section1(
Section 1: Introduction to Correctness and Robustness)
--> javanotes_chapter8_section2(Section 2: Writing Correct Programs)
--> javanotes_chapter8_section3(Section 3: Exceptions and try..catch)
--> |Chapter 11: Input/Output Streams, Files, and Networking| javanotes_chapter11_section1(
Section 1: I/O Streams, Readers, and Writers)
--> javanotes_chapter11_section2(Section 2: Files)
--> javanotes_chapter11_section3(Section 3: Programming With Files)
click javanotes "https://math.hws.edu/javanotes/"
class javanotes site
class javanotes_chapter8_section1 section
class javanotes_chapter8_section2 section
class javanotes_chapter8_section3 section
class javanotes_chapter11_section1 section
class javanotes_chapter11_section2 section
class javanotes_chapter11_section3 section
end
subgraph syntax [ ]
direction TB
basic_syntax@{ shape: text, label: "사용법을 익히는 데 도움이 됩니다" }
basic_syntax -.- |baeldung| gswj(Getting Started with Java)
--> gswj_exception(Java Exceptions)
--> io(Java I/O)
--> gswj_regular_expressions([A Guide To Java Regular Expressions API])
basic_syntax -.- |oracle| oracle_essential(Essential Java Classes)
--> oracle_exceptions(Exceptions)
--> oracle_io(Basic I/O)
--> oracle_regular_expressions(Regular Expressions)
click gswj "https://www.baeldung.com/get-started-with-java-series"
click gswj_regular_expressions "https://www.baeldung.com/regular-expressions-java"
click oracle_essential "https://docs.oracle.com/javase/tutorial/essential/index.html"
class gswj site
class oracle_essential site
class gswj_regular_expressions section
end
class syntax group
class programming groupCollections #
flowchart TB
classDef site stroke:none,fill:none;
classDef section fill:none;
classDef group stroke:none,fill:none;
subgraph generics [ ]
direction LR
generics_begins@{ shape: text, label: "
Generics (parametric polymorphism)
type을 parameter로 받아서
type-safe & reusable code를 짜는 공부" }
-.- |baeldung| baeldung_generics([The Basics of Java Generics])
--> baeldung_generics_vs_extends_object(["
Java Generics:
< ? > vs. < ? extends Object >"
])
generics_begins -.- |oracle| oracle_generics(Generics)
click baeldung_generics "https://www.baeldung.com/java-generics"
click baeldung_generics_vs_extends_object "https://www.baeldung.com/java-generics-vs-extends-object"
click oracle_generics "https://docs.oracle.com/javase/tutorial/java/generics/index.html"
class baeldung_generics section
class baeldung_generics_vs_extends_object section
class oracle_generics chapter
end
subgraph programming [ ]
direction TB
basic_programming@{ shape: text, label: "사용법과 프로그래밍 기초를 더불어 익히는 데 도움이 됩니다" }
-.- |David J. Eck| javanotes(Introduction to Programming Using Java)
--> javanotes_chapter7_section3([
_Section 3: ArrayList_,
Chapter 7: Arrays, ArrayLists, and Records])
--> javanotes_10(Chapter 10:
Generic Programming and Collection Classes)
click javanotes "https://math.hws.edu/javanotes/"
class javanotes site
class javanotes_chapter7_section3 section
end
subgraph syntax [ ]
direction TB
basic_syntax@{ shape: text, label: "사용법을 익히는 데 도움이 됩니다" }
-.- |oracle| oracle_collections(Collections)
basic_syntax
-.- |baeldung| gswj(Get Started with Java)
--> gswj_collections(Java Collections)
click oracle_collections "https://docs.oracle.com/javase/tutorial/collections/index.html"
click gswj "https://www.baeldung.com/get-started-with-java-series"
class oracle_collections site
class gswj site
end
generics ---> syntax
generics ---> programming
class generics group
class programming group
class syntax groupConcurrency & Networking #
flowchart TB
classDef site stroke:none,fill:none;
classDef section fill:none;
classDef group stroke:none,fill:none;
subgraph programming [ ]
direction TB
basic_programming@{ shape: text, label: "사용법과 프로그래밍 기초를 더불어 익히는 데 도움이 됩니다" }
-.- |MIT OCW| mit_ocw_6005_s16_readings(6.005: Software Construction
Readings)
--> mit_ocw_6005_s16_reading19(19: Concurrency)
--> mit_ocs_6005_s16_reading20(20: Thread Safety)
--> mit_ocs_6005_s16_reading21(21: Sockets & Networking)
--> mit_ocs_6005_s16_reading22(22: Queues & Message-Passing)
--> mit_ocs_6005_s16_reading23(23: Locks & Synchronization)
basic_programming
-.- |David J. Eck| javanotes(Introduction to Programming Using Java)
--> javanotes_chapter11_section4([
_Section 4: Networking_,
Chapter 11: Input/Output Streams,
Files, and Networking
])
--> javanotes_chapter12(Chapter 12:
Threads and Multiprocessing)
click javanotes "https://math.hws.edu/javanotes/"
click mit_ocw_6005_s16_readings "https://ocw.mit.edu/ans7870/6/6.005/s16/"
class mit_ocw_6005_s16_reading19_22 chapter
class mit_ocw_6005_s16_readings site
class javanotes site
class javanotes_chapter11_section4 section
end
subgraph syntax [ ]
direction TB
basic_syntax@{ shape: text, label: "사용법을 익히는 데 도움이 됩니다" }
-.- |baeldung| baeldung_concurrency(Java Concurrency Series)
--> baeldung_concurrency_basics(Java Concurrency Basics)
--> baeldung_concurrency_advanced(Advanced Concurrency in Java)
baeldung_concurrency_basics
--> baeldung_sockets([A Guide to Java Sockets])
--> baeldung_inputstream_server_socket([
Read an InputStream
using the Java Server Socket
])
baeldung_sockets
--> baeldung_socket_connection_read_timeout([
Connection Timeout
vs.
Read Timeout for Java Sockets
])
baeldung_inputstream_server_socket
--> baeldung_url([A Guide to the Java URL])
baeldung_url --> baeldung_url_vs_uri([
Difference
Between URL and URI
])
baeldung_inputstream_server_socket
--> baeldung_udp([A Guide to UDP In Java])
click baeldung_concurrency "https://www.baeldung.com/java-concurrency"
click baeldung_url "https://www.baeldung.com/java-url"
click baeldung_url_vs_uri "https://www.baeldung.com/java-url-vs-uri"
click baeldung_sockets "https://www.baeldung.com/a-guide-to-java-sockets"
click baeldung_inputstream_server_socket "https://www.baeldung.com/java-inputstream-server-socket"
click baeldung_socket_connection_read_timeout "https://www.baeldung.com/java-socket-connection-read-timeout"
click baeldung_udp "https://www.baeldung.com/udp-in-java"
class baeldung_concurrency site
class baeldung_concurrency_basics chapter
class baeldung_concurrency_advanced chapter
class baeldung_url section
class baeldung_url_vs_uri section
class baeldung_sockets section
class baeldung_inputstream_server_socket section
class baeldung_socket_connection_read_timeout section
class baeldung_udp section
end
class programming group
class syntax group