2. Java - 특징 / 인코딩 / 타입 및 데이터 [ 25 / 03 / 25 ]
2025. 3. 25. 23:06ㆍ1%/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 |