배경
파이썬을 역시 찍먹 수준으로 다뤄봤지만, 자바와는 참 많이 다르는다는 걸 느낀다.
당장 자와 달랐다고 느낀 점을 정리해보기로 한다.
상세
📝파이썬과 다른 자바의 특징
우선 간단하게 비교해보면 파이썬은 스크립트 언어, 자바는 컴파일 언어이다.
스크립트 언어인 파이썬 코드를 실행하는 과정에서 인터프리터를 통해 소스코드를 읽고 실행하는 방식을 사용한다.
즉, 코드를 작성한 후에 바로 실행할 수 있다. 그래서 개발 속도가 빠르고 간단한 작업을 수행하는데 유리한 특징이 있다. 흔히 Pythonic code라는 말을 많이 하는데 아마도 이러한 특징에 기인하지 않았나 싶다.
반면, 컴파일 언어인 자바는 소스 코드를 컴파일러를 통해 기계어로 변환하는 작업을 필요로 한다. 이 변환된 기계어 코드가 나중에 실행시 사용된다.
좀 더 자세히 들어가면 자바는 소스 코드를 자바 컴파일러(javac)를 사용하여 바이크 코드(Bytecode)로 변환한다. 이 바이트 코드는 자바 가상 머신(JVM)에서 실행된다. 이 컴파일 언어의 특징은 실행속도가 빠르다는 것이다. 또 다양한 플랫폼에서 실행할 수 있고, 배포 시에 소스 코드를 공개하지 않아도 되는 특징이 있다.
다음은 실제로 공부하면서 느낀 차이점 몇 가지이다.
1️⃣ 변수 타입 선언
자바에서는 파이썬과 달리 변수의 타입을 명시해야 한다. 예를 들면 정수형 변수를 선언할 때는 "int", 실수형 변수를 선언할 때는 "double"과 같은 타입을 사용한다. '<타입명><변수명>;' 으로 구성되며, 다음은 예제 코드이다.
public class VariableInitializationExample {
public static void main(String[] args) {
int value = 30; #int 변수 선언
int result = value + 10; # value에 10을 더한 값을 다시 변수 선언
System.out.println(result);
}
}
동적 타이핑 언어로 변수는 할당되는 값에 따라 알잘딱깔센하게 결정되는 파이썬과는 다른 특징이다.
2️⃣ 변수 타입 변환
첫 번째 특징과 같은 맥락인데 자바에서는 타입 변환이 명시적(explicit)으로 이루어진다. 따라서 코드를 작성할 때 변환을 명시적으로 지정해야 한다.
또한, 작은 크기의 데이터 타입에서 큰 크기의 데이터 타입으로의 자동 타입 변환이 일어나는데, 이를 묵시적(implicit) 타입 변환 또는 확대 변환이라고 한다.
예를 들어 'int'를 실수형 변수인 'double'로 변환할 때는 명시적인 형변환 연산자를 사용해야 한다. 'double num = (double) intValue;와 같이 '(double)'을 사용하여 형변환을 수행한다.
public class CastingExample {
public static void main(String[] args) {
int intValue = 44032; //int형의 유니코드를 char형로 변환
char charValue = (char) intValue;
System.out.println(charValue);
long longValue = 500; //long형의 숫자를 int형(더 작은 단위)로 변환
intValue = (int) longValue;
System.out.println(intValue);
double doubleValue = 3.14; //double형의 숫자를 int형로 변환(소수점이 버려지고 정수만 출력)
intValue = (int) doubleValue;
System.out.println(intValue);
}
}
3️⃣ 큰/작은 따옴표 구분
파이썬에는 두 가지를 크게 구분하는 것 같지 않았지만, 자바에서는 사용이 구분되어 있다.
큰따옴표(")는 문자열(string)을 감쌀 때 쓴다.
예를 들어, String c = "John";과 같이 큰따옴표를 사용하여 문자열을 생성하고 변수에 할당할 수 있다. 작은따옴표(')는 주로 문자(char)를 표현할 때 사용된다.
예를 들어, char c = 'A';와 같이 작은따옴표를 사용하여 문자를 생성하고 변수에 할당할 수 있다.
만약, 문자열을 작은 따옴표로 감싸면 다음과 같은 오류가 나온다.
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Invalid character constant
'스터디 > 혼공학습단 10기 - 자바 & 머신러닝' 카테고리의 다른 글
[혼공학습단] - 혼공자바 2주차(7/10 ~ 7/16) (0) | 2023.07.16 |
---|---|
[혼공학습단] - 혼공머신 2주차(7/10 ~ 7/16) (0) | 2023.07.16 |
[혼공학습단] Java - print() 메서드 종류 (0) | 2023.07.09 |
[혼공학습단] - 혼공자바 1주차(7/3 ~ 7/9) (0) | 2023.07.05 |
[혼공학습단] - 혼공머신 1주차(7/3 ~ 7/9) (0) | 2023.07.02 |
댓글