Java Programming Environment
±è ¿µÀÏ
´ëÀü ±¤¿ª½Ã À¯¼º±¸ ±Ãµ¿ 373-1
Çѱ¹°úÇбâ¼ú¿ø Àü»êÇаú
E-mail:
cutty@monami.kaist.ac.kr
URL : http://elf.kaist.ac.kr/~cutty
- Abstract:
- º» ³»¿ëÀº 2nd WWW WorkshopÀÇ Technical SessionÀÇ Java¿¡ °ü·ÃµÈ HTML ÈÀÏÀÔ´Ï´Ù.
- Keywords:
- WWW, Java, HotJava, Workshop
- Java programming environmentÀÇ ±¸Á¶
- 1.1 JavaÀÇ architecture¿Í °³³ä
- 1.2 Dynamic features of Java
- 1.3 HotJava¶õ ¹«¾ùÀΰ¡?
- 1.4 HotJava¿Í WWW
- 1.5 Java application vs Applet
|
- Programming Applet
- 2.1 Including an Applet into your page
- 2.2 Class Applet
- 2.3 Simple Applet Codes
|
- JDK
- 3.1 JDK¶õ ¹«¾ùÀΰ¡?
- 3.2 JDK¿¡¼ ´Þ¶óÁø Á¡µé
- 3.3 AppletViewer
- 3.4 debugger
|
- Reference Pages
Java¶õ Sun Microsystems¿¡¼ °³¹ßÇÑ network based programming
environmentÀÔ´Ï´Ù. ÇöÀç 1.0 alpha-3 version¿¡¼ ¸· 1.0 pre-beta versionÀÌ
releaseµÇ¾ú½À´Ï´Ù.
HotJava¶õ Java·Î Â¥¿©Áø ÀÏÁ¾ÀÇ WWW browserÀ¸·Î Java AppletÀ̶ó´Â
Dynamic Content¸¦ web page»ó¿¡¼ ½ÇÇà½Ãų ¼ö Àִ Ư¡À» °¡Áö°í
ÀÖ½À´Ï´Ù.
1.1 JavaÀÇ architecture¿Í °³³ä
Java Programming Environment´Â Java¶ó´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ »ç¿ëÇÏ¿©
ÇÁ·Î±×·¥À» ÀÛ¼ºÇϴµ¥ Á¦°øµÇ¾îÁö´Â toolµéÀ» ¸»ÇÕ´Ï´Ù.
Java´Â °³·«ÀûÀ¸·Î ´ÙÀ½°ú °°Àº architecture¸¦ Áö´Ï°í ÀÖ¾î¼ ´ÙÀ½¿¡
¼³¸íÇÒ ¿©·¯°¡Áö Ư¡µéÀ» Áö´Ï°Ô µÇ°í ÀÌ·¯ÇÑ Æ¯Â¡µéÀº º¯ÈÇϰí ÀÖ´Â
Networked Environment¿¡¼ Java°¡ Á¶¸íÀ» ¹ÞÀ» ¼ö ¹Û¿¡ ¾ø´Â ÀÌÀ¯°¡ µË´Ï´Ù.
±×¸² 1. Java archietecture
Java´Â NetworkÀ̶ó´Â ȯ°æÀ» ¿°µÎ¿¡ µÎ°í ´ÙÀ½°ú °°Àº Ư¡À» °¡Áöµµ·Ï
µðÀÚÀÎµÈ ¾ð¾îÀÔ´Ï´Ù.
Simple
- Java´Â C++°ú ¸Å¿ì ±× syntax°¡ À¯»çÇÕ´Ï´Ù. µû¶ó¼ ±âÁ¸ÀÇ ÇÁ·Î±×·¡¸Ó°¡
º°´Ù¸¥ ³ë·Â ¾øÀÌ Java¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Java¿¡´Â auto garbage
collector°¡ ÀÖ¾î¼ ÇÁ·Î±×·¡¸Ó´Â ¸Þ¸ð¸® ¹®Á¦¿¡ °í¹ÎÇÒ Çʿ䰡 ¾ø½À´Ï´Ù.
±×¸®°í Java´Â ±× size°¡ ÀÛ½À´Ï´Ù. (±âº» interpreter¿Í class´Â ¾à 40KB,
¿©±â¿¡ stand library¿Í thread ±â´ÉÀ» ´õÇÏ¸é ¾à 175KB°¡ ´õÇØÁý´Ï´Ù.)
Object-Oriented
Distributed
- Java¿¡¼´Â HTTP³ª FTP¿Í °°Àº protocol·Î ÅëÇØ URL·Î ÁöÁ¤µÇ´Â remote
object¸¦ ¸¶Ä¡ local file system¿¡ ÀÖ´Â µíÀÌ accessÇÒ ¼ö ÀÖ½À´Ï´Ù.
Interpreted
- Java·Î Â¥¿©Áø ÇÁ·Î±×·¥Àº bytecode¶ó´Â Áß°£ code·Î compileÀÌ
µÇ°í, ÀÌ code´Â Java Interpreter¿¡¼ ½ÇÇà µË´Ï´Ù.
filename.java´Â ±× ¾È¿¡ Æ÷ÇԵǾî ÀÖ´Â classº°·Î classname.class·Î
ÄÄÆÄÀÏÀÌ µË´Ï´Ù. ±×¸®°í AppletÀº ¹Ù·Î web page¿¡ Æ÷ÇÔµÈ ½ÇÇà °¡´ÉÇÑ
classÀÔ´Ï´Ù.
Architecture Neutral
- µû¶ó¼ Java Interpreter´Â ÇϳªÀÇ °¡»ó ±â°è·Î º¼ ¼ö ÀÖ°í, bytecode´Â
Java Interpreter°¡ ¼³Ä¡µÈ ¾î¶² platform¿¡¼µµ ½ÇÇàµÉ ¼ö ÀÖ½À´Ï´Ù.
MultiThreaded
- ¶ÇÇϳªÀÇ Áß¿äÇÑ JavaÀÇ Æ¯Â¡Àº MultiThreadingÀÌ ÇÁ·Î±×·¥ ¾ð¾î ´Ü°è¿¡¼
Áö¿øÀÌ µÈ´Ù´Â °ÍÀÔ´Ï´Ù. À̸¦ »ç¿ëÇÏ¸é º¸´Ù È¿À²ÀûÀÎ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö
ÀÖ½À´Ï´Ù.
Dynamic
- JavaÀÇ Class´Â runtime-bindingÀÌ °¡´ÉÇÏ°í µ¿½Ã¿¡ runtime¿¡ instanceÀÇ
typeÀ» ¾Ë ¼ö°¡ ÀÖ½À´Ï´Ù. µû¶ó¼ module »çÀÌÀÇ °£¼·ÀÌ ÃÖ¼ÒÈµÇ°Ô µË´Ï´Ù..
Robust, Secure, Portable, High-Performance
1.2 Dynamic features of Java
JavaÀÇ dynamicÇÑ ¼º°ÝÀº ´ÙÀ½°ú °°Àº ÀÏÀ» °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù.
Java·Î ÀÛ¼ºµÈ ÇÁ·Î±×·¥Àº distributed environment¿¡¼ server·ÎºÎÅÍ
library¿¡¼ programÀÇ executable code±îÁöÀÇ ´Ù¾çÇÑ objectµéÀ»
accessÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ program¿¡¼ ÂüÁ¶µÇ´Â ¸ðµç objectµéÀº
memory address°¡ ¾Æ´Ñ, symbolic handleÀ» »ç¿ëÇØ¼ ÂüÁ¶µÇ¹Ç·Î,
dynamic run-time budingÀÌ Áö¿øµÈ´Ù.
1.3 HotJava¶õ ¹«¾ùÀΰ¡?
HotJava´Â Java·Î Â¥¿©Áø Web browserÀÔ´Ï´Ù. Java´Â HTML ¿Ü¿¡
Java·Î ¸¸µé¾îÁø AppletÀ» ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
Java AppletÀº »ç¿îµå¿Í ¾Ö´Ï¸ÞÀ̼ǰú °°Àº Dynamic Content¸¦ Æ÷ÇÔÇÏ´Â »ýµ¿°¨ ÀÖ´Â
web page¸¦ ±¸¼ºÇÒ ¼ö ÀÖ°Ô ÇÏ¿©ÁÝ´Ï´Ù. JavaÀÇ dynamicÇÑ feature´Â networkÀ» ÅëÇØ¼
¾î¶² object¶óµµ accessÇÒ ¼ö ÀÖ°Ô ÇØÁֹǷΠ»ó´çÈ÷ À¯¿¬ÇÑ programÀ» ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
±×¸² 2. java ÀÇ dynamic loading
À§ÀÇ ±×¸²Àº HotJava°¡ webÀ» browsingÇÏ´Â µµÁß¿¡ ó¸®ÇÒ ¼ö ¾ø´Â Object¸¦ ¸¸³µÀ» °æ¿ì
¾î¶»°Ô À̸¦ ó¸®ÇÏ´Â °¡¸¦ º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù. ¸¸ÀÏ server°¡ ÀÌ object¸¦ ó¸®ÇÒ ¼ö
ÀÖ´Â routineÀÇ À§Ä¡¸¦ ¾Ë°í ÀÖ´Ù¸é, HotJava´Â ±× resource¸¦ accessÇØ¼ ±× object¸¦
runtime¿¡ handlingÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ´Ù¸¥ browserÀÇ °æ¿ì¿¡´Â ±× object¸¦ ó¸®ÇÒ
¼ö ÀÖ´Â routineÀ» ÀÛ¼ºÇÑ ´ÙÀ½ ´Ù½Ã compileÇÏ¿©¾ß ÇϹǷΠÀÌ·± hard-coded ȯ°æº¸´Ù
ÈξÀ À¯¿¬ÇÏ°Ô È®ÀåÀÌ °¡´ÉÇÑ °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù.
±×¸®°í ¾ÕÀ¸·Î´Â programÀÇ installÀÇ °³³äµµ »ó´çÈ÷ ¸¹ÀÌ ´Þ¶óÁö°Ô µÉ °ÍÀÔ´Ï´Ù. Java¸¦
±â¹ÝÀ¸·Î ÇÑ´Ù¸é, ±âº»ÀûÀ¸·Î compatibilityÀÇ ¹®Á¦°¡ »ç¶óÁö°Ô µÇ°í, »ç¿ëÀÚ´Â ´ÜÁö
web page¸¦ browsingÇÏ´Â °ÍÀ¸·Î install ¾øÀÌ ÇÁ·Î±×·¥À» »ç¿ëÇÒ ¼ö ÀÖ°Ô µÇ´Â °ÍÀÔ´Ï´Ù.
1.4 HotJava°¡ WWW »ó¿¡¼ °¡Áö´Â °Á¡
Á¤ÀûÀÎ web page¿¡ »ýµ¿°¨ ³ÑÄ¡´Â ¾Ö´Ï¸ÞÀ̼ǰú »ç¿îµå¸¦ °çµéÀÏ
¼ö ÀÖÀ¸¸ç, Dynamic feature´Â º¯ÈÇϴ ȯ°æ¿¡ À¯¿¬ÇÏ°Ô ÀûÀÀÇØ
³ª°¡´Â HotJavaÀÇ °Á¡À» º¸¿©ÁÝ´Ï´Ù.
±×¸² 3. http://www.sun.com
À§ÀÇ ±×¸²Àº Sun MicrosystemsÀÇ web pageÀÇ ¸ð½ÀÀÔ´Ï´Ù. ¸¸ÀÏ HotJava°¡ installµÇ¾î ÀÖ´Ù¸é,
http://www.sun.comÀ» ¹æ¹®ÇØ º¸½Ê½Ã¿À. ±×·¯¸é ¾ó¸¶³ª
´Ù¾çÇÑ interactivity¸¦ Java°¡ Á¦°øÇÏ´ÂÁö ¾Ë ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
1.5 Java application°ú Applet
Java¸¦ ÀÌ¿ëÇÏ¸é µÎ°¡Áö ºÎ·ùÀÇ ÀÀ¿ëÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö Àִµ¥
À̵éÀÌ ¹Ù·Î Java application°ú Java AppletÀÔ´Ï´Ù.
1.5.1 Java Application
Java ApplicationÀº Java·Î Â¥¿©Áø ÀÀ¿ëÇÁ·Î±×·¥À̸ç, Java runtime
SystemÀÌ ÀÖ´Â ¾î¶² platform¿¡¼µµ ½ÇÇàµÉ ¼ö ÀÖ½À´Ï´Ù. ±âº»ÀûÀ¸·Î
network¿¡ ºÐ»êµÇ¾î ÀÖ´Â ¿©·¯°¡Áö ´Ù¾çÇÑ ÀÚ¿øÀ» accessÇÒ ¼ö ÀÖÀ¸¸ç
½ÉÁö¾î, remote host¿¡ ÀÖ´Â library ±îÁö accessÇÏ¿© »ç¿ëÇÒ ¼ö
ÀÖ½À´Ï´Ù.
1.5.2 Java Applet
Java AppletÀº web page¿¡ include µÈ Java ÀÀ¿ëÇÁ·Î±×·¥À» ¸»ÇÕ´Ï´Ù.
AppletÀ» web-page¿¡ include ÇÏ´Â ¹æ¹ý°ú ÇÁ·Î±×·¥¿¡ ´ëÇÑ parameter
󸮸¦ ¼³¸íÇϰí, Applet class¿¡ °üÇÑ ¼³¸í°ú À̸¦ ÀÀ¿ëÇÑ °£´ÜÇÑ
Applet programÀÇ source code¸¦ ¿¹·Î µé¾î ¼³¸íÇÕ´Ï´Ù.
2.1 Including an Applet into your page
web page¿¡ AppletÀ» Áý¾î³Ö´Â ÀÏÀº IMG ¸¦ Áý¾î ³Ö´Â °Í°ú
±âº»ÀûÀ¸·Î °°½À´Ï´Ù.
±×·±µ¥ alpha-3 release¿Í pre-beta release¿¡¼ Â÷À̰¡ ÀÖ½À´Ï´Ù.
½ÇÀº pre-beta release°¡ ³ª¿À¸é¼ SGMLÀ» µû¸£µµ·Ï Çϱâ À§Çؼ
App tag´Â Applet tag·Î ¹Ù²î¾ú½À´Ï´Ù.
Applet tag¿¡¼ ´Þ¶óÁø Á¡ µÎ°¡Áö´Â ´ÙÀ½°ú °°½À´Ï´Ù.
- appletÀÇ attribute¸¦ Param tag¸¦ ½á¼ ÁöÁ¤ÇÕ´Ï´Ù.
- Applet tag¸¦ ÀÌÇØÇÏÁö ¸øÇÏ´Â ºê¶ó¿ìÁ®°¡ ´ë½Å text¸¦ Ç¥½ÃÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù.
|
| alpha-3 release
| pre-beta release |
| Çü½Ä
| < APP SRC="path" CLASS="classname" AppletAttribute=... >
| < APPLET CODEBASE="path/classes" CODE="classname.class"> < PARAM NAME=attr-name VALUE=attr-value>...< /APPLET> |
| ¿¹
| < APP CLASS="myclass" width=200 height=100 >
| < APPLET CODEBASE="classes" CODE="myclass.class" width=200 height=100> < BLOCKQUOTE> < hr> it can be seen in a java enabled browser only. < hr> < /BLOCKQUOTE> < /APPLET> |
alpha-3 release¿¡ ÇØ´çÇÏ´Â appletÀ» page¿¡ Æ÷ÇÔ½ÃŰ´Â ¹æ¹ýÀº
´ÙÀ½
À» Âü°íÇϽʽÿÀ.
2.2 Class Applet
¾Õ¼ ¾ð±ÞÇÑ ¹Ù¿Í °°ÀÌ, filename.java¶ó´Â Java ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇϸé filename.java ¾È¿¡¼
Á¤ÀÇµÈ classµé¿¡ ÇØ´çÇÏ´Â classname1.class, classname2.class...ÀÇ Bytecode°¡ »ý¼ºµÇ¸ç
ÀÌ class¸¦ web page¿¡ Applet tag¸¦ »ç¿ëÇÏ¿© Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.
Java AppletÀº Class Applet ÀÇ subclass·Î¼ ±¸ÇöµË´Ï´Ù. ÇöÀç HotJava¿¡¼ ½ÇÇà°¡´ÉÇÑ
Java API(alpha-3 release)¿Í JDK(pre-beta release)¿¡¼ Á¦¾ÈµÈ API¿¡´Â ¾à°£ÀÇ Â÷À̰¡ ÀÖÁö¸¸, ÀÏ´ÜÀº
alpha-3 release¿¡ ´ëÇØ ¼³¸íÇϰڽÀ´Ï´Ù.
±âº»ÀûÀ¸·Î Applet class´Â ´ÙÀ½ÀÇ Áß¿äÇÑ method(ÁÖ¼®: C++ÀÇ member function)¸¦ °¡Áö°í ÀÖ½À´Ï´Ù.
init()
- called just after the applet is created, this method is useful for resizing the applet's
display area, downloading resources, getting attribute values getting fonts and colors and
so on.
start()
- this method typically performs(or starts a thread to perform) the real work of the applet.
By default, this method is called every time the applet's page is visited, whether or not
the applet is visible. However, the user can specify that applet execution be delayed until
the user requests it.
paint()
- called automatically every time the applet's screen display needs to be drawn -- such as
when the applet's first becomes visible, when it's scrolled, or when the applet requests
to be repainted -- this method should simply draw the applet's representation onscreen.
stop()
- called when the user leaves the applet's page, this method should stop the applet's execution.
destroy()
- called when the applet is discarded(such as when the applet is reloaded, which requires
it to be unloaded first), this method should release the applet's resources.
±×¸®°í AppletÀÇ subclass·Î ±¸ÇöµÈ class(½ÇÁ¦ÀÇ ÇÁ·Î±×·¥)¿¡¼ method°¡ ºÒ·ÁÁö´Â ¼ø¼´Â ´ÙÀ½°ú °°½À´Ï´Ù.
- ¸ÇóÀ½¿¡´Â Applet subclassÀÇ constructor¿Í classÀÇ static statement°¡ ½ÇÇàµË´Ï´Ù.
- init() ÀÌ ½ÇÇàµÇ¸é¼ Applet¿¡ ÇÊ¿äÇÑ ¿©·¯°¡Áö resouce¸¦ ÃʱâȽÃŵ´Ï´Ù.
- appletÀÇ programÀÌ ½ÃÀÛµÇ¸é¼ start()°¡ ½ÇÇàµË´Ï´Ù.
- appletÀÌ exposeµÇ´Â °æ¿ì repaint()°¡ ÀÚµ¿À¸·Î ½ÇÇàµÇ¸é¼ paint()°¡ ½ÇÇàµË´Ï´Ù. ´Ü
paint()´Â ÇÁ·Î±×·¥¿¡¼ Á÷Á¢ ºÎ¸¦ ¼ö´Â ¾ø°í repaint()¸¦ ÅëÇØ È£ÃâÇÕ´Ï´Ù.
- applet page¸¦ ¶°³ª´Â °æ¿ì stop()ÀÌ ½ÇÇàµË´Ï´Ù.
Class Applet ¿¡ °üÇÑ
API manual link¸¦ ÂüÁ¶ÇϽʽÿÀ.
2.3 Simple Applet Codes
°£´ÜÇÑ Applet code¸¦ ¿¹·Î µé¾î ¼³¸íÇϰí ÀÌ Java code¸¦ compileÇÏ´Â ¹ý¿¡ ´ëÇØ
¼³¸íÇϰڽÀ´Ï´Ù.
Java·Î Â¥¿©Áø ÇÁ·Î±×·¥Àº javacÀ¸·Î compileÇÕ´Ï´Ù. ´Ü Java source code´Â *.java·Î
³¡³ª¾ß ÇÕ´Ï´Ù. ±×¸®°í source code ³»¿¡ Á¤ÀÇµÈ classº°·Î classname.classÀÇ fileÀÌ »ý¼ºµË´Ï´Ù.
ÀÌ »ý¼ºµÈ *.class fileÀº Bytecode Çü½ÄÀ¸·Î µÇ¾îÀÖ°í, browsingÇÏ´Â »ç¿ëÀÚÀÇ Java runtime systemÀÇ
interpreter¾Ö¼ ½ÇÇàµÇ°Ô µË´Ï´Ù. compile ¹æ¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù.
javac [-options] filename.java
HotJava´Â Ưº°È÷ ÁöÁ¤ÇÏÁö ¾Ê´Â ÇÑ, AppletÀ» Æ÷ÇÔÇϰí ÀÖ´Â page°¡ ÀÖ´Â path¿¡¼
path/classesÀ̶ó´Â directory¿¡¼ appletname.class¸¦ ã½À´Ï´Ù.(½ÇÀº Java°¡ installµÇ¾î
ÀÖ´Â system directory¿¡¼ °°Àº À̸§ÀÇ class fileÀ» ¸ÕÀú ã°í³ª¼ ÇöÀç base directoryÀÇ
subdirectory·Î¼ classes¸¦ ã½À´Ï´Ù.)
ÀÌÁ¦ °£´ÜÇÑ HelloWorld.java¶ó´Â source code¸¦ »ìÆìº¸¸é,
import browser.Applet;
import awt.Graphics;
class HelloWorld extends Applet {
public void init() {
resize(150, 25);
}
public void paint(Graphics g) {
g.drawString("Hello world!", 50, 25);
}
}
ÀÌ ÇÁ·Î±×·¥Àº applet page¿¡ "Hellow World!"¶ó´Â stringÀ» Âï½À´Ï´Ù.
2.4 Syntax
ÇÁ·Î±×·¥ÀÇ ±¸Á¶¸¦ º¸¸é,
- package ¼±¾ðºÎºÐ
- import pkg´Â Java°¡ Áö¿øÇÏ´Â library package¸¦ importÇÏ´Â ºÎºÐÀÔ´Ï´Ù.
Java¿¡¼´Â library¸¦ class hierachy¿¡ µû¶ó ÇϳªÇϳªÀÇ class¿¡¼ Àüü Java system
library¸¦ ´Ù importÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
- class ¼±¾ðºÎºÐ
- ¿©±â¼´Â Class AppletÀÇ subclassÀÎ HelloWorld¶ó´Â class¸¦ Á¤ÀÇ Çϰí
ÀÖ½À´Ï´Ù. À̿ܿ¡µµ ÇÁ·Î±×·¥¿¡¼ ÇÊ¿äÇÑ class¸¦ »ç¿ëÀÚ°¡ Á¤ÀÇÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
Java¿¡¼´Â C++°ú ´Ù¸£°Ô Class¿Í ÇÁ·Î±×·¥ÀÇ control flow°¡ ºÐ¸®µÇ¾î ÀÖÁö ¾Ê½À´Ï´Ù. µû¶ó¼
C/C++¿¡¼ »ç¿ëÇÏ´Â main()À̶ó´Â method°¡ ¾ø½À´Ï´Ù. À̿ܿ¡µµ ¸î°¡Áö C/C++°ú ´Ù¸¥ Á¡À»
º¸¸é, Àü¿ªº¯¼öÀÇ °³³äÀÌ ¾ø°í, preprocessingÀ» ÇÏÁö ¾Ê±â ¶§¹®¿¡ #defineÀ̳ª #include¿Í °°Àº
feature°¡ Áö¿øµÇÁö ¾Ê½À´Ï´Ù. ±×¸®°í ÇѰ¡Áö, Java¿¡¼´Â pointer°¡ ¾Æ¿¹ ¾ø½À´Ï´Ù.
2.5 Class
2.6 Interface
Java´Â OOPÀÌÁö¸¸ multiple inheritance°¡ Áö¿øÀÌ µÇÁö ¾Ê´Âµ¥, ÀÌ¿Í °°Àº ±â´ÉÀ» Áö¿øÇϱâ À§ÇØ
Interface¶ó´Â ÀÏÁ¾ÀÇ virtual method¸¦ Áö¿øÇÕ´Ï´Ù. °¢ class´Â ¿©·¯°¡Áö Interface¸¦ implementÇÒ
¼ö ÀÖ°í, À̸¦ ÅëÇØ multiple inheritance¿Í °°Àº È¿°ú¸¦ ³¾ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ¼·Î ´Ù¸¥
superclass¸¦ °¡Áö´Â µÎ class°¡ µ¿ÀÏÇÑ interface¸¦ implementÇÏ´Â °ÍÀ» »ý°¢Çغ¸¸é ¾Ë ¼ö ÀÖ½À´Ï´Ù.
2.7 Package
2.8 Thread
Java¿¡¼´Â language level¿¡¼ multithreadingÀÌ Áö¿øµË´Ï´Ù.
Thread¸¦ »ç¿ëÇÏ´Â ¹æ¹ý¿¡´Â ´ÙÀ½ÀÇ µÎ °¡Áö°¡ ÀÖ½À´Ï´Ù.
release µÈ JDK¿¡ °üÇÑ ¼³¸íÀ» °£´ÜÈ÷ ÇÕ´Ï´Ù. ÀÌÀü Alpha 3¹öÀü¿¡¼
´Þ¶óÁø ºÎºÐ°ú JDK¸¦ ÀÌ¿ëÇÑ ÇÁ·Î±×·¡¹Ö°ú µð¹ö±ë¿¡ ´ëÇØ °£´ÜÈ÷
¼³¸íÇÕ´Ï´Ù.
3.1 JDK¶õ ¹«¾ùÀΰ¡?
JDK´Â Java Developers KitÀÇ ¾àÀÚ·Î ÇöÀç±îÁö´Â pre-beta release·Î
Java-enabled Browser¸¦ À§ÇÑ appletÀ» °³¹ßÇϴµ¥ µµ¿òÀ» ÁÖ·Á´Â
¸ñÀûÀ» °¡Áö°í ÀÖ½À´Ï´Ù. ÀÌÀüÀÇ alpha-3 release¿¡¼ º¸´Ù °³¼±µÈ
API¸¦ Áö¿øÇϸç, ¾à°£ÀÇ bugµéµµ ÇØ°áÇß½À´Ï´Ù.
JDK´Â ´ÙÀ½ÀÇ component·Î ±¸¼ºµË´Ï´Ù.
- Java Applet Upgrade Utility
- »õ·Î¿î API·Î ÀÌÀüÀÇ code¸¦ º¯È¯ÇØÁÖ´Â utilityÀÔ´Ï´Ù. ±×·¯³ª
±×¸® ¸¸Á·½º·¯¿î ¼öÁØÀº ¾Æ´Ï°í, ¾ÆÁ÷ ¼öÀÛ¾÷ÀÌ ÇÊ¿äÇÑ ºÎºÐÀÌ
ÀÖ½À´Ï´Ù.
- Java Applet Viewer
- ÀÛ¼ºÇÑ appletÀ» testÇÏ°í ½ÇÇà½Ã۱â À§ÇØ »õ·Ó°Ô Ãß°¡µÈ
applet viewerÀÔ´Ï´Ù. HotJava¿Í´Â ´Ù¸£°Ô web page browser
±â´ÉÀº ¾ø½À´Ï´Ù.
- Java Debugger API and Prototype Debugger
- java.tools.debug API¿Í, ÀÌ API¸¦ »ç¿ëÇÏ´Â command-line
¹æ½ÄÀÇ ÃÖÃÊÀÇ debuggerÀÔ´Ï´Ù.
- Java Compiler
- Java Interpreter
3.2 JDK¿¡¼ ´Þ¶óÁø °Í
ÀÌÀüÀÇ Alpha-3 release¿¡¼ »ó´çÈ÷ ¸¹Àº ºÎºÐÀÌ °³¼±(?)µÇ¾ú´Âµ¥, ´Þ¶óÁø
³»¿ëÀº ´ÙÀ½ÀÇ ¼¼°¡Áö·Î ¿ä¾àÇÒ ¼ö ÀÖ½À´Ï´Ù.
Java Tool changes
- Applet Viewer¿Í Java Debugger°¡ Ãß°¡ µÇ¾ú½À´Ï´Ù.
- interpreterÀÇ optionÀÇ ±â´ÉÀÌ Á» ´Þ¶óÁ³½À´Ï´Ù.
API changes
- classÀÇ hierarchyÀÇ »ó´çºÎºÐ°ú, API°¡ »ó´çÈ÷ ¸¹ÀÌ °³¼±(?)µÇ¾ú½À´Ï´Ù.
°¡Àå ´«¿¡ ¶ç´Â º¯È´Â AppletÀÌ panelÀÇ subclass°¡ µÇ¾ú´Ù´Â Á¡°ú,
AWT package°¡ Á»´õ ±ò²ûÇØÁ³´Ù´Âµ¥ ÀÖ½À´Ï´Ù.
Java Language Changes
- »õ·Î¿î operator¿Í reserved word°¡ Ãß°¡ µÇ¾úÀ¸¸ç, ±×¿Ü¿¡ ÀÌÀü¿¡
ÀÖ´ø operator¿¡ Á¦¾àÀÌ °¡ÇØÁö°Å³ª ÇÏ´Â º¯È°¡ ÀÖ½À´Ï´Ù.
Changes since the last release¸¦ ÂüÁ¶ÇϽʽÿÀ.
3.3 AppletViewerÀÇ »ç¿ë¹ý
appletviewer ´Â WWW browserÀÇ ¹üÁÖ¿¡¼ ¹þ¾î³ª applet¸¸À» ½ÇÇà½Ãų ¼ö
ÀÖµµ·Ï ÇÏ¿©ÁÝ´Ï´Ù. »ç½Ç ¾ÆÁ÷±îÁö´Â pre-beta release¸¦ Áö¿øÇÏ´Â HotJava°¡ ¾øÀ¸¹Ç·Î
JDK¸¦ »ç¿ëÇÏ¿© ÀÛ¼ºÇÑ Applet programÀº appletviewerÀ¸·Î ¹Û¿¡ ½ÇÇà ½Ãų ¼ö
¾øÁö¸¸, Á¶¸¸°£ Netscape ´ÙÀ½ ¹öÀü¿¡¼ Java-enabled browser¸¦ ³»³õ¿ï °ÍÀÔ´Ï´Ù.
»ç¿ë¹ýÀº ¾ÆÁÖ °£´ÜÇÕ´Ï´Ù.
appletviewer [option] URLS...
±×¸² 4. appletviewerÀÇ ½ÇÇà¸ð½À
3.4 debuggerÀÇ »ç¿ë¹ý
JDK¿¡¼ Á¦°øÇÏ´Â debugger´Â ´ÙÀ½°ú °°Àº ¿ä°ÇÀ» °®Ãßµµ·Ï ¸¸µé¾îÁ³½À´Ï´Ù.
- Java language¿Í °°ÀÌ debuggerÀÇ interface ¿ª½Ã Object Oriented À̾î¾ß ÇÑ´Ù.
- Java°¡ Áö¿øÇÏ´Â thread³ª monitor µî°ú °°Àº runtime feature¸¦ Áö¿øÇØ¾ß ÇÑ´Ù.
- Remote debuggingÀÌ °¡´ÉÇØ¾ß ÇÑ´Ù.
- Á¤»óÀûÀ¸·Î µ¿À۵Ǵ °æ¿ì security¸¦ º¸ÀåÇØ¾ß ÇÑ´Ù.
ÀÌ·¯ÇÑ ¿ä°ÇÀ» ¸¸Á·Çϵµ·Ï Java Debugger API°¡ °³¹ßµÇ¾îÀÖ½À´Ï´Ù.
±×¸®°í ±× »ç¿ë¹ýÀº dbx¿Í ¾ÆÁÖ ºñ½ÁÇÕ´Ï´Ù.
appletviewer -debug URL
jdb¿¡¼´Â ±âº»ÀûÀ¸·Î ´ÙÀ½°ú °°Àº ÀÏÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù.
help
- °£´ÜÇÑ online helpÀÔ´Ï´Ù. »ç¿ë°¡´ÉÇÑ ¸í·É¾î¸¦ ³ª¿ÇÕ´Ï´Ù.
list
- ÇöÀçÀÇ source¸¦ ³ª¿ÇÕ´Ï´Ù.
up/down
- stack frameÀÇ À§Ä¡¸¦ Á¶Á¤ÇÕ´Ï´Ù.
print obj_id
- obj_id¿¡ ÇØ´çÇÏ´Â threadgroupÀÇ ³»¿ëÀ» printÇÕ´Ï´Ù.
print locals
- local variableÀ» Ç¥½ÃÇÕ´Ï´Ù.
threads
- ÇöÀç ½ÇÇàÁßÀÎ thread¸¦ Ç¥½Ã ÇÒ ¼ö ÀÖ½À´Ï´Ù.
stop in Class.method, stop at Class:line
- break point¸¦ ¼³Á¤ÇÕ´Ï´Ù.
clear Class:line
- break point¸¦ ÇØÁ¦ÇÕ´Ï´Ù.
where
- ÇöÀç ½ÇÇàµÇ°í ÀÖ´Â stack ³»¿ëÀ» Ç¥½ÃÇÕ´Ï´Ù.
classes
- ÇöÀç loadµÈ classµéÀ» ³ª¿ÇÕ´Ï´Ù.
run, cont, step
- appletÀÇ ½ÇÇàÀ» ½ÃÀÛÇϰųª, breakµÈ »óÅ¿¡¼ continue ȤÀº ÇÑ step
À» ½ÇÇàÇÕ´Ï´Ù.
use, use path
- ÇöÀç ½ÇÇàµÇ°í ÀÖ´Â source fileÀÇ path¸¦ Ç¥½ÃÇϰí, path¸¦ ¹Ù²ß´Ï´Ù.
quit
±×¸² 5. jdbÀÇ ½ÇÇà¸ð½À
Âü°í°¡ µÉ¸¸ÇÑ resourceÀÇ ¼Ò°³