Java Basic
Java Basic
스스로 기초를 다지는 데 도움이 되는 공부 거리를 목차로 정리합니다. 큰 목차는 MIT 6.005의 2: Basic Java와 거의 같습니다.
Language Basic
flowchart TB classDef site stroke: none, fill: none ; classDef section 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 section
Numbers & Strings
flowchart TB cs@{ shape: diam, label: "0.3 == 0.1 + 0.1 + 0.1" } cs --> |false| start cs --> |true| introcs_sc(9\. Scientific Computing, Robert Sedgewick & Kevin Wayne) --> introcs_sc_float([9.1 Floating Point]) --> cs start@{ shape: sm-circ , label: "" } -.- |oracle| oracle_data(Numbers & Strings) subgraph baeldung [ ] direction TB baeldung_wrapper_classes([Wrapper Classes in Java]) --> baeldung_number_class(Guide to the Number Class in Java) gswj(Get Started with Java) --> gswj_strings(Java Strings) end start -.- |baeldung| baeldung style baeldung stroke-width: 0.1px, fill :none; oracle_data & baeldung -.- prerequisite(Classes & Objects, 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 gswj "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" classDef site stroke: none, fill: none; classDef section fill: none ; classDef group stroke: none, fill: none; class gswj site class prerequisite site class introcs_sc_float section class baeldung_wrapper_classes section class baeldung_number_class section class gswj_comparing_doubles section class gswj_overflow_underflow section
Classes & Objects
flowchart TB classDef site stroke: none, fill: none; classDef group stroke: none, fill: none; classDef section fill: none ; subgraph programming [ ] direction TB 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_lecture4(Lecture 4 - Classes and Objects) javanotes --> javanotes_chapter5(Chapter 5: Programming in the Large II: Objects and Classes) introcs_java --> introcs_chapter3(Chapter 3: Object-Oriented Programming) 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 end subgraph syntax [ ] direction TB basic_syntax@{ shape: text, label: "문법을 익히는 데 도움이 됩니다" } -.- |baeldung| gswj(Get Started with Java) --> gswj_oo(Java OOP) 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 "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 site; end subgraph supplements [ ] direction LR mit_ocw_6005_s16([6.005: Software Construction Readings]) --> mit_ocw_6005_s16_equality([15: Equality]) -.- | 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 style baeldung stroke-width: 0.1px, fill :none; click mit_ocw_6005_s16 "https://ocw.mit.edu/ans7870/6/6.005/s16/" 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 site 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 class syntax group class programming group class supplements group
Essential Java Classes
flowchart TB classDef site stroke: none, fill: none; classDef group stroke: none, fill: none; classDef section 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 gswj_regular_expressions section class oracle group class oracle_essential site end class syntax group class programming group
Collections
flowchart TB classDef site stroke: none, fill: none; classDef group stroke: none, fill: none; classDef section fill: none ; subgraph generics [ ] direction LR generics_begins@{ shape: text, label: "Generics (parametric polymorphism) 곧, type을 parameter로 받아 type-safety와 reusability가 더 뛰어난 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) end style generics stroke-width: 0.1px, fill: none; 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 subgraph programming [ ] direction TB basic_programming@{ shape: text, label: "사용법과 프로그래밍 기초를 더불어 익히는 데 도움이 됩니다" } -.- |David J. Eck| javanotes(Introduction to Programming Using Java) --> |Chapter 7: Arrays, ArrayLists, and Records| javanotes_chapter7_section3([ Section 3: ArrayList]) --> 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 gswj site end generics ---> syntax generics ---> programming class programming group class syntax group
Concurrency & Networking
flowchart TB classDef site stroke: none, fill: none; classDef group stroke: none, fill: none; classDef section 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) --> |Chapter 11: Input/Output Streams, Files, and Networking| javanotes_chapter11_section4([ Section 4: 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_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]) 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_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
마지막으로 고친 날