[[TableOfContents]] == ì¼ì‹œ == * 오후 1시 ~ 오후 2시 30ë¶„ == ì°¸ê°€ìž == || ìœ ìž¬ë²” || ì°¸ì„ || || ìµœë‹¤ì¸ || ì°¸ì„ || || ì´ì§€ìˆ˜ || ì°¸ì„ || || 김용준 || ì°¸ì„ || || ê¹€ì •ë¯¼ || ì°¸ì„ || == ì§„í–‰ ìƒí™© == * ì´ì§€ìˆ˜ í•™ìš°ì˜ ë°œí‘œ * Javaì˜ ì •ì„ - Chapter 1 === 발표 ë‚´ìš© === * java를 í• ë•Œì—는 JDK(Java Development Kit)와 Eclipseê°€ 필요하다. 하지만 JDK는 필수ì´ê³ Eclipse는 다른 것으로 대체 í• ìˆ˜ 있다. * ë¹„ìœ ë¥¼ 하ìžë©´ Eclipse는 word, JDK는 Word를 PDF로 변환해주는 것, JRE는 PDF 리ë”ë¼ê³ 하면 ëœë‹¤. * hello.java로 ì €ìž¥ë˜ë©´ javacë¼ëŠ” 2byteë¼ëŠ” '''ë°”ì´íŠ¸ì½”ë“œ'''로 변환ë˜ê³ 다시 hello.class로 3byte '''반기계어'''로 변환ëœë‹¤. ê·¸ë¦¬ê³ hello.classê°€ ì¸í„°í”„리터 java로 ë³€í™˜ì´ ë˜ì–´ 결과가 나온다. * ë°”ì´íŠ¸ì½”ë“œ : 어셈블리와 비슷한 것ì´ë‹¤. java 파ì¼ì„ 코딩하면 나오는 것ì¸ë° ì¼ì¢…ì˜ ëª©ì 코드(Object Cod)와 비슷하다. JVMì— ëŒì•„가는 언어가 ë°”ì´íŠ¸ì½”ë“œì´ë‹¤. * JVM : Java Virtual Machineì˜ ì•½ìžë¡œ ì½ì€ ë‚´ìš©ì„ ìžì‹ ì˜ ê° ë©”ëª¨ë¦¬ì— ë°°ì¹˜í•˜ëŠ” ì—í• ì„ í•œë‹¤. * 왜 안드로ì´ë“œì—서 JVMì—서 달빅으로 바꾸었는가? : 모바ì¼ì— ì“°ì´ë¯€ë¡œ JAVA와 달리 메모리와 ì „ë ¥ 관리가 필요하기 ë•Œë¬¸ì— ìƒˆë¡œ ë§Œë“ ê²ƒì´ë‹¤. ê·¸ë¦¬ê³ ë‹¬ë¹…ì´ ì•ˆë“œë¡œì´ë“œ ê´€ë ¨ 최ì 화를 ë” ë§Žì´ í•´ ë” ë¹ ë¥´ë‹¤. 하지만 하드웨어 ì„±ëŠ¥ì´ ì˜¬ë¼ê°”ê³ ì „ë ¥ 관리를 하는 ë¶€ë¶„ì˜ ì„±ëŠ¥ ì „í•˜ê°€ ë¬¸ì œê°€ ë˜ì§€ 않기 ë•Œë¬¸ì— ë‹¬ë¹…ì„ ë²„ë¦° 것ì´ë‹¤. * JVM안ì—는 ìŠ¤íƒ ì˜ì—, ë™ì í• ë‹¹ 메모리 ì˜ì—, ìƒìˆ˜ì™€ 메서드 ì˜ì—, Register ì˜ì—ì´ ìžˆë‹¤. * 사실 javaì—는 ë ˆì§€ìŠ¤í„°ê°€ 없다. 다만 ì»´í“¨í„°ì— ìžˆê¸° ë•Œë¬¸ì— ë‚˜ì˜¨ 것ì´ë‹¤. * ë ˆì§€ìŠ¤í„°ëŠ” CPUì— ìžˆê³ ë‚˜ë¨¸ì§€ ì˜ì—ì€ ë©”ëª¨ë¦¬ì— ìžˆë‹¤. ë‘˜ì˜ ìœ„ì¹˜ëŠ” ì „í˜€ 다르다. * ìŠ¤íƒ ë©”ëª¨ë¦¬ëŠ” ë™ì í• ë‹¹ 메모리 ìœ„ì— ìžˆê³ ë™ì í• ë‹¹ 메모리는 ìƒìˆ˜ 메모리 ìœ„ì— ìžˆë‹¤. 그래서 스íƒì€ 위ì—서부터 쌓ì´ê³ ë™ì í• ë‹¹ 메모리는 아래서부터 쌓ì´ê²Œ ëœë‹¤. 여기서 ìŠ¤íƒ ë©”ëª¨ë¦¬ì™€ ë™ì í• ë‹¹ 메모리가 메모리 ì „ì²´ ì–‘ì„ ë„˜ì–´ì„œë©´ í”히 ë§í•˜ëŠ” 블루 스í¬ë¦°ì´ë‚˜ ìŠ¤íƒ ì˜¤ë²„í”Œë¡œìš°ê°€ 뜨게 ëœë‹¤. ìƒìˆ˜ì™€ 메서드는 스태틱한 메모리ì´ê¸°ì— ìœ„ì— ë™ì ì¸ ë™ì í• ë‹¹ 메모리가 ì¡´ìž¬í•´ë„ ìƒê´€ 없다. * ìŠ¤íƒ ì˜ì—ì€ ì§€ì—변수가 ì €ìž¥ ë˜ëŠ” ê³³. * ë™ì í• ë‹¹ 메모리 ì˜ì—ì€ Garbage Collection heapìœ¼ë¡œë„ ë¶ˆë¦¬ë©° ë°°ì—´ê°™ì€ ì—°ì† ê³µê°„ì´ë‚˜ í´ëž˜ìŠ¤ì— í¬í•¨ëœ 멤버를 í• ë‹¹í•˜ëŠ” ì˜ì—ì´ë‹¤. Garbage Collectorì— ì˜í•´ 관리ëœë‹¤. * ìƒìˆ˜ì™€ 메서드 ì˜ì—(Constant&Code Segment)ì€ ìƒìˆ˜ë‚˜ ì¶”ìƒí™” 형ì‹ì„ 지닌 메서드(함수)를 ì €ìž¥í•œë‹¤. * JAVAì˜ íŠ¹ì§• * ë‚´ë¶€ì í¬ì¸í„° 사용 * ì´ì‹ì„±ì´ 높다. ê°™ì€ JVMì´ ì„¤ì¹˜ë˜ì–´ 있으면 ëª¨ë‘ ëŒì•„ 간다. * ê°ì²´ì§€í–¥ì 언어ì´ë‹¤. * java 프로그래ë°ì˜ 코딩 규칙 * package>import>class 순서로 작성ëœë‹¤. * pacakge는한 파ì¼ì— 한 번만 사용 í• ìˆ˜ 있다. * import는 #include와 같다. import는 여러 í´ëž˜ìŠ¤ì— í•œ 번만 사용 ë 수 있으며 java.lang ë’¤ì— ë¶™ì€ í´ëž˜ìŠ¤ê°€ 많으므로 Import.java.lang.*로 줄여서 사용한다. * 사실 import를 하지 ì•Šê³ ë’¤ì— packageëª…ì„ ë‹¤ 붙여서 ì“°ë©´ 쓸 수 있다. 하지만 ì´ê²Œ 귀찮아서 import를 쓰는 것ì´ë‹¤. * Cì˜ #include는 복붙ì´ë¼ë©´ javaì˜ import는 참조ì´ë‹¤. 그래서 C는 컴파ì¼ì„ í•˜ê³ include를 한 ê²ƒì„ ë°”ê¿”ë„ ì´ë¯¸ 올ë¼ê°€ 있어서 바뀌지 않으나 java는 import를 한 ê²ƒì„ ë°”ê¾¸ë©´ 참조ì´ê¸° ë•Œë¬¸ì— ë°”ë€Œì–´ì„œ ë‚´ìš©ì´ ë“¤ì–´ê°„ë‹¤. * java.lang는 sunì—서 미리 기본ì 으로 í´ëž˜ìФ ì•ˆì— import í•´ë‘었기 ë•Œë¬¸ì— java.lang ë‚´ì˜ í´ëž˜ìŠ¤ì— í•œí•´ì„œëŠ” import를 ìƒëžµ í• ìˆ˜ 있다. * class는 여러 개를 사용 í• ìˆ˜ 있으나 publicë¼ëŠ” 예약어를 ì‚¬ìš©í• ìˆ˜ 있는 í´ëž˜ìŠ¤ëŠ” 하나 ë¿ì´ë‹¤. ê·¸ë¦¬ê³ ì´ public class는 파ì¼ëª…ê³¼ 완벽히 ë™ì¼í•œ ì´ë¦„ì´ì–´ì•¼ 한다. * ëª¨ë“ í´ëž˜ìŠ¤ê°€ publicì´ë¼ëŠ” ì´ë¦„ì„ ì‚¬ìš©í•˜ì§€ ì•Šì•„ë„ ìƒê´€ 없지만 쓴다면 ì˜¤ì§ 1개만 ì¨ì•¼ 한다. * public static void main(String[] ar). ì´ê²ƒì€ ì‹¤í–‰ì˜ ì£¼ì²´ê°€ ë˜ëŠ” main() 메서드를 찾게 ëœë‹¤. * arì€ ì‚¬ìš©ìž ì •ì˜ ëª…ì¹ì´ë©° 대소문ìžì™€ 순서를 준수해야 하지만 []와 arì˜ ìˆœì„œëŠ” ë°”ë€Œì–´ë„ ìƒê´€ 없다. * ì‚¬ìš©ìž ì •ì˜ ëª…ì¹ì´ 사용 ë˜ëŠ” ê³³ : í´ë”(package)ì˜ ì´ë¦„, í´ëž˜ìŠ¤ì˜ ì´ë¦„, ë©”ì„œë“œì˜ ì´ë¦„, 필드(Field)ì˜ ì´ë¦„ * class, method(함수), field(변수)ì˜ ê²½ìš° 첫 글ìžëŠ” $, _, ì˜ë¬¸ 대,소문ìžì—¬ì•¼ 한다. * ê¸€ìž ìˆ˜ì—는 ì œí•œì´ ì—†ë‹¤. * 공백문ìžëŠ” í¬í•¨í• 수 없다. * 특수문ìžëŠ” ì‚¬ìš©í• ìˆ˜ 없다. * 숫ìžëŠ” 첫글ìžë§Œ 아니면 사용 í• ìˆ˜ 있다. * 예약어는 ì‚¬ìš©í• ìˆ˜ 없다. * 알아ë‘ë©´ ìœ ìš©í•œ 코딩 규칙 * class : 첫 글ìžëŠ” $, _, 대문ìžë¥¼ 사용하ìž. 소문ìžë¡œ 시작하는 í´ëž˜ìŠ¤ëŠ” 현재까지 sunì—서 ì œê³µë˜ëŠ” 문서는 없다. * method(함수) : 첫 글ìžëŠ” $, _, 소문ìžë¥¼ 사용하ìž. 대문ìžë¡œ 시작하는 method는 현재까지 sunì—서 ì œê³µë˜ëŠ” 문서는 없다. * Field(변수) : ì¼ë°˜ì 으로 ì „ë¶€ 대문ìžì¸ 경우는 static final 필드(Cì˜ const)ì´ê³ 나머지는 소문ìžì´ë‹¤. 기본ì 으로는 소문ìžë¡œ ì‹œìž‘í•˜ê³ ë‚˜ë¨¸ì§€ëŠ” 낙타모형으로 쓴다. * í•©ì„±ì–´ì˜ ì²«ê¸€ìžëŠ” 대문ìžë¡œ 한다. Class, Method, Field 모ë‘ì— í•´ë‹¹ë˜ë©° 예를 들어 HelloJavaë¼ëŠ” 경우 J를 대문ìžë¡œ 한 ê²ƒì´ ê·¸ê²ƒì´ë‹¤. == ë‹¤ìŒ ì§„í–‰ == * Chapter 2 ~ Chapter 4 * 변수, ì—°ì‚°ìž, 조건문과 반복문 * 발표 : [김용준] == ê³¼ì œ == * JDK와 Eclipse를 ê¹”ê³ , Hello World! 를 í™”ë©´ì— ì¶œë ¥í•˜ëŠ” 프로그램 만들어보기 == 후기 == * [김용준] = public static void main(String[] {})ì—서 {}ì•ˆì— ê·¸ëƒ¥ 아무 ì˜ì–´ë‚˜ 넣으면 ë¨. 무슨 ì˜ë¯¸ê°€ 있는지 확ì¸í• 필요가 있ìŒ.