μμ±μ : μκ·Έλ¦Ό
Table of Contents
Green Projectμμλ κ°μ μ© μ μκΈ°κΈ°μ ν΅ν©μ μ μ΄λ₯Ό μν΄, μ μκΈ°κΈ°μμ μ¬μ©λλ μμ μ»΄ν¨ν° μΈμ΄λ₯Ό μ μνλ€. κ°μ μ© μ μκΈ°κΈ°μ μ¬μ©λλ powerλ memoryκ° μ΄μ νκΈ° λλ¬Έμ μ¬κΈ°μ μ¬μ©λλ μΈμ΄λ μκ³ κ²¬κ³ νκ³ , μ λ’°ν μ μλ μ½λλ₯Ό νμλ‘ νλ€. λν λ€λ₯Έ CPUκ° μ νλ μ μκΈ° λλ¬Έμ νΉμ λλ°μ΄μ€μ μ’ μλλ©΄ μ λμλ€. λ°λΌμ Virtual Machineμμ λμνλ μ€κ° μ½λλ₯Ό μμ±νμ¬ μ΄μμ±μ΄ λμ μΈμ΄λ₯Ό λμμΈνκ² λμλ€.
μ΄κΈ°μλ μ μ°¨ μ§ν₯ + κ°μ²΄ μ§ν₯ μΈμ΄μΈ C++ κΈ°λ°μΌλ‘ κ°λ°λμλ€. νμ§λ§ C++ μΈμ΄κ° κ°μ§ νκ³μ λΆλͺν μλ²½ν κ°μ²΄ μ§ν₯ μΈμ΄μΈ Oak μΈμ΄λ₯Ό κ°λ°νμκ³ , μ΄λ―Έ μ‘΄μ¬νλ μ΄λ¦μ΄λΌ μΆν Javaλ‘ μ΄λ¦μ΄ λ°λκ² λμλ€.
κ·Έ ν Javaλ₯Ό κΈ°λ°μΌλ‘ ν HotJavaλΌλ μΉ λΈλΌμ°μ λ₯Ό μ μνμλλ°, Javaμ Applet μ΄λΌλ κΈ°λ₯μ 보μ¬μ£ΌκΈ° μν΄ λΈλΌμ°μ κ° μ€κ° μ½λ(Bytecode)λ₯Ό ν΄μν μ μλλ‘ λ§λ€μλ€. μ΄ λ μλ° λΆμ΄ μΌμ΄λ Java μΈμ΄κ° κΈκ²©ν νμ°λμλ€. μ΄ν λ§μ μ 체λ€μ΄ Javaλ₯Ό μ§μνκΈ° μμνμκ³ , 1996λ μλ° 2 νλ«νΌμ΄λΌκ³ λͺ λͺ λμλ μλ° λ²μ 1.2κ° μΆμλμλ€. κ·Έλ¦¬κ³ νμ¬κΉμ§ λ§μ λ²μ λ€μ΄ μΆμλκ³ μλ€.
- λ¨μ (Simple)
C(μ μ°¨ μ§ν₯) + C++(κ°μ²΄ μ§ν₯) μΈμ΄λ₯Ό κΈ°μ΄λ‘ νμ§λ§, CμΈμ΄μ 볡μ‘ν κΈ°λ₯μ μ μΈνμ¬ μ½λλ₯Ό λ¨μνκ² μμ±ν μ μλ€. νΉν κ°λΉμ§ 컬λ ν°(Garbage Collector)μ μν μλ λ©λͺ¨λ¦¬ κ΄λ¦¬λ‘ ν λΉλ λ©λͺ¨λ¦¬ ν΄μ λ₯Ό μ κ²½μ°μ§ μμλ λλ€. - κ°μ²΄μ§ν₯ (Object-Oriented)
μλ°λ κ°μ²΄ μ§ν₯ μΈμ΄λ‘, μΈμ΄λΌλ κ°μ²΄λ₯Ό μ¬μ©ν΄ νλ‘κ·Έλ¨μ μμ±νλλ‘ νλ€. μ΄λ‘μ¨ μ¬μ¬μ©μ±(Reusability) μ λμΌ μ μλ€. μ½λμ μ¬μ¬μ©, κ°μ²΄μ μ¬μ¬μ© λΏλ§ μλλΌ μλ§μ ν΄λμ€ λΌμ΄λΈλ¬λ¦¬λ€μ APIλ‘ μ 곡ν¨μΌλ‘μ μ¬μ¬μ©μ±μ λμ΄κ³ μλ€. - λΆμ° μ²λ¦¬ (Distributed)
Javaλ λΆμ° νκ²½μμ TCP/IP λ±μ νλ‘ν μ½μ ν΅ν΄ ν¨μ¨μ μΌλ‘ μ€νν μ μλλ‘ μ€κ³λ μΈμ΄μ΄λ€. Javaλ λ€μμ μ§μνλ€.- TCP/IP λ€νΈμν¬ κΈ°λ₯ λ΄μ₯
- HTTP, FTP λ±κ³Ό κ°μ νλ‘ν μ½μ λν λΌμ΄λΈλ¬λ¦¬ μ 곡
- μλ‘ λ€λ₯Έ μ»΄ν¨ν° μμ κ°μ²΄λ€λ μ격μΌλ‘ νΈμΆνμ¬ μ€νν μ μλ μ격 λ©μλ νΈμΆκ³Ό κ΄λ ¨λ RMI(Remote Method Invocation) κΈ°λ₯μ λΌμ΄λΈλ¬λ¦¬ μ 곡
- μΈν°νλ¦¬ν° (Interpreter)
νλ‘κ·Έλλ° μΈμ΄λ μΈν°νλ¦¬ν° μΈμ΄, μ»΄νμΌ μΈμ΄λ‘ λλλ€. μλ°λ μ»΄νμΌ μΈμ΄μΈ λμμ μΈν°νλ¦¬ν° μΈμ΄μ΄λ©°, μΈν°ν리ν°μ μν΄ μ€νλλ€. μλ° νλ‘κ·Έλ¨μ λ€μκ³Ό κ°μ μ€ν κ³Όμ μ κ±°μΉλ€.- μμ€μ½λ(.java) βΆοΈ μ»΄νμΌ(Compile): javac βΆοΈ μ€κ°μ½λ(.class): λ°μ΄νΈ μ½λ, ν΄λμ€ νμΌ βΆοΈ κΈ°κ³μ΄λ‘ ν΄μ(Interprete): java βΆοΈ μ€ν
- κ²¬κ³ (Robust)
λ€μν νλ«νΌ(μ»΄ν¨ν°) μμμ μ€νλκΈ° μν΄μλ λμ μ λ’°μ±μ΄ μ€μνλ€. μλ°λ λ€μκ³Ό κ°μ κΈ°λ₯λ€μ μ§μν¨μΌλ‘μ λμ μ λ’°μ±μ ꡬννμλ€.- ν¬μΈν°λ₯Ό μ¬μ©νμ§ μμ
- κ°λΉμ§ 컬λ μ (Garbage Collector) κΈ°λ₯
- μ격ν λ°μ΄ν° νμ μ κ²μ¬ : μλ¬ μ‘°κΈ° λ°κ²¬
- Runtime μλ¬ μ²λ¦¬
- μμ (Secure)
μ»΄νμΌ μ μ격ν κ²μ¬λ₯Ό ν΅ν΄ νλ‘κ·Έλ¨ μ€ν μ λ°μν μ μλ μ₯μ λ₯Ό 미리 λ°©μ§νλ€. μμ€μ½λκ° μ»΄νμΌλ .class ννμ λ°μ΄νΈμ½λλ ν΄λμ€ λ‘λ, λ°μ΄νΈ μ½λ κ²μ¦κΈ°λ₯Ό κ±°μΉλ€. μ΄ λ λ¬Έμ κ° μμΌλ©΄ μΈν°ν리ν°λ‘ λ겨 μ€ννκ² λλ€.- ν΄λμ€ λ‘λ : μ½λκ° μμ /λ€λ₯Έ μ»΄ν¨ν°μμ μ¨ κ²μΈμ§ νλ¨νκ³ μ½λλ₯Ό λΆλ¦¬νλ€.
- λ°μ΄νΈ μ½λ κ²μ¦κΈ° : μ½λλ₯Ό κ²μ¦νμ¬ λ¬Έμ κ° μμ μ μΈν°ν리ν°λ‘ λκΈ΄λ€.
- νλ«νΌ λ
립μ (Architecture Neutral)
μ΄μ체μ , CPU λ±μ νλμ¨μ΄ μ¬μμ κ΄κ³ μμ΄ μ€νλ μ μλ€. μμ±λ μλ° νλ‘νλ¨μ μλ° μ»΄νμΌλ¬λ₯Ό κ±°μ³ μλ° κ°μ λ¨Έμ μμ κΈ°κ³μ΄λ‘ λ²μλκ² λλ€. λ²μλ κΈ°κ³μ΄ μ½λλ νλμ¨μ΄ μ¬μμ κ΄κ³ μμ΄ λμΌνκ² μ€νλλ€. - λμ μ±λ₯ (High Performance)
κ°λΉμ§ 컬λ μ (Garbage Collection) κΈ°λ₯μ΄ μΆκ°λμ΄ μμ΄ μλμΌλ‘ λ©λͺ¨λ¦¬ κ΄λ¦¬κ° κ°λ₯νλ€. μ΄λ λ©λͺ¨λ¦¬κ° ν λΉλ κ°μ²΄μ μνλ₯Ό μΆμ νμ¬ λ μ΄μ μ°Έμ‘°λμ§ μμΌλ©΄ μλμΌλ‘ ν λΉλ λ©λͺ¨λ¦¬λ₯Ό ν΄μ νμ¬ λΆνμν λ©λͺ¨λ¦¬ λλΉλ₯Ό λ°©μ§νλ κΈ°λ₯μ΄λ€. - λ©ν°μ€λ λ (Multithread)
μλ°λ λ©ν°μ€λ λλ₯Ό μ§μνλ€. μ΄λ ν λ²μ μ¬λ¬ κ°μ μ€λ λκ° λμμ μνλλ κ³Όμ μΌλ‘, νλμ CPUκ° μ¬λ¬ νλ‘κ·Έλ¨μ λμμ μννλλ‘ ν¨μΌλ‘μ μν μλλ₯Ό λΉ λ₯΄κ² νλ€. - λμ (Dynamic)
μλ°λ λ³νλλ νκ²½μ μ μ μνλλ‘ μ€κ³λ μΈμ΄μ΄λ€. λ°λΌμ κΈ°μ‘΄μ νλ‘κ·Έλ¨μ μν₯μ μ£Όμ§ μκ³ λΌμ΄λΈλ¬λ¦¬μ μλ‘μ΄ λ©μλλ μμ±λ€μ μΆκ°ν μ μμΌλ©°, νλ‘κ·Έλ¨ κ° λΌμ΄λΈλ¬λ¦¬μ μ°κ²°μ Runtimeμ μνν¨μΌλ‘μ¨ λΌμ΄λΈλ¬λ¦¬μ λ³νλ₯Ό 곧λ°λ‘ μ μ©ν μ μλ€.
νλ«νΌ(Platform)μ΄λ, νλ‘κ·Έλ¨μ΄ μ€νλ μ μλ HW λ° SW νκ²½μ μλ―Ένλ€.
μΌλ°μ μΈ νλ«νΌμ νλμ¨μ΄ λ° νλμ¨μ΄λ₯Ό μ μ΄νλ μ΄μ체μ λ‘ κ΅¬μ±λμ΄ μμ§λ§, μλ° νλ«νΌμ μννΈμ¨μ΄λ§μΌλ‘ ꡬμ±λλ€. μλ° νλ«νΌμ μΌλ°μ μΌλ‘ JDK(Java Development Kit)λΌλ ν΄λ‘ μ€μΉλλ€.
- Java SE (Java 2 Platform Standard Edition)
κ°μ₯ κΈ°λ³Έμ΄ λλ μλμ , μλ° μΈμ΄ λλΆλΆμ ν¨ν€μ§κ° ν¬ν¨λλ€. - Java EE (Java 2 Platform Enterprise Edition)
νμ μμ μ¬μ©λλ APIλ€μ΄ μ§μ½λ μλμ μ΄λ€. (JSP, Servlet, JDBC λ±) - Java ME (Java 2 Platform Micro Edition)
λͺ¨λ°μΌ κΈ°κΈ° λ±μμ μ¬μ©λλ APIκ° ν¬ν¨λ μλμ μ΄λ€.
μλ° νλ‘κ·Έλ¨μ μλ° κ°μ λ¨Έμ μμμ λμνλ€. μλ° κ°μ λ¨Έμ μλ μλ° API (μλ° νλ‘κ·Έλ¨μ μμ±νλ λ° κΈ°λ³Έμ μΌλ‘ νμ©ν μ μλ ν΄λμ€ λΌμ΄λΈλ¬λ¦¬, μ¦ νμ€ API λΌμ΄λΈλ¬λ¦¬)κ° μ 곡λλ€.
μλ° κ°μ λ¨Έμ (JVM, Java Virtual Machine) μ μλ° νλ‘κ·Έλ¨κ³Ό μ΄μ체μ μ€κ°μ μ‘΄μ¬νμ¬ μλ‘λ₯Ό λΆλ¦¬ν¨μΌλ‘μ¨, μ ν리μΌμ΄μ μ΄ μ΄μ체μ μ μν₯ λ°μ§ μκ³ λμν μ μλ νκ²½μ μ 곡νλ€. λ¨, JVMμ μ΄μ체μ μ μ§μ μ μΌλ‘ ν΅μ μ ν΄μΌ νκΈ° λλ¬Έμ μ΄μ체μ μ λ§λ JVMμ μ€μΉν΄μ£Όμ΄μΌ νλ€.
μλ° API(Application Programming Interface) λ νλ‘κ·Έλλ¨Έκ° νμλ‘ νλ κΈ°λ³Έμ μΈ ν΄λμ€(Class)λ€μ κ±°λν λΌμ΄λΈλ¬λ¦¬λ‘ 미리 λ§λ€μ΄μ μ 곡νλ€. μλ° μΈμ΄ μ체λ μκ³ λ¨μν ꡬ쑰λ₯Ό κ°μ§λ§, λ§μ κΈ°λ₯λ€μ APIμμ μ 곡νκ³ μλ€. μλ° APIλ κ΄λ ¨λ κΈ°λ₯μ ν΄λμ€λ€μ λ¬Άμ΄ ν¨ν€μ§μ ννλ‘ μ 곡νλ€. (μ£Όμ ν¨ν€μ§ : java.applet, java.awt, java.io, java.lang, java.net, javax.swing, java.util)
- μλ° ν΄λμ€(class) λ μλ° νλ‘κ·Έλ¨μ μ΅μ κ΅¬μ± λ¨μλ‘, μ μΈλ ν΄λμ€ λ΄λΆμ μ€νμ νμν λ³μλ λ©μλ λ±μ΄ μ μλλ€. μΌλ°μ μΌλ‘ μλ° νλ‘κ·Έλ¨μ νλμ
.java
νμΌμ νλμ ν΄λμ€ μ μλ₯Ό μμΉμΌλ‘ νλ€. - μλ° μ ν리μΌμ΄μ
μ λ°μ΄νΈ μ½λλ‘ λ²μλ νμ λ°λ‘ μ€νν μ μλ νλ‘κ·Έλ¨μ΄λ€. ν΄λμ€ λ΄μ
main()
λ©μλλ₯Ό κ°μ§κ³ μμ΄μΌ νλ€. - μλ°λ λΈλ‘(
{}
) μΌλ‘ μλ° λ¬Έμ₯λ€μ μ§ν©μ νννλ€. λΈλ‘μ μμκ³Ό λμ΄ μ§μ μ΄λ£¨μ§ μμΌλ©΄ μ»΄νμΌ μ€λ₯κ° λ°μνλ©°, ν΄λμ€, λ©μλ, μλ° κ΅¬λ¬Έ(if
,for
,try-catch
λ±)μ μ¬μ©λλ€. - μλ° λ¬Έμ₯μ μΈλ―Έμ½λ‘ (
;
) μ μ¬μ©ν΄ λ¬Έμ₯λ€μ ꡬλΆνλ€.
public class ν΄λμ€λͺ
{
// λ³μ μ μ
// λ©μλ μ μ
public static void main(String args[]) {
// μ€νλ νλ‘κ·Έλ¨ μ½λ
}
}
- λ°μ΄ν° νμ μ λ°μ΄ν°μ μ±κ²©μ κ·μ νλ€.
- μ¬μ©ν λ°μ΄ν°λ₯Ό λ³μμ μ μ₯νκ³ κ΄λ¦¬ν¨μΌλ‘μ¨ λ°μ΄ν°μ μλ―Έλ₯Ό μ ννκ² ν΄μνμ¬ μ¬μ©ν μ μλ€.
νννν | λ°μ΄ν° νμ | ν¬κΈ° | νν λ²μ | (μλ μ΄κΈ°ν μ) μ΄κΈ°κ° |
---|---|---|---|---|
λ Όλ¦Ώκ° | boolean | 1bit | true/false | false |
λ¨μΌ λ¬Έμ | char | 16bit (2byte) | '\u0000' ~ '\uffff' |
'\u0000' (Null) |
μ μ | byte | 8bit (1byte) | -2^7 ~ 2^7-1 (-128 ~ 127) | 0 |
μ μ | short | 16bit (2byte) | -2^15 ~ 2^15-1 (-32768 ~ 32767) | 0 |
μ μ | int | 32bit (4byte) | -2^31 ~ 2^31-1 (μ½ -21μ΅ ~ 21μ΅) | 0 |
μ μ | long | 64bit (8byte) | -2^63 ~ 2^63-1 | 0L |
μ€μ | float | 32bit (4byte) | 1.4E-45 ~ 3.4028235E38 | 0.0F |
μ€μ | double | 64bit (8byte) | 4.9E-324 ~ 1.7976931348623157E308 | 0.0D |
* μ μ : λΆνΈκ° μλ μ μ, νμ λͺ
μνμ§ μμΌλ©΄ int
κ° κΈ°λ³Έν
* μ€μ : λΆνΈκ° μλ λΆλμμμ μ€μ, νμ λͺ
μνμ§ μμΌλ©΄ double
μ΄ κΈ°λ³Έν
(λΆλμμμ μ΄λ, μ»΄ν¨ν°κ° μμμ μ΄ ν¬ν¨λ μ€μλ₯Ό νννλ λ°©μ μ€ νλμ΄λ€. μ΄λ κ³ μ μμμ κ³Ό λ¬λ¦¬ μμμ μ μμ λ‘μ΄ μμ§μΌ μ μμ΄μ ννν μ μλ μμ λ²μκ° λ§€μ° λλ€λ μ₯μ μ΄ μλ€.)
* μ΄κΈ°ν : λ©μλ(ν¨μ) μμμ μ μΈλ λ³μμΈ μ§μλ³μλ μλμΌλ‘ μ΄κΈ°νλμ§ μλλ€.
* μ°Έμ‘°ν(Reference Type) λ³μμ μ΄κΈ°κ° : null
- μ»΄νμΌ μ€λ₯ : λ³μ μ΄κΈ°ν μ λ²μλ₯Ό μ΄κ³Όνλ κ²½μ° λ°μ
- λ°νμ μ€λ₯ : μ°μ° κ²°κ³Όλ‘ λ²μλ₯Ό μ΄κ³Όνλ κ²½μ° λ°μ
λ³μμ νμ μ λ€λ₯Έ νμ μΌλ‘ λ³κ²½νκ³ μ ν λ, νλ³ν μ°μ°μλ₯Ό μ¬μ©ν΄ λ³νν μ μλ€. μμ λ°μ΄ν° νμ μμ ν° λ°μ΄ν° νμ μΌλ‘ λ³ννλ κ²μ 묡μμ νλ³ν(Promotion), κ·Έ λ°λλ₯Ό λͺ μμ νλ³ν(Demotion) μ΄λΌκ³ νλ€.
-
묡μμ νλ³ν(Promotion) : λ°μ΄ν° μμ€μ μ°λ €κ° μμ΄ μλ μΊμ€ν κ°λ₯νλ€. (μλ νλ³ν)
int age = 25; double avgAge = age; // double avgAge = (double)age;
- μμ κ°μ΄ νλ³ν μ°μ°μμΈ
(double)
μ μλ΅ν μ μλ€. - λ¨, λ€μμ κ·μΉμ λ°λΌ μλ νλ³νμ΄ μ΄λ£¨μ΄μ§λ€.
- byte -> short -> int -> long -> float -> double μ
- char -> int -> long -> float -> double μ
- μμ κ°μ΄ νλ³ν μ°μ°μμΈ
-
λͺ μμ νλ³ν(Demotion) : λ μμ λ²μλ₯Ό λνλ΄λ λ°μ΄ν° νμ μΌλ‘ λ³ννκΈ° λλ¬Έμ λ°μ΄ν° μμ€μ μ°λ €κ° μμ΄ λͺ μμ μΊμ€ν μ΄ νμνλ€. (μΆμ νλ³ν)
double avgAge = 24.56; int age = (int)avgAge;
-
μμ κ°μ΄ νλ³ν μ°μ°μλ₯Ό λͺ μν΄μ£Όμ΄μΌ νλ€.
-
λ¨, λ°μ΄ν° νμ μ΄ μΆμλμ΄ λ³νλ νμλ ν΄λΉ κ°μ ννν μ μμ΄μΌ νλ€. λ€μμ μ¬λ°λ₯΄μ§ λͺ»ν μμ΄λ€.
int sum = 128 byte data = (byte)sum // -128
-
- λ³μλ μ»΄ν¨ν° λ΄λΆμ λ°μ΄ν°μ 1:1 λμλμ΄ λ³μλ₯Ό ν΅ν΄ λ©λͺ¨λ¦¬μμ λ°μ΄ν°μ μ κ·Ό κ°λ₯νλ€.
- κΈ°λ³Έν(Primitive Type)κ³Ό μ°Έμ‘°ν(Reference Type) λ κ°μ§ λ³μκ° μ‘΄μ¬νλ€.
- μ μ(Global) λ³μμ μ§μ(Local) λ³μλ‘ μ μΈν μ μλ€.
- λ³μλ μμ μ΄ μν λΈλ‘({})μ λ²μ΄λλ©΄ μ¬μ©μ΄ λΆκ°νλ€.
- μ μ(Global) λ³μ : ν΄λμ€ μ μΈλΆ λ°μ μ μΈλ λ³μλ‘, μ¬λ¬ λ©μλμμ 곡ν΅μΌλ‘ μ¬μ©ν μ μλ€.
- μ§μ(Local) λ³μ : λ©μλ μ μΈλΆ λ° λλ λ©μλ 맀κ°λ³μλ‘ μ μΈλ λ³μλ‘, ν΄λΉ λ³μκ° μ μΈλ λ©μλ λ΄μμλ§ μ¬μ© κ°λ₯νλ€.
- μλ° κ°μ λ¨Έμ (JVM)μκ² λ°μ΄ν°λ₯Ό μ μ₯νκΈ° μν λ©λͺ¨λ¦¬ ν λΉμ μμ²νλ κ²μ΄λ€.
- λ°μ΄ν°κ° νμλ‘ νλ ν¬κΈ°μ λ©λͺ¨λ¦¬ ν λΉμ μν΄ λ°μ΄ν° νμ μ λͺ μν΄μΌ νλ€.
- μ μν, μ€μνμ μ¬μ©λ¨
- μ¦κ° μ°μ°μ :
++
,--
(λ¨ν) - λΆνΈ μ°μ°μ :
+
,-
,*
,/
(μ΄ν) - λλ¨Έμ§ μ°μ°μ :
%
(μ΄ν)
- λμ λΉκ΅λ κ°μ²΄μ νμ λΉκ΅ λ±μ μ¬μ©λ¨
- λΉκ΅ μ°μ°μ μνν κ²°κ³Όλ‘
boolean
νμ μ κ²°κ³Όλ₯Ό 리ν΄ν¨ >
,>=
,<
,<=
,==
,!=
,instanceof
κ°1 instanceof κ°2
:κ°1
μ΄κ°2
λ°μ΄ν° νμ μ κ°μ²΄μΈ κ²½μ°true
λ°ν
boolean
λ°μ΄ν° νμ μ μ μ©λλ©°,boolean
νμ μ κ²°κ³Όλ₯Ό 리ν΄ν¨&
,&&
,|
,||
,!
κ°1 && κ°2
μ κ²½μ°,κ°1
μ΄false
μΈ κ²½μ°κ°2
λ₯Ό μννμ§ μκ³false
λ₯Ό 리ν΄νλ€.κ°1 || κ°2
μ κ²½μ°,κ°1
μ΄true
μΈ κ²½μ°κ°2
λ₯Ό μννμ§ μκ³true
λ₯Ό 리ν΄νλ€.&
,|
μ°μ°μλ λͺ¨λ 쑰건μ λ€ νμΈν ν κ·Έ κ²°κ³Όλ₯Ό 리ν΄νλ€.
- κ°μ λΉνΈ(bit)λ‘ μ°μ°νλ μ°μ°μ
- λ©λͺ¨λ¦¬λ₯Ό μ΅λν ν¨μ¨μ μΌλ‘ νμ©ν΄μΌ νλ κ²½μ° λΉνΈ λ¨μλ‘ λ°μ΄ν°λ₯Ό κ΄λ¦¬ν΄μΌ νλ€.
&
λ Όλ¦¬κ³±(and),|
λ Όλ¦¬ν©(or),^
λ°°ν λ Όλ¦¬ν©(exclusive or, XOR),~
보μ(not)>>
,>>>
,<<
μννΈκ°1 >> κ°2
:κ°1
μ λΉνΈ λ¨μλ‘κ°2
μ λΉνΈ μλ§νΌ μ€λ₯Έμͺ½μΌλ‘ μννΈ, μΌμͺ½μλ νμ¬ λΆνΈ λΉνΈκ° μ±μμ§κ°1 >>> κ°2
:κ°1
μ λΉνΈ λ¨μλ‘κ°2
μ λΉνΈ μλ§νΌ μ€λ₯Έμͺ½μΌλ‘ μννΈ, μΌμͺ½μλ 0μ΄ μ±μμ§κ°1 << κ°2
:κ°1
μ λΉνΈ λ¨μλ‘κ°2
μ λΉνΈ μλ§νΌ μΌμͺ½μΌλ‘ μννΈ, μ€λ₯Έμͺ½μλ 0μ΄ μ±μμ§
- λμ
μ°μ°μ (
=
) : λ³μμ κ°μ μ μ₯, μ€λ₯Έμͺ½μ κ°μ μΌμͺ½μ λμ - 쑰건 μΌν μ°μ°μ (
? :
) :if~else
λ¬Έμ μΆμ½νμ¬ μ¬μ©ν μ μλ€.λ³μ = 쑰건 ? κ°1 : κ°2
: μ‘°κ±΄μ΄ μ°Έμ΄λ©΄κ°1
μ΄ λ³μμ λμ λκ³ , κ±°μ§μ΄λ©΄κ°2
κ° λ³μμ λμ λλ€.
λ°°μ΄μ κ°μ νμ μ λ°μ΄ν°λ€μ λͺ¨μμΌλ‘, λ©λͺ¨λ¦¬κ° μ μ½λκ³ , μ½κ³ κ°κ²°νκ² νλ‘κ·Έλ¨μ μμ±ν μ μλ€.
- λ°°μ΄ κ°μ²΄λ₯Ό μ°Έμ‘°ν λ°°μ΄ λ³μ μ μΈ βΆοΈ λ°°μ΄ κ°μ²΄ μμ±
- λ°°μ΄ λ³μ μ μΈ :
λ°μ΄ν°νμ λ°°μ΄λ³μλͺ [];
λλλ°μ΄ν°νμ [] λ°°μ΄λ³μλͺ ;
- λ°°μ΄ κ°μ²΄ μμ± :
λ°°μ΄λ³μλͺ = new λ°μ΄ν°νμ [λ°°μ΄μ κΈΈμ΄];
- λ ꡬ문μ ν©μ³ ν λ¬Έμ₯μΌλ‘ νν κ°λ₯
- λ°°μ΄ λ³μ μ μΈ :
- λ€μ°¨μ λ°°μ΄ : μΌμ°¨μ λ°°μ΄μ μ¬λ¬ κ° μ¬μ©νμ¬ λ€μ λ°°μ΄μ ꡬνν κ², μ¦ λ°°μ΄μ λ°°μ΄
- λ°°μ΄μ ν¬κΈ°λ₯Ό λνλ΄λ λ°°μ΄ μ²¨μ(
[]
)λ₯Ό μ°¨μμ λ°λΌ μΆκ°νλ©΄ λλ€. - λ°°μ΄ κ°μ²΄λ₯Ό μ°Έμ‘°ν λ°°μ΄ λ³μ μ μΈ βΆοΈ λ°°μ΄ κ°μ²΄ μμ±
- λ°°μ΄ λ³μ μ μΈ :
λ°μ΄ν°νμ λ°°μ΄λ³μλͺ [][];
λλλ°μ΄ν°νμ [][] λ°°μ΄λ³μλͺ ;
λλλ°μ΄ν°νμ [] λ°°μ΄λ³μλͺ [];
- λ°°μ΄ κ°μ²΄ μμ± :
λ°°μ΄λ³μλͺ = new λ°μ΄ν°νμ [λ°°μ΄μ λ°°μ΄ κΈΈμ΄][λ°°μ΄ κΈΈμ΄];
λλ
λ°°μ΄λ³μλͺ = new λ°μ΄ν°νμ [λ°°μ΄μ λ°°μ΄ κΈΈμ΄][]; λ°°μ΄λ³μλͺ [μΈλ±μ€ λ²νΈ] = new λ°μ΄ν°νμ [λ°°μ΄ κΈΈμ΄];
- λ°°μ΄ λ³μ μ μΈ :
main()
λ©μλλ, μλ° μ ν리μΌμ΄μ
μ νμμ μΌλ‘ ν¬ν¨λμ΄μΌ νλ λ©μλλ‘, μ ν리μΌμ΄μ
μ΄ μ€νλ λ μλμΌλ‘ μ€νλλ€. μΌλ°μ μΌλ‘ μλ° μ ν리μΌμ΄μ
μ main()
λ©μλ λ΄μμ λ€λ₯Έ ν΄λμ€ κ°μ²΄λ₯Ό μμ±νκ³ , κ·Έ κ°μ²΄μ λ©μλ νΈμΆ λλ λ³μ μ‘°μ κ³Όμ μ ν΅ν΄ μνλ κ²°κ³Όλ₯Ό μ»λλ€.
public class CommandLineArgTest {
public static void main(String args[]) {
// code
}
}
μ μ½λμ main()
λ©μλλ₯Ό μ΄ν΄λ³΄λ©΄ String args[]
λΌλ 맀κ°λ³μλ₯Ό λ³Ό μ μλλ°, μ΄λ₯Ό λͺ
λ Ήν 맀κ°λ³μλΌκ³ νλ€. λͺ
λ Ήν 맀κ°λ³μλ λ¬Έμμ΄ λ°°μ΄μ 맀κ°λ³μλ‘ λ°μ, νλ‘κ·Έλ¨ μ€ν μ νμν μ 보λ₯Ό νλ‘κ·Έλ¨μ μ λ¬νλ€.
- String λ°μ΄ν° νμ μ λ°°μ΄μ΄λ€.
- μ¬μ©μκ° μ λ ₯ν λ¬Έμμ΄μ μμμ λ°λΌ μ°¨λ‘λ‘ λ°°μ΄μ μ μ₯λλ€.
- 곡백μ ꡬλΆμλ‘ μ¬λ¬ κ°μ κ°μ μ λ¬ν μ μλ€.
- λ¬Έμμ΄ νμ
μ΄λ―λ‘ μ«μλ₯Ό μ
λ ₯νμ μ λ¬Έμμ΄μ μ«μλ‘ λ³νν΄μΌ νλ€.
- μλ° APIμμ λ©μλ μ 곡 : Integer ν΄λμ€μ
parseInt()
, Double ν΄λμ€μparseDouble()
- μλ° APIμμ λ©μλ μ 곡 : Integer ν΄λμ€μ
- 쑰건 μ μ΄λ¬Έ :
if
,if-else
,if-else if
,switch
λ¬Έ - λ°λ³΅ μ μ΄λ¬Έ :
for
,while
,do-while
λ¬Έ - μ΄λ μ μ΄λ¬Έ :
break
,continue
,return