GiantStepDEV
article thumbnail

* String은 μ°Έμ‘°ν˜• λ°μ΄ν„°λ‘œ κ°’(abc)을 λ‹΄λŠ” λ³€μˆ˜λ₯Ό μƒμ„±ν•˜λŠ” 것이 μ•„λ‹ˆκ³ , 값이 λ‹΄κΈ΄ μ£Όμ†Œ(0x34f3)λ₯Ό κ°€μ§€κ³  μžˆλŠ” λ³€μˆ˜κ°€ μƒμ„±λœλ‹€. (λ¬Έμžμ—΄μ˜ 크기λ₯Ό κ°€λŠ ν•  수 μ—†κΈ° λ•Œλ¬Έμ—)

* char : μŒμˆ˜κ°’ κ°€μ§ˆ 수 μ—†μŒ.

μ •μˆ˜ν˜•(byte, short, int, long)

(== 0을 ν¬ν•¨ν•˜λ©°, μ†Œμˆ˜κ°€ μ—†λŠ” 수)

 

* 데이터 νƒ€μž…μ˜ λ²”μœ„λ₯Ό λ„˜μ–΄κ°€λŠ” 수λ₯Ό μ„€μ •ν•  경우 μ˜€λ²„ν”Œλ‘œμš° λ°œμƒν•˜μ—¬ μ—‰λš±ν•œ 값이 μ €μž₯될 수 μžˆμœΌλ‹ˆ 주의.

public class DataRange{
public static void main(String[] args) {
        byte num1 = 127;
        byte num2 = -128;

        num1++; // 127 + 1
        num2--; // -128 - 1

        System.out.println(num1); // -128
        System.out.println(num2); // 127
    }
}

μ‹€μˆ˜ν˜•(float, double)

* doubleν˜•μ΄ μ‹€μˆ˜ν˜•μ˜ κΈ°λ³Έ νƒ€μž….

* μ»΄ν“¨ν„°μ—μ„œ μ‹€μˆ˜λ₯Ό ν‘œν˜„ν•˜λŠ” 방법은 κ·Όμ‚¬μΉ˜ μ΄λ―€λ‘œ 일정 λ²”μœ„ μ΄μƒμ—μ„œλŠ” μ˜€μ°¨κ°€ λ°œμƒν•¨.

(floatλŠ” 15자리, double은 18μžλ¦¬κΉŒμ§€ 정확함)

public class Float {
    public static void main(String[] args) {
        double num1 = 0.1;
        for(int i = 0; i < 1000; i++) {
            num1 += 0.1;
        }
        System.out.println(num1);
    }
}

 

λ³€μˆ˜

: 값을 μ €μž₯ν•  수 μžˆλŠ” λ©”λͺ¨λ¦¬ 곡간에 이름을 λΆ™μ—¬ 놓은 것

 

* λŒ€λΆ€λΆ„μ˜ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λŠ” λ©”λͺ¨λ¦¬ 곡간에 μ €μž₯ν•  μœ„μΉ˜λ₯Ό μš΄μ˜μ²΄μ œκ°€ κ²°μ •ν•˜λŠ” 것과 달리

JavaλŠ” JVM(Java virtual Machine)이 ν•©λ‹ˆλ‹€.

 

* μžλ°”λŠ” λ°μ΄ν„°ν˜•μ΄ μ‘΄μž¬ν•˜λŠ” 언어이기 λ•Œλ¬Έμ— μ„ μ–Έμ‹œ μ‚¬μš© 데이터에 λ§žλŠ” μžλ£Œν˜•μ„ μ„ μ–Έν•΄μ•Ό 함.

(파이썬, μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” λ°μ΄ν„°ν˜• 쑴재x)

 

(1) λ³€μˆ˜ 생성 κ·œμΉ™

** λ³€μˆ˜λͺ…은 μ €μž₯될 λ°μ΄ν„°μ˜ 의미λ₯Ό λͺ…ν™•ν•˜κ²Œ λ‚˜νƒ€λ‚΄λŠ” 것이 μ’‹μŒ.

  1. λ³€μˆ˜μ˜ 이름은 영문자(λŒ€μ†Œλ¬Έμž), 숫자, μ–Έλ”μŠ€μ½”μ–΄(_), λ‹¬λŸ¬($)둜만 ꡬ성할 수 μžˆμŠ΅λ‹ˆλ‹€.
  2. λ³€μˆ˜μ˜ 이름은 숫자둜 μ‹œμž‘ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
  3. λ³€μˆ˜μ˜ 이름 μ‚¬μ΄μ—λŠ” 곡백을 포함할 수 μ—†μŠ΅λ‹ˆλ‹€.
  4. λ³€μˆ˜μ˜ μ΄λ¦„μœΌλ‘œ μžλ°”μ—μ„œ 미리 μ •μ˜λœ ν‚€μ›Œλ“œ(keyword)λŠ” μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
  5. camel ν‘œκΈ°λ²•μ„ λ”°λ₯Έλ‹€. (예. taxRate, mathScore...)
//μžλ°”μ˜ ν‚€μ›Œλ“œ
abstract  continue  for         new        switch
assert    default   goto        package    synchronized
boolean   do        if          private    this
break     double    implements  protected  throw
byte      else      import      public     throws
case      enum      instanceof  return     transient
catch     extends   int         short      try
char      final     interface   static     void
class     finally   long        strictfp   volatile
const     float     native      super      while

(2) μžλ°” λ³€μˆ˜ μ„ μ–Έ 방법

1. λ³€μˆ˜ μ„ μ–Έλ§Œ ν•˜λŠ” 방법

int age;
int name;

2. λ³€μˆ˜ μ„ μ–Έκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™”

int age = 20;
int year = 2023;

(3) μ‚¬μš©μž μ •μ˜ μžλ£Œν˜•

- classλŠ” λŒ€ν‘œμ μΈ μ‚¬μš©μž μ •μ˜ μžλ£Œν˜•

- 내뢀에 λ‹€μ–‘ν•œ λ©”μ†Œλ“œλ₯Ό 포함 ν•  수 있음

class NameCard{
	String name;
	int age;
	String addr;
	String eMail;
	String phoneNum;
}

(4) λ³€μˆ˜μ˜ μ‚¬μš© λ²”μœ„

- λ³€μˆ˜λŠ” μ€‘κ΄„ν˜Έ {} λ‚΄μ—μ„œ μ„ μ–Έλ˜κ³  μ‚¬μš© 됨

(λ³€μˆ˜λŠ” μ„ μ–Έλœ 블둝 λ‚΄μ—μ„œλ§Œ μ‚¬μš© κ°€λŠ₯ , μ§€μ—­λ³€μˆ˜)

public static void main(String[] args) {
		int value = 10;  // μ§€μ—­λ³€μˆ˜ { }
		int sum = value + 20;
		System.out.printf("%d\n", sum);
}
public static void main(String[] args) {
		int n = 20;
		if (n > 10) {
			int m = 30; // 쑰건문 λ‚΄μ˜ μ§€μ—­ λ³€μˆ˜
			m = n - 10;
		}
		int k = n + m;
	}

* λ³€μˆ˜ m은 if λ¬Έ λ‚΄μ—μ„œ μ„ μ–Έλœ μ§€μ—­λ³€μˆ˜λ‘œ 컴파일 μ—λŸ¬ λ°œμƒ.

 

(5) μƒμˆ˜(Constant)

- μƒμˆ˜κ°€ λ³€μˆ˜μ™€ λ‹€λ₯Έ 점은 ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰λ˜λŠ” λ™μ•ˆ λ©”λͺ¨λ¦¬μ— μ €μž₯된 데이터 λ³€κ²½ λΆˆκ°€λŠ₯.

- μƒμˆ˜λŠ” final ν‚€μ›Œλ“œλ‘œ μ •μ˜ν•˜κ³  단 ν•œλ²ˆ(μ„ μ–Έκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™” ꢌμž₯)만 값을 μ„€μ •ν•  수 있음.

import java.util.Scanner;

public class Final {
    public static void main(String[] args) {
        final double taxRate = 0.10;
        Scanner sc = new Scanner(System.in);
        System.out.print("μˆ˜μž…μ„ μž…λ ₯ ν•˜μ„Έμš” : ");
        int income = sc.nextInt();
        System.out.println("λ‹Ήμ‹ μ˜ λ‚΄μ•Ό ν•  μ„ΈκΈˆμ€ " + income * taxRate + "원 μž…λ‹ˆλ‹€.");
    }
}

(6) ν˜•λ³€ν™˜

- ν•˜λ‚˜μ˜ νƒ€μž…μ„ λ‹€λ₯Έ νƒ€μž…μœΌλ‘œ λ°”κΎΈλŠ” 것을 ν˜•λ³€ν™˜μ΄λΌκ³  함.

- μžλ°”μ—μ„œλŠ” λ‹€λ₯Έ νƒ€μž…λΌλ¦¬ μ—°μ‚°ν•  경우 λͺ¨λ‘ 같은 νƒ€μž…μœΌλ‘œ λ³€ν™˜μ΄ 된 ν›„ μˆ˜ν–‰λ¨.

- μžλ™ ν˜•λ³€ν™˜μ€ 데이터 크기가 더 큰 것을 κΈ°μ€€μœΌλ‘œ 일어남.

(byte -> short -> int -> long -> float -> double)

int num1 = 1, num2 = 4;
double result1 = num1 / num2;  // μžλ™ ν˜•λ³€ν™˜
double result2 = (double) num1 / num2;  // λͺ…μ‹œμ  ν˜•λ³€ν™˜

System.out.println(result1); // 문제 λ°œμƒ. μ •μˆ˜ / μ •μˆ˜ = μ •μˆ˜. 0.0으둜 λ‚˜μ˜΄.
System.out.println(result2); // ν•˜λ‚˜λ§Œ ν˜•λ³€ν™˜ 해도 데이터 크기가 더 큰 κ²ƒμœΌλ‘œ μžλ™ ν˜•λ³€ν™˜

System.out.println(""+ result1 + 10); // μ—°μ‚°μž μš°μ„ μˆœμœ„μ— μ˜ν•΄μ„œ λ¬Έμžμ—΄λ‘œ κ°„μ£Ό λ©λ‹ˆλ‹€.
System.out.println(result1 + 10 + "10"); // λ¨Όμ € μˆ«μžν˜• νƒ€μž…μ΄ κ³„μ‚°λ˜κ³  λ¬Έμžμ—΄μ΄μΆ”κ°€ λ©λ‹ˆλ‹€.

(μ°Έκ³ )

자주 μ“°μ΄λŠ” ν˜•λ³€ν™˜ λ©”μ†Œλ“œ!

Integer.parseInt(); //λ¬Έμžμ—΄μ„ μ •μˆ˜ int νƒ€μž…μœΌλ‘œ λ³€ν™˜
Double.parseDouble(); //λ¬Έμžμ—΄μ„ μ‹€μˆ˜ double νƒ€μž…μœΌλ‘œ λ³€ν™˜

(7) μ§„μˆ˜ ν‘œν˜„

 1. 2μ§„μˆ˜ : 0b

 2. 8μ§„μˆ˜ : 0234 (숫자 μ•žμ— 0을 λΆ™μž„)

 3. 10μ§„μˆ˜ : 1234

 4. 16μ§„μˆ˜ : 0x21f2

profile

GiantStepDEV

@kongmi

ν¬μŠ€νŒ…μ΄ μ’‹μ•˜λ‹€λ©΄ "μ’‹μ•„μš”β€οΈ" λ˜λŠ” "κ΅¬λ…πŸ‘πŸ»" ν•΄μ£Όμ„Έμš”!