E D R , A S I H C RSS

작은자바이야기

1.

  • 바를 리면 ?
  • 2012 Java 디!

1.1. ?

  • :
  • : , , , , ,
    • . .
    • Java 부 2 1
      • Java .
    • -
    • .. 데. -

1.2. ?

  • 1

1.3. ?

1.4. ?

  • 는 Java

    • Java Technology
    • Java 및 빌
    • Java
      • Java

      • AnnotationsGenerics

    • Java API

      • Servlet Servlet
      • Java 런


        • MVC (DB)
      • 브러리
    • Java





        • Mock
    • Android
    • 등등…

1.5. ?





    1. Effective Java Second Edition by Josh Bloch

1.6. ?

  • …?

1.6.1.

  • Java , 바른 Java 는데
  • Java를 만, Java 를 바
  • , 더 practical pragmatic 는데 .
  • 만 불

1.6.2.

  • (바뿐만 )들 ,
  • , 더 ''
  • 봤냐, ''
  • (?)
  • "내 모른 1 1 " - 배 .

1.6.3.

  • 바를 더 배 .
  • 뿐만 브러리, 는 방 .
  • , mock

1.6.4.

  • 바보 는데 능

  • 부란 문..

1.6.5.

  • 루는 .
  • 동들 .
  • TDD -_-;;; TDD , .

1.6.6.

  • .
  • .
  • 보내 .
    ..

3.1. 2012 5 5


    • "무?", "?", "?"를 , 는 "무?", "?" .
    • , .
  • "?" 디를 , .

3.2. 2012 5 12

3.2.1.


3.3. 2012 5 19

  • Singleton lazy initialization .
    • synchronized modifier를 .
    • DCL Java 5 volatile modifier .
  • Serializable ObjectOutput, ObjectInput , .
    • transient modifier는 VM , Externalizable , .
  • JNI 브러리를 .
    • native modifier , 마링, .
  • 불변 .
    • 불변 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
  • 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)
  • DRY DRY Wiki

3.4.1.

  • 딱 6 뭐 배.. 는 느낌 --; 못들.. 는 뭔 는 바람 머리 ;; -
  • 는 볼 + . 들(builder , ) 는 명 . 느냐는 릿 느낌. interface, 느낌 ;;; 는 말 . 를 들 느낌 . 를 들 . 리를 는데 더 느낌. ( or 메) . . DIP Logic native API 는데 . 만. -

3.5. 2012 6 2

  • Serialize
    • Abstraction layer
  • Inner Class, Nested Class(보), Local Class, Static Inner Class
  • Iterator (java.util)
    • 는 interface
    • generics
    • Collection , , 대부 O(1), 변 thread safe
    • but
  • Iterable (java.lang)
  • Iterator Iterable
  • Comparable
    • 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

  • Reflection API
    • parameter 는 방 .
      • public field
      • getter, setter 는 field
      • @property annotation
  • Generics Reflection ObjectMapper 만들
    • 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.7. 2012 7 27

  • Annotation
    • Annotation
      • 른 Annotation 능.
      • @Target : 만들 는 Annotation . (ElementType.TYPE, ElementType.METHOD)등
      • @Retention Annotation 부. (RetentionPolicy.RUNTIME) 등
  • 브러리
    • java.beans
      • Introspector : BeanInfo 만들 .
      • BeanInfo, PropertyDescriptor getter, setter
    • apache.commons.lang
      • util . .
      • google guava는 .
      • 는 generics . static method .

3.7.1.

  • prototype 만 먼 를 먼 능들 브러리는 브러리만 . 브러리들 더 많 . Annotation 매번 는데 번 만들 . -

3.8. 2012 8 3

  • ObjectMapper (cont.)
    • Class mapping by annotation
      • Annotation on concrete class
      • Annotation on superclass
      • Initilize ObjectMapper at runtime
    • Scan annotated classes in package
    • Pros and cons to use annotations
    • Concurrency
      • java.util.concurrent(.atomic)
    • LRU cache using LinkedHashMap

3.9. 2012 8 17

  • ObjectMapper (cont.)
    • Data 부 리 - 내부 FactoryMethod . factory를 . new를 .
      • CsvData - data . 내부 .
  • Maven - (dependency) . pom.xml 보를 (repository) 브러리 .
    • m2e plugin - maven eclipse는 빌른 방 maven eclipse 는 plugin.
    • 브러리 (jar) 만들(Run as -> Maven Install) - ObjectMapper브러리 리.
      • Windows7 \.m2\groupid\artifactid jar 만들 .
      • 브러리 보를 pom.xml maven build를 .
    • 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
    • resolve dependencies from workspace projects
      • 브러리 maven install .
      • maven .
      • maven .

3.10. 2012 9 22

  • Properties
    • map .
      • 를 getProperty get .
      • getProperty는 String , get Object를 - 는 Object를 받 는데 String getProperty를 따 .
  • Reader InputStream
    • 딩 문 . 딩 문 Reader, Writer를 만들. Reader는 보를 들 .
  • JDBC -
    • java.sql.driver 를 com.mysql.jdbc.driver , java.sql.connection 를 com.mysql.jdbc.connection
      • driver connection 는 부는 abstract factory 됨 - .

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") 무 만들 .
  • DriverManager driver를 connection connection . DataSource .
  • sqlite
    • dbms dbms 내부.
    • os . 따 .

3.11. 2012 10 6

  • DataSource DriverManager
    • DataSource DriverManager (많 set )
    • DataSource
    • DriverManager 들만 .
  • Persistence 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 .
  • abstract factory factory method
    • , 메 abstract factory
    • factory method
  • abstract factory는 . 는 api .
  • PushbackInputStream
    • lookahead inputstream. input stream 번 read만 lookahead 번 read read .
    • 는 inputstream 를 inputstream 만들 .
  • strategy , command , template method
    • .
    • strategy - command
      • strategy (logic) .
        command .
    • strategy - template method
      • strategy 만들 (implementation)는 방 .
        template method 부모 만들 는 메 + .

3.13. 2012 11 3

  • ~let : 램. activity 됨. .
    • applet : (브) 램.
    • servlet : 램. 모듈 방( http request 모듈 .)럼 만들 .
    • portlet : (램 등) 램.
  • 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) .
  • DIP (depencency inversion principle) : 는 디 .
    • 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 .
  • 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.

3.14. 2012 11 10

  • jar war
    • war : src/main 는 webapp 더 내부 root .
      • src/main/java, src/main/resources war WEB-INF 더 내부 classes 내부 .
    • jar : src/main/java, src/main/resources root .
  • http servlet
  • servlet filter chain
    • request servlet filter chain 러 servlet .
    • request -> Servlet Container -> Filter -> Servlet
    • response <- Servlet Container <- Filter <- Servlet
  • servlet thread safety
    • servlet thread per request servlet .
    • filter, servlet 를 url . 따 thread-safe .
    • thread-safe 는 stateful . Servlet stateless 내부 stateful 를 들 stateful . .
    • 리 방 : 는 변 ,
      ThreadLocal . ThreadLocal 를 들 .

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 .

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 .
      • if문 - if* if_* .
        • if* - operand를 0 대부. ifeq(0 ), ifne(0 ) 등 .
        • if_* - stack operand를 . if_icmpeq( ) 등 .

  • 11 10 ? -
    • 듯 ;;; -

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:30:42
Processing time 0.1035 sec