πŸ’»λ³€μˆ˜μ™€ μžλ£Œν˜•(22.10.26 μžλ°”μˆ˜μ—…)

λ¦¬μ•ˆπŸ€Β·2022λ…„ 11μ›” 17일

μžλ°”κ³΅λΆ€κΈ°λ‘

λͺ©λ‘ 보기
3/21

πŸ“Œ λ³€μˆ˜

  • 값이 λ³€ν•˜λŠ” 수 = λ³€μˆ˜
    -> κΈ°μ–΅μž₯μ†Œμ— 이름을 λΆ€μ—¬ν•˜κ³ , ν˜•μ„ μ§€μ •ν•˜κ³  값을 μ €μž₯
    -> κΈ°μ–΅μž₯μ†Œμ— 값을 μ—¬λŸ¬κ°œλ₯Ό μ €μž₯ν•  수 있음
    -> ν”„λ‘œκ·Έλž¨ κΈ°λ³Έλ‹¨μœ„
    -> λ³€μˆ˜λ₯Ό μ •μ˜(μ„ μ–Έ)ν•˜κ³  값을 μ €μž₯(ν• λ‹Ή)
    -> ν”„λ‘œκ·Έλž¨ 개발 μ‹œ μˆ˜μ •μ„ μ΅œμ†Œν™” ν•˜κΈ° μœ„ν•΄ 고정값을 λ˜λ„λ‘μ΄λ©΄ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€
    * κ·Έλž˜μ„œ λ³€μˆ˜ μ‚¬μš©! = λ³€μˆ˜λ§Œ λ°”κΎΈλ©΄ ν•œ λ²ˆμ— μˆ˜μ •ν•  수 있기 λ•Œλ¬Έμ—
    Β Β Β Β Β 

  • λ³€μˆ˜μ„ μ–Έ
    (κΈ°μ–΅μž₯μ†Œ 크기(데이터 ν˜•νƒœ) μ§€μ •, 이름뢀여)
    - int : 데이터 ν˜•νƒœ - μ •μˆ˜ν˜•, κΈ°μ–΅μž₯μ†Œ 4λ°”μ΄νŠΈ 크기 μ§€μ •
    - 컴퓨터 μ €μž₯ 0,1 μ €μž₯ => 1 bit

    1byte => 8bit
    4byte => 32bit

    - int μ΄ˆκΈ°κ°’ ν• λ‹Ή(κΈ°μ–΅μž₯μ†Œ 값을 μ§€μ •)
    int a;
    a=10;


πŸ“Œ κΈ°λ³Έμžλ£Œν˜• μ’…λ₯˜

μ •μˆ˜ν˜• : μ†Œμˆ˜μ  μ—†λŠ” 수(음수, μ–‘μˆ˜, 0)
Β Β Β Β Β Β Β Β Β : byte(1byte), short(2byte), int(4byte)
Β Β Β Β Β Β Β Β Β : long(8byte)
μ‹€μˆ˜ν˜• : μ†Œμˆ˜μ  μžˆλŠ” 수
Β Β Β Β Β Β Β Β Β : float(4byte), double(8byte)
λ¬Έμžν˜• : κΈ€μž ν•œ 자 μ €μž₯ => μ •μˆ˜
Β Β Β Β Β Β Β Β Β : char(2byte)
λ…Όλ¦¬ν˜• : boolean(1byte)
Β 

  • μ •μˆ˜μžλ£Œν˜•
    10μ§„μˆ˜ 10(101 + 01)
    => 2μ§„μˆ˜ 81 + 40 + 21 + 10 => 1010

Β Β Β * λ²”μœ„
     byte(1byte) : -2의7승 ~2의7승 -1(-128 ~ 127)
     short(2byte) : -2의15승 ~ 2의15승 -1
     int(4byte) : -2의31승 ~ 2의31승 -1
     long(8byte) : -2의63승 ~ 2의63승 -1

Β Β Β Β Β - byte b=10;
Β Β Β Β Β Β Β b=128; => λ²”μœ„ 초과 μ—λŸ¬ λ°œμƒ

   short c=300; // (-32768 ~ 32767)
   int d=100000000; //(-2147483648 ~ 2147483647)
   long e=200000;
   int num1=12345678900; => λ²”μœ„ 초과 μ—λŸ¬ λ°œμƒ
   long num2=12345678900L;

Β Β Β Β Β - 기본적으둜 μˆ«μžκ°’μ„ int 인식
Β Β Β Β  - μˆ«μžμ— longν˜•μ„ ν‘œμ‹œν•˜λŠ” L, l

    long num3=1000;

Β Β Β Β - 1000 int 인식 => λ²”μœ„κ°€ 초과 λ˜μ§€ μ•ŠμŒ
Β Β Β Β Β Β Β => μ—λŸ¬ λ°œμƒ ν•˜μ§€ μ•ŠμŒ => μžλ™μœΌλ‘œ longν˜• λ³€ν™˜

  • 문자 μžλ£Œν˜•(char ν˜•) : κΈ€μž ν•œ 자
    0,1 μ‘°ν•©, A => 0,1μ‘°ν•© 65
    - 문자 인코딩 : 문자λ₯Ό μ •ν•΄μ§„ μ½”λ“œ κ°’μœΌλ‘œ λ³€ν™˜
    - μ•„μŠ€ν‚€(ASCII)μ½”λ“œ : 문자 인코딩
    - 영문자 숫자 특수 문자λ₯Ό λ‚˜νƒ€λ‚΄λŠ” λ¬Έμžμ„ΈνŠΈ
    - μ•„μŠ€ν‚€μ½”λ“œν‘œ 검색
    - μ•„μŠ€ν‚€μ½”λ“œ 1byte(256개) λŒ€λ¬Έμž, μ†Œλ¬Έμž, 특수문자, 기호
    - ν•œκΈ€, λ‹€λ₯Έμ–Έμ–΄ 문자 => 2byte
    - 각 μ–Έμ–΄ ν‘œμ€€ 인코딩을 μ •μ˜ => μœ λ‹ˆμ½”λ“œ
    - ν•œ 자의 λ¬ΈμžλŠ” ''(μž‘μ€ λ”°μ˜΄ν‘œ)μ•ˆμ— 넣어야함
    Β Β Β ex) char ch8="A"; ""μ—λŸ¬ λ°œμƒ
    char a='A';
    System.out.println(a);

Β Β Β Β Β Β Β -> 'A' 문자 좜λ ₯

    System.out.println((int)a);

- 'A' μ •ν•΄μ§„ μ½”λ“œκ°’ λ³€ν™˜ 좜λ ₯=> int ν˜•μœΌλ‘œ λ³€ν™˜
- 'A' -> 65 인코딩
- 'A' <- 65 λ””μ½”λ”©

   char ch2='a';
   System.out.println(ch2);
   System.out.println((int)ch2);

   char ch3=66;
   System.out.println(ch3);

   int ch4=67;
   System.out.println(ch4);
   System.out.println((int)ch4);

  • μ—¬λŸ¬κ°œ 문자λ₯Ό μ €μž₯ => λ¬Έμžμ—΄ => μ°Έμ‘°ν˜•
   String ch="ABC";

Β Β Β Β - μœ λ‹ˆμ½”λ“œ : μ „ μ„Έκ³„μ˜ λͺ¨λ“  문자λ₯Ό μ²˜λ¦¬ν•  수 μžˆλ„λ‘ λ§Œλ“  ν‘œμ€€ 문자 μ „μ‚° μ²˜λ¦¬λ°©μ‹

   char ch9='ν•œ';
   System.out.println(ch9);

   char ch10='\uD55C';
   System.out.println(ch10);
   
   char ch11=-66;  // char μŒμˆ˜μ—†μŒ
   int b=-66;
   System.out.println((char)b);  // μ•Œ 수 μ—†λŠ” 문자좜λ ₯

- UTF-8, UTF-16 인코딩
- μžλ°” UTF-16 2λ°”μ΄νŠΈ ν‘œν˜„ => 영문일 κ²½μš°μ—λŠ” 1byte κΈ°μ–΅μž₯μ†Œ λ‚­λΉ„
- UTF-8 1~4λ°”μ΄νŠΈ 문자 ν‘œν˜„ => κΈ°μ–΅μž₯μ†Œ λ‚­λΉ„κ°€ 적고 속도가 빠름 μΈν„°λ„·μ—μ„œ 많이 μ‚¬μš©

  • μ‹€μˆ˜ μžλ£Œν˜• : μ†Œμˆ˜μ μ΄ μžˆλŠ” 숫자
    μ‹€μˆ˜ν˜• : μ†Œμˆ˜μ  μžˆλŠ” 수
    Β Β Β Β Β Β Β Β Β Β : float(4byte), double(8byte)
    뢀동 μ†Œμˆ˜μ  방식 : 0.1 => 1.0 * 10 -1승
    float λΆ€ν˜Έ 1λΉ„νŠΈ. μ§€μˆ˜(승) 8λΉ„νŠΈ, κ°€μˆ˜ 23λΉ„νŠΈ=>32
    double λΆ€ν˜Έ 1λΉ„νŠΈ. μ§€μˆ˜(승) 11λΉ„νŠΈ, κ°€μˆ˜ 52λΉ„νŠΈ=>64
   double dnum=3.14;
   System.out.println(dnum);
   // μˆ«μžμ— float ν‘œμ‹œ F, f
   float fnum=3.14F;
   System.out.println(fnum);

  • 논리 μžλ£Œν˜• : μ°Έ, κ±°μ§“ 값을 λ‚˜νƒ€λ‚΄λŠ”λ° μ‚¬μš©
    boolean(1byte)
    남여, κ²°ν˜Όμ—¬λΆ€,...
   boolean b=true;
   System.out.println(b);
   boolean c=false;
   System.out.println(c);

- κΈ°μ–΅μž₯μ†Œ(λ³€μˆ˜) => κΈ°μ–΅μž₯μ†Œμ˜ 크기, μžλ£Œν˜• μ§€μ •
Β Β μžλ°” 10 버전 λΆ€ν„°λŠ” μ§€μ • μ•ˆν•΄λ„ 지원
Β  μ»΄νŒŒμΌλŸ¬κ°€ μžλ£Œν˜• μΆ”μΈ‘

   var num=10;
   System.out.println(num);

   var dNum=10.0; //double
   var str="hello"; //String λ¬Έμžμ—΄

   num="문자"; => μ—λŸ¬λ°œμƒ
   str=3;     => μ—λŸ¬λ°œμƒ
  • μƒμˆ˜ : λ³€ν•˜μ§€ μ•ŠλŠ” 수, λŒ€λ¬Έμž
    원면적 : λ°˜μ§€λ¦„ λ°˜μ§€λ¦„ 3.14
   int r=10;     // λ°˜μ§€λ¦„
   final double PI=3.14;  // μ›μ£Όμœ¨ 3.14
   - final - 값을 λ³€κ²½ λͺ»ν•˜κ²Œ λ§‰μ•„μ€Œ
   PI=4.15; κ°’ λ³€κ²½ => μ—λŸ¬ λ°œμƒ

   final int NUM;
   NUM=0; //μ΄ˆκΈ°κ°’
   NUM=10; // -> μ—λŸ¬ 생김
 
   MY_AGE μƒμˆ˜ μ„ μ–Έ => 좜λ ₯
   final int MY_AGE=20;
   System.out.println(MY_AGE);
  • λ¦¬ν„°λŸ΄ : ν”„λ‘œκ·Έλž¨μ—μ„œ μ‚¬μš©ν•˜λŠ” λͺ¨λ“  μˆ«μžκ°’, λ¬Έμžκ°’, 논리값
    Β Β Β Β Β Β Β Β Β : 10, 3.4, 'A', true
  • λ¬Έμžμ—΄ 데이터 => μ°Έμ‘°ν˜• 데이터
    "" 큰 λ”°μ˜΄ν‘œλ‘œ ν‘œν˜„, 0개 이상 문자
    String νƒ€μž… => μ°Έμ‘° 데이터 νƒ€μž…, κΈ°λ³Έ 데이터 νƒ€μž… μ•„λ‹˜ - "Hello World" 좜λ ₯
    System.out.println("Hello world");
    - λ³€μˆ˜μ— μ €μž₯ => 좜λ ₯
    String str="홍길동";
     System.out.println(str);
    - μ•ˆλ…•ν•˜μ„Έμš”
    Β μžλ°” Β Β Β Β ν”„λ‘œκ·Έλž˜λ° =>좜λ ₯ν•˜κΈ°
    Β Β (μ΄μŠ€μΌ€μ΄ν”„ 문자 μ€„λ°”κΏˆ(\n), νƒ­(\t), λ‹€μŒμ€„λ‘œ 이동 \n)
     System.out.println("μ•ˆλ…•ν•˜μ„Έμš”\nμžλ°”\tν”„λ‘œκ·Έλž˜λ°");

0개의 λŒ“κΈ€