(1) - 자료형과 형변환

3535 단어 JavaJava

항상 티스토리만 하다가 벨로그를 써보고 싶어서 Velog로 작성을 시작한다. 마침 Java, JSP, Spring에 관하여 공부한 내용들이 있어 글을 쓸 것이다!! 당연히 Java부터 시작해야겠지..?

1. Java는 대표적으로 3가지의 플랫폼을 두고 있다.

JAVA SE(Stand Edition) : JAVA Application 개발 > 일반적인 어플리케이션 개발
JAVA ME(Mobile Edition) : 휴대 가능한 소형 디바이스에 사용을 목적으로 개발 > 현재의 스마트폰 등작으로 쇠퇴
JAVA EE(Enterprise Edition) : 기업 솔루션 개발 > 가장 핵심

이렇게 3가지의 종류로 나뉘는데 가장 많이 사용하는 것이 SE나 EE이다. 나는 java 16-SE 버전을 설치하고 IDE는 Eclipse를 사용했다. (Intelli J를 써보고 싶었지만..그래도 Eclipse!)

2. Java 언어의 특징이다.

Virtual Machine – 운영체제(윈도우, 리눅스, 맥OS)의 영향을 받지 않는다.
Garbage Collection – 개발자는 메모리 관리를 하지 않는다.
Object Oriented Program(OOP) – 객체지향 언어로 개발과 유지보수를 효율적으로 진행 할 수 있다.

Java는 Virtual Machine을 가지고 있어서 운영체제의 영향을 받지 않는다. Java Program -> VM -> OS의 절차가 있기 때문이다.
그리고 특이하게 개발자가 메모리를 관리하지 않는다. Java엔 데이터 영역과 heap영역이 있는데 heap영역을 가비지 컬렉터가 관리해주기 때문에 따로 메모리관리는 하지않는다. 가장 중요한 것은 Java는 객체지향형 언어이다!! 필자는 python, c, c++ 모두 다 접해봤지만 Java가 가장 편하고 재미있다! (이거는 개인차이!)

JDK랑 IDE는 위에서 언급했듯이 16SE의 Java JDK를 사용하고, Eclipse를 사용하는 중이다.

JDK설치 -> JDK설치
Eclipse 설치 -> Eclipse 설치

(또한 환경변수 설정은 설치된 JDK파일을 시스템 변수로 생성하고 path 변수에 넣어주기만 하면 된다!! cmd에서 실행해보면 됨.)

Java의 컴파일 순서는 다음과 같다.
컴파일 안된 파일(.java) -> 컴파일된 파일(.class) -> OS별 JVM -> OS별 컴퓨터로 이루어져 있다. 흔히 두번째과정 까지가 개발영역, 그 뒤로는 실행영역이라고 불린다.

3. 변수란?

변수는 일단 요술주머니라고 생각하면 편하다. 현실세계에서는 어떤 것이던 들어갈 수 있는 주머니!! 예를 들어 휴대폰, 지갑, 동전같이... Java세계에서는 숫자, 문자, 문자열, 클래스 등등이 들어간다고 생각하면 된다!

public class VarEx {
	public static void main(String[] args) {
		
		System.out.println("변수란 무엇이든 담을수 있는 주머니와 같은 녀석 입니다.");
		
		int i = 10;
		int j = 20;
		int h = 0;
		char c1 = 'a';
		char c2 = 'B';
		char c3 = '^';
		
		System.out.println(i);
		System.out.println(j);
		System.out.println(h);
		System.out.println(c1);
		System.out.println(c2);
		System.out.println(c3);
	}
}

매우 간단한 예제이다. 여기서! int와 char가 중요하다. 이것들은 바로 자료형이다. Java에는 4가지의 자료형이 존재한다. 아래 표를 참고하자.
System.out.println()은 출력하기 위한 함수이다.

제일 많이 사용되는 것이 char, int, boolean이다. char는 문자열을 저장하는 자료형으로 알파벳 같은 것들이 들어갈 수 있다. int는 정수 형태의 숫자가 들어가고, boolean은 참과 거짓(true, false)가 들어간다.

여기서 또 다른 문제가 있다. 만약 내가 int 형 같이 크기가 4byte인 자료형을 쓰다가 이것을 8byte인 double로 형변환을 해줘야한다면...? 두 가지 방법이 있다.

묵시적 형변환: 보다 작은 자료형의 데이터를 큰 자료형으로 옮기는 것.
명시적 형변환: 보다 큰 자료형의 데이터를 작은 자료형으로 옮기는 것.

예제를 통해 알아보자!!!

public class CastingEx {
	public static void main(String[] args) {
		
		int i1 = 10;
		double d1 = i1;
		
		System.out.println("d1 데이터는 " + d1 + "입니다.");
		
		double d2 = 10.0D;
		int i2 = (int)d2;
		
		System.out.println("i2 데이터는 " + i2 + "입니다.");
		
		
	}
}

i1은 자기보다 큰 자료형 즉 double로 바로 형변환이 가능하다. 자료형이 더 크기 때문에 아무런 문제없이 4 -> 8이 가능하다. 이것이 묵시적 형변환이다. 하지만 i2 같은 경우는 8 -> 4이기 때문에 명시적으로 '이것을 int 형으로 바꾼다.'라고 선언해줘야 한다. 그래서 d2를 (int)를 붙여서 i2에 넣어줄 수 있는 것이다!!!

오늘은 여기까지..!

솔직히 Java를 공부하면서 느낀건데 나는 딱 Java체질인 것 같다...다른 언어보다 훨씬 재미있고 이해도 쉬운 것 같다.. (물론 Kotlin과 C++을 하고 공부했기 때문인 것 같지만...ㅎ) 얼른 다른 포스트들도 올려보고 싶다. 서버 개발자가 되기위해..! 아직은 좀 부족한 것 같다..ㅜ

좋은 웹페이지 즐겨찾기