2. Java - 특징 / 인코딩 / 타입 및 데이터 [ 25 / 03 / 25 ]

2025. 3. 25. 23:061%/Java

[ 지식 ]

  • Pull GC가 나타나게 되면서 서버가 다중화 되었다.
  • 그로인해 서버가 2중화 - 서버 증성 - 스위칭 ( LB : A, B, C 경로로 보낸다 )

 

[ 문자코드 ]

  • - js, python 등등 node처럼 바로 실행이 되는 언어 

 

< 특징 >

  • 코드를 짜서 프로그램에 던져주면 Line by Line 으로 '해석' 한다. 
  • 플랫폼 독립적 : 인터프린터 언어이며, 해석기만 존재하면 어디든 실행가능하다.

 

[ 자바의 특징 ] 

  • Java -> ByteCode (Compile) -> 실행
  • Java는 왜 ByteCode로 변환하여 실행할까?
  • 자바는 원래 속도가 느린 언어, 그로인해 ByteCode(Compile)로 변환하여 최적화를 한다.
  • 최적화, 속도, 플랫폼 독립적 (IDE를 사용하기에 크게 못느낀다)
  • 결론적으로 자바는 컴파일, 인터프린터 방식을 같이 쓰는 언어이다. 
  • 자바에서 식의 의미 : 담거나 불러오거나

 

[ 개발 환경에 앞서 ] 

  • JDK 18기준 OS의 처리방식이 바뀌었다. (UTF-8)
  • MacOS같은경우 애초부터 UTF-8 세팅이라서 모든 세팅이 자동으로 되어 한글깨짐 현상을 겪지 않는다.
  • 이러한 문제를 IntelliJ 사용할 때에 Vm Options활용하여 개선할 수 있으며, help - Custom VmOption에서 수정도 가능
  •  settigs - Editor - Encoding 관련 설정을 UTF-8로 통일한다. 즉, 개발전 JDK버전, Encodig을 먼저 체크하고 개발

 

[ 타입이란 ] 

  • 메모리상에 만들어지는 데이터 및 형태
  • Java는 엄격한 타입(Strong type)의 언어이다. 타입이 있어야만 변수로 사용 가능하다.
  • 타입이 강한 언어는 메모리의 형태를 결정하기 위해 타입을 사용한다. 
  • 새로운 데이터를 선언할 때 변수의 앞에 타입을 명시한다.

 

[ 데이터의 특징 ]

  • 대부분의 데이터는 하나의 의미가 여러 의미를 나타낸다.
  • ex) 메뉴판 ( 김밥 : 5000원 )
  • Java에는 여러 데이터를 구성하는 tuple과 같은 구조는 없다. 그래서 구조(Statement)를 만들어서 사용한다. 
  • Statement : 특별하기에 키워드를 붙여 사용한다. ( 자료형처럼 ) 

 

[ 변수의 규칙 ]

1. 처음부터 주어지는 데이터를 변수로 선언

2. 연산을 통해 만들어지는 데이터를 번수로 선언

3. 아직은 알 수 없는 데이터를 변수로 선언

 

 

✈ 변수의 위치에 따른 의미

package org.example;


public class Main {
    public static void main(String[] args) {

        //변수의 위치에 따라 의미가 달라진다.
        //Left = 담는다.
        //Right = 불러온다.
        int num1 = 10;

        num1 = num1 + 5;

        //위 코드를 바이트 코드로 나타내면
        L0
        LINENUMBER 10 L0
        BIPUSH 10   //10을 먼저 메모리상에 잡고
        ISTORE 1    //1에 넣어준다.
        L1
        LINENUMBER 12 L1
        ILOAD 1     //또한 num1을 먼저 불러오고
        ICONST_5    //5또한 메모리상에 잡고
        IADD        //연산을 한다. : CPU를 사용한다.
        ISTORE 1    //담는다.
        L2
        LINENUMBER 16 L2 
        RETURN
    }
}

 

✈ 상수 10의 출처

public class Main {
    public static void main(String[] args) {
        int num = 5;
        num = 10;

        int num2 = 10;
    }
}

🌟 위 식에서 '10'이라는 상수는 메모리상 1개일까 2개일까? 

🌟 Java에서 상수는 불변 = JVM의 경우 같은 수는 1개이다.

 

 

🚀 코드를 짜려하지말고 흐름을 짜자!

 

 

 

 

 

 

'1% > Java' 카테고리의 다른 글

4. 자바 - 데이터 / . / [ ]  (1) 2025.03.27
3. Java - 패러다임 / 클래스(함수)  (0) 2025.03.26
1. Java란? [ 25 / 03 / 24 ]  (0) 2025.03.24