π νκ³
μκ³ μλ λ΄μ©μ΄ λ§μμ§λ§ μμ΄λ²λ Έκ±°λ λμΉ λ΄μ©λ€μ λ€μ λ°°μΈ μ μμκ³ μ μ΄λλ©΄ μ’μ λ΄μ©λ€μ΄ λ§μλ€. μ€λ νμ΅μΌλ‘ μλ° κΈ°λ³ΈκΈ°κ° μ’ λ νΌνΌν΄μ§ κ² κ°λ€.
π νΉμ§
π μλ°μ νΉμ§
- μ΄μ체μ μ λ 립μ
- κ°μ²΄ μ§ν₯ μΈμ΄ (Object Oriented Programming, OOP)
- ν¨μν νλ‘κ·Έλλ° μ§μ
- μλ λ©λͺ¨λ¦¬ κ΄λ¦¬ (Garbage Collection)
π JVM, JRE, JDK
JVM (Java Virtual Machine): μλ° νλ‘κ·Έλ¨μ μ€νμν€λ λꡬ
- μλ°λ μ»΄νμΌλ¬(javac)λ₯Ό ν΅ν΄ μλ° μΈμ΄λ₯Ό JVMμ΄ μ΄ν΄ν μ μλ μ½λ(λ°μ΄νΈμ½λ, Bytecode)λ‘ λ³νμν¨λ€.
- JVMμ λ°μ΄νΈμ½λλ₯Ό μ΄μ체μ μ λ§λ κΈ°κ³μ΄λ‘ λ³νμν¨λ€.
JRE (Java Runtime Environment): JVM + νμ€ ν΄λμ€ λΌμ΄λΈλ¬λ¦¬
JDK (Java Development Kit): JRE + κ°λ°μ νμν λꡬ
π ν¨μμ λ©μλ
ν¨μ: νΉμ κΈ°λ₯μ μννλ μ½λλ€μ λ¬Άμ κ²
λ©μλ: ν΄λμ€ λ΄μ ν¬ν¨λμ΄ μλ ν¨μ
π νμ
π κΈ°λ³Έ νμ κ³Ό μ°Έμ‘° νμ
κΈ°λ³Έ νμ
- κ°μ μ μ₯ν λ, λ°μ΄ν°μ μ€μ κ°μ΄ μ μ₯λλ€.
- μ μ νμ (byte, short, int, long), μ€μ νμ (float, double), λ¬Έμ νμ (char), λ Όλ¦¬ νμ (boolean)
μ°Έμ‘° νμ
- κ°μ μ μ₯ν λ, λ°μ΄ν°μ μ μ₯λ κ³³μ λνλ΄λ μ£Όμ κ°μ΄ μ μ₯λλ€.
- κ°μ²΄μ μ£Όμλ₯Ό μ μ₯, 8κ°μ κΈ°λ³Ένμ μ μΈν λλ¨Έμ§ νμ
π μ μ νμ
νμ | λ©λͺ¨λ¦¬ | νν λ²μ |
byte | 1byte | -128(-2^7) ~ 127(2^7 - 1) |
short | 2byte | -32,768(-2^15) ~ 32,767(2^15 - 1) |
int | 4byte | -2,147,483,648(-2^31) ~ 2,147,483,647(2^31 - 1) |
long | 8byte | -9,223,372,036,854,775,808(-2^63) ~ 9,223,372,036,854,775,807(2^63 - 1) |
μ€λ²νλ‘μ°
- μλ£νμ΄ ννν μ μλ λ²μ μ€ μ΅λκ° μ΄κ³Όμ κ°μ ννν κ²½μ° λ°μνλ€.
- μ΅λκ°μ λμ΄κ°λ©΄ ν΄λΉ λ°μ΄ν° νμ μ μ΅μκ°μΌλ‘ κ°μ΄ μννλ€.
- byte νμ μμ 127 + 1 == -128
μΈλνλ‘μ°
- μλ£νμ΄ ννν μ μλ λ²μ μ€ μ΅μκ° λ―Έλ§μ κ°μ ννν κ²½μ° λ°μνλ€.
- μ΅μκ°μ λμ΄κ°λ©΄ ν΄λΉ λ°μ΄ν° νμ μ μ΅λκ°μΌλ‘ κ°μ΄ μννλ€.
- byte νμ μμ -128 - 1 == 127
π μ€μ νμ
νμ | λ©λͺ¨λ¦¬ | νν λ²μ | μ λ°λ |
float | 4byte | μμ : -3.4 * 10^38 ~ -1.4 * 10^-45 μμ : 1.4 * 10^-45 ~ 3.4 * 10^38 |
7μ리 |
double | 8byte | μμ : -1.8 * 10^308 ~ -4.9 * 10^-324 μμ : 4.9 * 10^-324 ~ 1.8 * 10^308 |
15μ리 |
doubleν 리ν°λ΄μλ dλ₯Ό λΆμ¬μ£Όμ§ μμλ λμ§λ§, floatν 리ν°λ΄μλ μ λ―Έμ¬ fλ₯Ό λΆμ¬μ€μΌ νλ€.
μ€λ²νλ‘μ°
- κ°μ΄ μμ μ΅μ λ²μ λλ μμ μ΅λ λ²μλ₯Ό λμ΄κ°μ λ λ°μνλ©°, κ°μ΄ 무νλκ° λλ€.
μΈλνλ‘μ°
- κ°μ΄ μμ μ΅λ λ²μ λλ μμ μ΅μ λ²μλ₯Ό λμ΄κ°μ λ λ°μνλ©°, κ°μ΄ 0μ΄ λλ€.
π λ Όλ¦¬ νμ , λ¬Έμ νμ
νμ | λ©λͺ¨λ¦¬ | |
λ Όλ¦¬ | boolean | 1byte |
λ¬Έμ | char | 2byte |
π νμ λ³ν
μλ νμ λ³ν
byte(1) -> short(2)/char(2) -> int(4) -> long(8) -> float(4) -> double(8)
# μ€μνμ΄ ννν μ μλ κ°μ΄ λͺ¨λ μ μνλ³΄λ€ μ λ°νλ€.
μλ νμ λ³ν
int intValue = 128;
byte byteValue = (byte)intValue; // μ€λ²νλ‘μ°, -128
π λ¬Έμμ΄
π μ μΈκ³Ό ν λΉ
// λ¬Έμμ΄ λ¦¬ν°λ΄μ String νμ
μ λ³μ nameμ ν λΉνλ λ°©λ²
String name1 = "Kim Coding";
// String ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μμ±νλ λ°©λ²
String name2 = new String("Kim Coding");
π λΉκ΅
String name1 = "Kim Coding";
String name2 = "Kim Coding";
String name3 = new String("Kim Coding");
String name4 = new String("Kim Coding");
boolean comparison1 = name1 == "Kim Coding"; // true
boolean comparison2 = name1 == name2; // true
boolean comparison3 = name1 == name3; // false
boolean comparison4 = name3 == name4; // false
boolean comparison5 = name1.equals("Kim Coding"); // true
boolean comparison6 = name1.equals(name3); // true
boolean comparison7 = name3.equals(name4); // true
== μ£Όμκ° λΉκ΅, .equals() κ° λΉκ΅
π String ν΄λμ€ λ©μλ
charAt()
String str = new String("Java");
System.out.println(str); // Java
System.out.println(str.charAt(0)); // J
System.out.println(str.charAt(1)); // a
System.out.println(str.charAt(2)); // v
System.out.println(str.charAt(3)); // a
System.out.println(str); // Java
compareTo()
String str = new String("abcd");
System.out.println(str); // abcd
// μ¬μ νΈμ°¬ μ. κ°μΌλ©΄ 0, μΈμλ³΄λ€ μμΌλ©΄ μμ, ν¬λ©΄ μμ
System.out.println(str.compareTo("bcef")); // -1
System.out.println(str.compareTo("abcd")); // 0
System.out.println(str.compareTo("Abcd")); // 32
System.out.println(str.compareToIgnoreCase("Abcd")); // 0
System.out.println(str); // abcd
concat()
String str = new String("Java");
System.out.println(str); // Java
System.out.println(str.concat("μμ
")); // Javaμμ
System.out.println(str); // Java
indexOf()
String str = new String("Oracle Java");
System.out.println(str); // Oracle Java
System.out.println(str.indexOf('o')); // -1
System.out.println(str.indexOf('a')); // 2
System.out.println(str.indexOf("Java")); // 7
System.out.println(str); // Oracle Java
trim()
String str = new String(" Java ");
System.out.println(str); // " Java "
System.out.println(str + '|'); // " Java |"
System.out.println(str.trim() + '|'); // "Java|"
System.out.println(str); // " Java "
toLowerCase(), toUpperCase()
String str = new String("Java");
System.out.println(str); // Java
System.out.println(str.toLowerCase()); // java
System.out.println(str.toUpperCase()); // JAVA
System.out.println(str); // Java
π StringTokenizer
import java.util.StringTokenizer;
// class μλ΅
public static void main(String[] args){
String str = "This is a string example using StringTokenizer";
StringTokenizer tokenizer = new StringTokenizer(str);
System.out.println(tokenizer.countTokens()); // 7
while(tokenizer.hasMoreTokens()){
System.out.println(tokenizer.nextToken());
}
/*
This
is
a
string
example
using
StringTokenizer
*/
System.out.println(tokenizer.countTokens()); // 7
}
int countToken()
- λ¨μμλ ν ν°μ κ°μ λ°ν
boolean hasMoreElements(), boolean hasMoreTokens()
- νμ¬ μμΉ λ€μ νλ μ΄μμ ν ν°μ΄ μλ€λ©΄ true μμΌλ©΄ false λ°ν
Object nextElement(), String nextToken()
- λ€μ ν ν° λ°ν (Object, String)
π StringBulilder
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("λ¬Έμμ΄ ").append("μ°κ²°");
String str = stringBuilder.toString();
System.out.println(stringBuilder); // λ¬Έμμ΄ μ°κ²°
System.out.println(str); // λ¬Έμμ΄ μ°κ²°
π StringBuffer
StringBuffer str = new StringBuffer("Java");
System.out.println(str.append(" programming")); // Java programming
System.out.println(str); // Java programming
StringBuffer str01 = new StringBuffer();
StringBuffer str02 = new StringBuffer("Java");
// νμ¬ λ²νΌ ν¬κΈ° λ°ν
System.out.println(str01.capacity()); // 16
System.out.println(str02.capacity()); // 20
// μ¬μ λ²νΌ ν¬κΈ° 16
StringBuffer str = new StringBuffer("Java Oracle");
// [a, b) μμ
System.out.println(str.delete(4, 8)); // Javacle
System.out.println(str.deleteCharAt(1)); // Jvacle
System.out.println(str); // Jvacle
StringBuffer str = new StringBuffer("Java Programming!!");
System.out.println(str.insert(4, "Script")); // JavaScript Programming!!
System.out.println(str); // JavaScript Programming!!
StringBuffer ν΄λμ€ API λ¬Έμ
π μ°μ°μ, μ μΆλ ₯
π μ°μ°μ μ°μ μμ
μ°μ μμ | μ°μ°μ | λ΄μ© |
1 | (), [] | κ΄νΈ / λκ΄νΈ |
2 | !, ~, ++, -- | λΆμ / μ¦κ° μ°μ°μ |
3 | *, /, % | κ³±μ / λλμ μ°μ°μ |
4 | <, <=, >, >= | λμ λΉκ΅ μ°μ°μ |
5 | && | AND μ°μ°μ |
6 | || | OR μ°μ°μ |
7 | ? : | 쑰건 μ°μ°μ |
8 | =, +=, -=, /=, %= | λμ /ν λΉ μ°μ°μ |
π μ§μμ
μ§μμ | μΆλ ₯ ν¬λ§· |
%b | λΆλ¦¬μΈ |
%d | 10μ§μ |
%o | 8μ§μ |
%x, %X | 16μ§μ |
%c | λ¬Έμ |
%s | λ¬Έμμ΄ |
%n | μ€λ°κΏ |
π μ½μ μ μΆλ ₯
import java.util.Scanner;
// μλ΅
Scanner scanner = new Scanner(System.in);
String inputValue = scanner.nextLine(); // ν μ€ μ
λ ₯λ°κΈ°
System.out.println(inputValue); // μΆλ ₯