1.6.1. 변 ¶
- Java 놓 문들 보, 바른 Java 램 르 끔 는데
- Java를 루만, Java 를 바
- 동 미를 , 번는 더 practical pragmatic 는데 .
- 만 불 명면 부 배
3.2. 2012 5 12 ¶
- SpringSource Tool Suite(Eclipse IDE) 본 본 보를 명.
- Eclipse JDT 빌 보 Maven 브러리 보.
- 멤 는 본 modifier들 념 및 .
- public, protected, private, (none)
- abstract, final, static
- public, protected, private, (none)
3.2.1. ¶
- static modifier 대 매 는데 명 . static 부르는 모 static데 static 는 명 . object.method(message) -> MyType::method(object, method) 부 oop 본는 부 리 . 데 메 (self) 들는 는? -
- static는 런 . StaticInitializer -
3.3. 2012 5 19 ¶
- Singleton lazy initialization 대 .
- 멀 synchronized modifier를 동 대 부.
- 동 부를 DCL 문 보 Java 5 volatile modifier 배.
- 멀 synchronized modifier를 동 대 부.
- Serializable ObjectOutput, ObjectInput , 대 부.
- transient modifier는 VM 동 , Externalizable 를 면 , 방 보.
- transient modifier는 VM 동 , Externalizable 를 면 , 방 보.
- JNI는 브 브러리를 를 배.
- native modifier 를 , 마링, 마링 능 .
- native modifier 를 , 마링, 마링 능 .
- 불변 대 보.
- 대 불변 String 내부 떻 , 떻 불변 는 를 보.
- String 들 동 동등 보.
- String 들 동 동등 보.
- 대 불변 String 내부 떻 , 떻 불변 는 를 보.
3.3.1. ¶
- String..! 바 링 면 불는데 뭔 를 들 ..-
- c++ 배 mutex critical section 배는데 바는 synchronized를 리 는 . os 들 됐는데 멀 멀 들 명 . 만 붙 는 보 를 synchronized(this){ ... } 부 를 . 리 리 를 보 면 러 는 볼만. -
- synchronized는 몰 냥 붙면 는 미만 막 는데 런 부 밀 듣 . 는 만 는 느 들 만 룰 범를 . - 민
3.4. 2012 5 26 ¶
- interface
- nested class
- static nested class
- inner class
- annonymous inner class
- static nested class
- up dw (cohesion&coupling)
- SOLID SOLID Wiki
- SRP (Single responsibility principle)
- OCP (Open/closed principle)
- LSP (Liskov substitution principle)
- ISP (Interface segregation principle)
- DIP (Dependency inversion principle)
- SRP (Single responsibility principle)
- DRY DRY Wiki
3.4.1. ¶
- 딱 6 보 뭐 배더.. 는 느낌 --; 번 밖 못들.. 는 만 머는 뭔 보 더 는 바람 머리 란러봐;; -
- 른 는 볼 는 바 문 + 룬 . 른 들(builder , ) 들만 룬 는 명 . 만 떻 느냐는 릿 느낌. 마 들 interface, 등 대 느낌 는 문 ;;; 말 대 번 본 람 는 말 맞 . 리 를 들면 느낌 . 미를 들면 를 부 보는. 대 를 끔 보 리를 는데 더 많 느낌. 번 들 메 디 는( or 메) 무 내 말는 는 . . DIP Logic native API 를 는 는데 면 보 . 마 보 만. - 민
3.5. 2012 6 2 ¶
- Serialize
- Abstraction layer
- Abstraction layer
- Inner Class, Nested Class(보), Local Class, Static Inner Class
- Iterator (java.util)
- 리 는 interface
- generics
- Collection , , 대부 료 O(1), 변 는 thread safe
- but 변
- 리 는 interface
- Iterable (java.lang)
- Iterator Iterable 들 부는
- Comparable
- for Sorting.. stable, unstable
- for Sorting.. stable, unstable
3.5.1. ¶
- Inner Class Nested Class 들 Encapsulation , , . 만 Event들러 .
Inner Class this는 Inner Class를 . 문 Inner Class를 는 Class this( 를 ) 불러면 .this를 붙면 됩.
Iterator는 Util만 Iterable java.lang ( 를 바 본 type럼 는 java.lang) 는데 interface를 덱(index)를 료 는 른 Iterator를 Java 범 만들 . DB List를 번 받 딩는 100만 면 부를 Loading 느립. 만 대는 보면 Loading . Iterator는 는 런 Loading 더 . 브러리 면 빡 념 iterator를 itrable란 Java는 본 Iterable Custom 는 마 마바는 대=ㅂ= Generic Sorting 른 명. -
3.6. 2012 7 20 ¶
- Java Generics
- run-time type erasure
- 머 보
- 머 보
- run-time type erasure
- Reflection API
- parameter 는 방 .
- public field
- getter, setter 는 field
- @property annotation
- public field
- parameter 는 방 .
- Generics Reflection ObjectMapper 만들
- Map <-> Object 변
- Map <-> Object 변
3.6.1. ¶
- 리 릭를 map -> object object -> map 는 부 봤. 바 방 내 변 대 getClass, getFields, getMethods를 private, 는 받. getter를 변 받 get 는 른 를 method.getParameterTypes().length == 0 부 는 부 릭 먹만 . 리 mapToObject는 문 만 objectToMap 는 릭 type erase문 Class<T> expectedType = T.class; 를 map.put(field.getName(), (T)field.get(obj)); 변 Class<T> valueType 받 valueType.isAssignableFrom(field.getType()) 를 는 부 부 많 됐. -
3.9. 2012 8 17 ¶
- ObjectMapper (cont.)
- Maven - (dependency) 리 는 . pom.xml 보를 면 (repository) 브러리 들 받 빌 .
- m2e plugin - maven eclipse는 빌를 른 방 문 maven eclipse 는 plugin.
- 브러리 (jar) 만들(Run as -> Maven Install) - ObjectMapper를 브러리 리.
- Maven Build
- resources - src/main/resources 등 target/classes . javac를 는.
- mvn compile - src/main/java 는 .class를 만들 target/classes 보낸.
- test-resourecs - src/test/resources 등 target/test-classes .
- mvn test - src/test/java를 target/test-classes. @Test <scope> 는
- mvn package - . pom.xml <packaging> 따른 . 본 jar .
- mvn install - , pom .m2/repository 는.
- mvn deploy - 리모 리리 브러리 배.
- mvn release
- resources - src/main/resources 등 target/classes . javac를 는.
- resolve dependencies from workspace projects
- 브러리 변 maven install 면 문 .
- maven 는 를 .
- maven 립 .
- 브러리 변 maven install 면 문 .
- m2e plugin - maven eclipse는 빌를 른 방 문 maven eclipse 는 plugin.
3.10. 2012 9 22 ¶
- Properties
- map .
- 는 를 getProperty get 를 .
- getProperty는 String , get Object를 - 릭 는 Object를 받 밖 는데 받 는 String 문 변 getProperty를 따 .
- 는 를 getProperty get 를 .
- map .
- Reader InputStream
- 딩 문 . 딩 문를 Reader, Writer를 만들. Reader는 딩 보를 들 .
- 딩 문 . 딩 문를 Reader, Writer를 만들. Reader는 딩 보를 들 .
- JDBC - 데들 대
- java.sql.driver 를 com.mysql.jdbc.driver , java.sql.connection 를 com.mysql.jdbc.connection
- driver connection 는 부 대는 abstract factory 됨 - 부 만.
- driver connection 는 부 대는 abstract factory 됨 - 부 만.
- java.sql.driver 를 com.mysql.jdbc.driver , java.sql.connection 를 com.mysql.jdbc.connection
java.sql.Driver driver = new com.mysql.jdbc.Driver(); java.sql.Connection conn = driver.connect("", null); // com.mysql.jdbc.connection . // driver부 conn
- abstract factory를 는 api .
- Statement, ResultSet 대 마 를 abstract factory 됨.
- driver new com.mysql.jdbc.Driver(); 대 볼 는 Class.forName("com.mysql.jdbc.Driver"); 러 는 런 바 .
Driver driver = new com.mysql.jdbc.Driver(); // 럼 new를 는 대 Class<Driver> clazz = (Class<Driver>) Class.forName("com.mysql.jdbc.Driver"); Driver driver = clazz.newInstance(); // 방 런 바 .
- 런 밀낸 문 러 대는 더 .
- factory method - factory를 는 메. 만들를 만 는 . 는 는 문 따("com.mysql.jdbc.Driver") 무 만들 .
- sqlite
- dbms 르 dbms 리 내부 들 동는 .
- os 배를 못 문 동 문 . 따 못.
- dbms 르 dbms 리 내부 들 동는 .
3.11. 2012 10 6 ¶
- DataSource DriverManager
- Persistence Layer
- persistance layer는 부 를 많 문 많 .
- 러 면 됨.
- 는 를 는 .
- persistance layer는 부 를 많 문 많 .
- DataBase (Normalize)
- 데를 블 복 는 는 블 는 른 블 문 .
- 만 복 는 는 데 는 부 부 므 데 .
- 대 데 복 블 눴 는 데 들 .
- 데 .
- 를 블 복 .
- 데를 블 복 는 는 블 는 른 블 문 .
- Builder
- 빌더는 변를 만들 를 변 마막 만. 끊 . 변 방.
- 빌더는 변를 만들 를 변 마막 만. 끊 . 변 방.
Resource resource = new JdbcResource.Builder() .setUrl("jdbc:mysql://zeropage.org:3306/test") .setUser("test") .setPassword("test") .setTable("people") .create();
- 문 며 마막 를 는 방 .
- 따 빼내 , set private 바 불변를 만들 . 더 .
- 문 - 말를 .
3.12. 2012 10 20 ¶
- uri url
- uniform resource identifier locatord . uri url보 더 념.
- map 료를 equals 를 url 내 uri는 만 .
- url equals는 를 면 료를 문 능 낭 . 따 료 만 url 는 .
- url uri는 toURI, toURL .
- uri url 보 더 .
- uniform resource identifier locatord . uri url보 더 념.
- abstract factory factory method
- 메를 는 , 메 들는 는 는 abstract factory
- 메 만 는 factory method
- 메를 는 , 메 들는 는 는 abstract factory
- abstract factory는 . 바 는 api 문 보만 리는 문 많 는.
- PushbackInputStream
- lookahead inputstream. input stream 번 read면 만 lookahead 를 번 read read 돌 .
- 바는 inputstream 대 많 문 를 inputstream 만들 면 리 .
- lookahead inputstream. input stream 번 read면 만 lookahead 를 번 read read 돌 .
- strategy , command , template method
- 동 .
- strategy - command
- strategy (logic) 동 략 를 .
면 command 따 보 범 .
- strategy (logic) 동 략 를 .
- strategy - template method
- strategy 만들 략 를 (implementation)는 방 동 .
면 template method 부모 만들 동 는 메를 + .
- strategy 만들 략 를 (implementation)는 방 동 .
- 동 .
3.13. 2012 11 3 ¶
- ~let : 부 리는 램. activity 부 동 됨. .
- applet : 리(브) 돌는 램.
- servlet : 돌는 램. 모듈 방(부 http request 면 받 맞 모듈 .)럼 만들 놓 .
- portlet : (리램 등) 돌는 램.
- applet : 리(브) 돌는 램.
- javaSE, javaEE : java .
- javaSE : JLS(java language specification) + java api를 리. 바 문 본 능들. 는 hotspot JVM .
- javaEE : SE 들 모 javaEE . javaSE 능들 들. javaEE servlet. 는 tomcat glassfish . tomcat servlet 만 만 javaEE 만는 만 glassfish는 javaEE 모 만.
- tomcat servlet container만 glassfish는 WAS(web application server) .
- javaSE : JLS(java language specification) + java api를 리. 바 문 본 능들. 는 hotspot JVM .
- DIP (depencency inversion principle) : 를 를 를 는 디 .
- JPA eclipse link hibernate 는데, 를 JPA 를 면 를 바 .
- JPA eclipse link hibernate 는데, 를 JPA 를 면 를 바 .
- tomcat servlet 배 내부 동
- tomcat servlet 배는 servlet 는 를 tomcat 는 말. java tomcat 를 동 딩 .
- servlet war(web archive) 면 tomcat내부 watcher war 보를 를 동 딩 .
- servlet 딩 : jvm tomcat main를 딩 -> deployment description 는 servlet를 tomcat 딩.
- tomcat servlet 배는 servlet 는 를 tomcat 는 말. java tomcat 를 동 딩 .
- servlet
- template method 됐. protected service method template method 는데 abstract 는 본 는 대 를 .
- init : servlet 불러면 먼 는 method. init 면 servlet 딩 는.
- destoy : servlet 료 는 method.
- service : 부 request 들 servlet service method를 . service(req, res) 내부 req를 request 받 res 변 부 내보내. 를 do* 붙 method(doGet, doPost 등) .
- do* : httpMethod 대 리를 는 method.
- template method 됐. protected service method template method 는데 abstract 는 본 는 대 를 .
3.14. 2012 11 10 ¶
- jar war
- war : src/main 는 webapp 더 내부 는 root .
- src/main/java, src/main/resources war WEB-INF 더 내부 classes 내부 .
- src/main/java, src/main/resources war WEB-INF 더 내부 classes 내부 .
- jar : src/main/java, src/main/resources 더 root .
- war : src/main 는 webapp 더 내부 는 root .
- http servlet
- http(http://hostname/contextPath/path?params) -> contextPath를 보 는 war를 -> war 내부 web.xml 보 <servlet-mapping> 보를 보 매 servlet 는. -> 는 servlet defalut servlet 리
- http(http://hostname/contextPath/path?params) -> contextPath를 보 는 war를 -> war 내부 web.xml 보 <servlet-mapping> 보를 보 매 servlet 는. -> 는 servlet defalut servlet 리
- servlet filter chain
- request servlet filter chain 러 servlet 동 .
- request -> Servlet Container -> Filter -> Servlet
- response <- Servlet Container <- Filter <- Servlet
- request servlet filter chain 러 servlet 동 .
- servlet thread safety
- servlet thread per request servlet 러 는 .
- filter, servlet 를 url 매 러 는 . 따 thread-safe .
- thread-safe 는 stateful는 . Servlet stateless더 내부 stateful 를 들 면 stateful . 는 므 .
- 리 방 : 는 변를 말 내만 는 변를 ,
- servlet thread per request servlet 러 는 .
3.15. 2012 12 23 ¶
- IME(Input Method Editor) - OS 벨 key code - 문 mapping 문 ('ㅁ' + 'ㅏ' ) 리를 는 . Sublime는 대 리를 ...
- JNI(Java Native Interface)
- Java 른 (C) 브러리를 동 는 방.
- load 는 .
- .java 는 내 native modifier를 붙 메를 , .c, .cpp 는 Java . System.loadLibrary(...) 를 .dll (Windows ) 는 .so(shared object) (Linux ) 동 .
- 브러리 는 naming convention , 몇몇 들 받 . Java C, C++ 들 . 들 jni.h .
- 는 naming convention 를 는 문 native를 .class javah 면 convention .h 만들 .
- .cpp 는 extern "C"는 (__cdecl, __stdcall) 부. extern "C"를 는 __cdecl 를 .
- 브러리 는 naming convention , 몇몇 들 받 . Java C, C++ 들 . 들 jni.h .
- Java 른 (C) 브러리를 동 는 방.
3.16. 2013 1 6 ¶
- JVM & Java Byte Code
- JVM - stack-based machine
- register-based machine 는 는 operand . register-based는 register operand를 stack-based는 stack pop .
- stack-based machine register-based machine push, pop 많 느리만 register를 는 .
- 명 prefix . http://en.wikipedia.org/wiki/Java_bytecode#Instructions
- invoke* 명
- invokespecial - vtable lookup 메를 는 . 떤 메를 는 는 . new, private method, super 등.
- invokevirtual - vtable lookup . 메를 는 . 대부 메들 .
- invokestatic - static 메 . this를 는.
- invokeinterface - virtual . interface 메를 는 .
- invokespecial - vtable lookup 메를 는 . 떤 메를 는 는 . new, private method, super 등.
- if문 - if* if_* .
- if* - operand를 만 0 는 대부. ifeq(0 ), ifne(0 ) 등 명 .
- if_* - stack operand를 내 는 . if_icmpeq( 를 ) 등 명 .
- if* - operand를 만 0 는 대부. ifeq(0 ), ifne(0 ) 등 명 .
- register-based machine 는 는 operand . register-based는 register operand를 stack-based는 stack pop .
- JVM - stack-based machine
- 11 10 ? -
- 복 더 바는 먹듯 ;;; - 민
- 복 더 바는 먹듯 ;;; - 민