열심히 끝까지

Java1 day01 본문

Java1(주말)

Java1 day01

노유림 2022. 4. 9. 15:10

 첫 수업에서 자바 소개자바 프로그램 개발환경 설치, 변수 및 형변환 그리고 출력메소드에 대해 배웠다.

 우선 자바를 배우기에 앞서 자바가 무엇인지 아는 시간을 가졌다.

 

 자바객체지향 프로그래밍 언어로 운영체제에 따라 프로그램을 변경하지 않아도 실행이 가능한 언어다.

그 덕분에 자바는 다양한 기종의 컴퓨터와 운영체제가 공존하는 인터넷 환경에 적합해 인터넷의 발전과 함께

많은 사용자층을 확보하고 있다.

 자바개발환경을 구축하기 위해서는 이클립스라는 프로그램을 사용한다. 이클립스 중에서도 

Eclipse IDE for Enterprise Java Window x86_64를 다운받으면 usb에 넣어서 언제든 사용 가능하다.

 

 자바의 특징으로는

첫 째, 자바는 Window, Mac, Linux와 같은 운영체제에 대해 독립적이다.

두 번째, 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체지향언어다.

세 번째, 비교적 배우기가 쉽다.

네 번째, 자바로 작성된 프로그램은 free()를 사용하여 메모리 관리를 하는 C언어와는 다르게 

            GC(Garbage Collector)가 자동으로 메모리 관리를 해준다.

 

 자바에서 변수(Variable)값을 저장할 수 있는 메모리 상의 공간을 의미한다. 

 즉, 단 하나의 값을 저장할 수 있는 메모리 공간을 변수라고 한다. 

단 하나의 값만 저장 할 수 있기 때문에 새로운 값을 저장하면 기존의 값은 사라지게 된다.

 

 int number;

 이와 같이 변수를 선언하려면 변수 타입변수 이름이 필요하다. 

 

 변수 타입이란 변수에 저장될 값에 정수형, 실수형, 문자형 등과 같은 타입을 제공하는 것이다.

변수를 선언하게 되면 메모리의 빈 공간에 변수 타입에 맞는 크기의 저장공간이 확보되고

그 저장공간은 변수 이름을 통해 사용된다.

 

 그리고 변수를 선언한 이후로는 변수를 사용할 수 있으나 그 전에 반드시 변수를 '초기화(initialization)'를 해야한다.

변수의 초기화는 '='을 가지고 실행한다. 자바에서 '='은 오른쪽 값을 왼쪽(변수)에 저장하라는 뜻이다.

 초기화는 선언과 동시에 초기화하는 방법과 선언과 초기화를 분리하는 방법이 있다.

선언과 동시에 초기화하는 방법은 int number  = 10;으로 예시를 들 수 있고

선언과 초기화를 분리하는 방법은 int number;

                                            number = 10; 으로 예시를 들 수 있다.

 변수의 명명규칙에는 크게 네 가지가 존재한다.

apple과 aPple이 다른 변수인 것으로 보아 대소문자가 구분되며 길이의 제한이 없고

if, for, while, class와 같이 자바가 이미  쓰고있는 단어인 예약어를 변수 이름으로 사용할 수 없고

1number 처럼 숫자로 변수명을 시작해서는 안되며

'-'와 '$' 이 두가지 특수문자만 변수에 쓸 수 있다.

 

 값에는 문자와 숫자가 존재한다. 또 숫자 내에는 정수와 실수로 값이 구분된다.

문자, 정수, 실수와 같은 값의 종류에 따라 값이 저장될 공간의 크기와 저장형식을 정의한 것을

"자료형(data type)"이라고 한다.

 자료형에는 위에서 언급한대로 문자형, 정수형, 실수형이 있으며,

변수를 선언할 때는 저장하려는 값의 특성을 고려하여 가장 알맞은 변수의 타입으로 선택하면 된다.

 

 자료형은 기본형참조형 두 가지로 나눌 수 있다.

기본형 변수(Primitive type)논리형(boolean), 문자형(char), 정수형(byte, short, int, long),

실수형(float, double)과 같이 계산을 위해 실제 값(data)를 저장하고

참조형 변수(Reference type)는 위에 언급한 8가지를 제외한 나머지 타입으로 어떤 값(data)이 저장되어 있는 주소(memory address)를 값으로 가진다.

 

 기본형 변수의 종류와 타입을 정리하자면

논리형(boolean, 1byte)true와 false 중 하나의 값을 가지며 조건식과 논리적 계산에 사용되고

문자형(char, 2byte)문자를 저장하는데 사용하며 char str = 'a'; 와 같이 변수에 단 하나의 문자만 저장할 수 있다.

정수형byte(1byte), short(c언어 호환, 2byte), int( 4 byte), long(-43억 ~ 43억 저장 시 사용, 8byte)가 있는데

이 중에서도 int가 주로 사용된다.

실수형float(4byte)double(8byte)을 쓰는데 주로 double이 사용된다. 

 

 상수는 변수와 마찬가지로 값을 저장할 수 있는 공간이지만 값을 한번 저장하면 다른 값으로 변경할 수 없다는 특징이 있다.

 상수를 선언하기 위해서는 일반적인 변수 앞에 키워드 'final'를 붙여주면 되고 변수명은 모두 대문자로 작성되어야하며

선언과 동시에 초기화를 해줘야 하며 상수의 값을 변경하는 것이 허용되지 않는다.

 

 리터럴(literal)그 자체로 값이 되는 것을 말한다.

리터럴과 상수의 예시로 삼각형의 넓이를 구해보면

final int WIDTH = 20;     //밑변

final int HEIGHT = 10;    //높이

int triangleArea = (WIDTH * HEIGHT) / 2;  //리터럴

이런 식으로 나온다.

결국 상수는 리터럴에 의미있는 이름을 붙여 코드의 이해와 수정을 쉽게 해준다.

 

 리터럴 타입에는 논리형(접미사 없음), 정수형(l, L(long)), 실수형(f, F(float)), 문자형(접미사 없음), 문자열(접미사 없음)이 있다.

 

 형변환변수의 타입을 다른 타입으로 변환하는 것으로

종류에는 묵시적형변환(자동형변환)명시적형변환(강제형변환) 두 가지가 있다.

 형변환하고자 하는 변수나 리터럴 앞에 변환하고자 하는 타입을 괄호()와 함께 붙여주면 되는데

이때 사용되는 괄호()'캐스트 연산자' 혹은 '형변환 연산자'라고 한다.

예를 들어 실수형인 double d = 45.7; 를 정수형으로 바꾸면

int score = (int)d; 로 변환시키는데 이 변환을 강제형변환이라고 한다.

그리고 score를 출력하게 되면 값은 45가 나온다.

 이처럼 큰 타입에서 작은 타입으로 변환하는 경우, 크기의 차이만큼 잘려나가 값 손실이 발생하게 된다.

하지만 작은 타입에서 큰 타입으로 변환하는 경우, 값 손실은 발생하지 않는다.

double d1 = 30; 로 쓸 수 있으며 이 변환을 자동형변환이라고 한다.

위의 예시는 double d1 = (double)30; 같이도 사용 가능하다. 

그리고 d1을 출력하게 되면 30.0으로 출력하게 된다.

 

 그리고 번외로 String문자열을 다루기 위한 타입으로 기본형이 아니지만 기본형처럼 사용이 가능하다.

String name = "Java"; 에서 보면 문자열을 나타낼 때는 쌍따옴표로 나타낸다. 

그리고 String name1 = "Ja"+"va"를 출력하면 위에 name과 같이 Java로 출력된다. 

이를 토대로 문자열에서 +는 연결의 의미로 사용된다는 것을 알 수 있다.

'Java1(주말)' 카테고리의 다른 글

Java1 day03  (0) 2022.04.16
Java1 day02 보충 2  (0) 2022.04.16
Java1 day02 보충 1  (0) 2022.04.12
Java1 day02  (0) 2022.04.10
Java1 day01 추가 보충  (0) 2022.04.10