JAVA

Java 용어 정리 - 변수, 자료형,형변환

서묘_ 2021. 11. 24. 00:46

컴퓨터는 데이터들을 메모리에 올리고 사용한다.

그런데 0과 1만 사용한다고했다.

 

*0은 값이 없다는 의미로 상식적으로도 이미 알고 있지만

프로그래밍에서는 더더욱 어떤 숫자든 0으로는 나눌 수 없다.

 

bit : 데이터의 최소 단위로 2진수 하나의 값을 저장할 수 있는 크기

1byte = 8bit 

 

컴퓨터는 우리가 10진수로 입력해도 2진수로 변경해서 저장한다.

2진수(BIN)만으로는 길이가 너무 길어져 8진수(OCT), 10진수(DEC), 16진수(HEX)를 사용하기도 한다.

저장은 2진수로 하지만 출력은 사람이 보기 편하게 10진수로!

*계산기 설정을 프로그래머로 바꾸면 쉽게 변환 할 수 있다.

 

 

 

< 용어정리 >

 

Project : 하나의 프로그램

 

Class : 기능

 

Package : Class를 모아둔 단위

패키지는 2~3단계 정도 이름을 지정하는게 좋다

ex) sample.test.com -> 3단계 . 으로 단계 추가

 

변수(variable,var) : 말 그대로 변하는 값이다.

프로그래밍에서는 값(Data)를 사용하기 위해 선언하는 것을 변수라고 한다.

하나의 값을 저장하는 공간으로 프로그램 실행 중에 값을 변경 할 수 있다.

 

상수 : 한번 저장하면 값이 고정되는 값이다.

하나의 값을 저장하는 공간으로 프로그램 실행 중에 값을 변경 할 수 없다.

 

배열 : 여러개의 데이터를 모아둔 묶음

 

컬렉션 : 객체들을 모아둔 묶음

 

 

 

< Class 이름 정하기 >

 

자바에서는 이름을 정할 때 카멜(낙타) 표기법을 따른다.

대문자로 시작 - 필수는 아니지만 프로그래머들끼리의 약속이라고한다.

두 단어가 합쳐진 이름이라면 두번째 단어의 첫번째 글자도 대문자

ex) JavaTest

 

이름에 공백이 들어갈 수 없다.

 

숫자로 시작할 수 없다.

 

특수문자는 _ 와 $ 만 가능 - $는 가급적 사용하지 않는게 좋다고한다

 

키워드(예약어)는 사용 불가 - 이미 기능이나 역할이 있는 이름이라 쓸 수 없다고 한다.

 

 

< 변수 이름 정하기 >

 

소문자로 시작. 두개의 단어가 합쳐지면 두번째 단어의 첫글자는 대문자

ex) binaryNumber

 

이왕이면 명사형으로 어떤 의미의 값을 저장하는지 알 수 있게 하는게 좋다.

역할에 어울리는, 의미있는 이름으로

 

 

< 상수 이름 정하기 >

 

모든 글자를 대문자로 두 단어를 합치는 경우라면 _ 사용

ex) JAVA_TEST

 

 

* 이클립스에서 // 달면 주석처리, 코드에 영향을 주지 않음

 /* 긴 주석은

이렇게 처리할수도

있다아아아 */

 

 

< 자료형(Type) >

 

1. 기본형 데이터 타입 : 값을 직접 저장

 

논리형

boolean : 1byte, true or false

 

정수형 - 소수점x, 숫자(리터럴)

byte : 1byte, c호환용으로 거의 안쓴다

short : 2byte

int : 4byte (약 21억 정도), 정수형의 기본형

long : 8byte, 금융권 등 큰 숫자를 지정할 때 사용, 숫자 끝에 L을 표시해서 long타입임을 명시해야함

 

실수형 - 소수점

float : 4byte,  float타입 데이터로 쓰려면 숫자 끝에 f를 명시해야함

double : 8byte, 실수형의 기본형

 

문자형

char : 2byte, 문자형의 기본형

 

2. 참조형 데이터 타입 : 객체 생성 후 객체의 주소값을 저장

 

String 클래스 - 문자열 표현이 목적인 클래스

 

크기별 순서

byte(1) -> short, char(2) -> int(4) -> long(8) -> float(4) -> double(8)

boolean은 둘중 하나라 예외, String은 클래스라 예외

float도 실수라서 크기 재는게 다르다는데 .. 일단 이렇게 외우자

 

 

 

기본 용어와 이름정하는 방법을 정리했으니.. 선언해 보자

 

변수 선언

타입 이름; // 해당 타입의 데이터를 저장할 공간 생성

이름 = 값; // 공간에 값을 저장

타입 이름 = 값; // 한줄에 가능

 

String 클래스는 값을 "" 사이에 넣어준다.

 

ex)

int level;

level = 10;

int level = 10;

 

String str = "ABC";

 

* = : 저장한다, 대입한다. 항상 오른쪽에서 왼쪽으로(★방향중요)

 

 

 

* 값 처리의 원칙

같은 종류(타입)끼리만 대입 가능

같은 종류(타입)끼리만 계산 가능

대입, 계산의 결과도 같은 종류의 값이 나와야함

=> 원칙이 지켜지지 않는 경우라면 형(타입) 변환 한 뒤 처리

 

자바 연산 시

4byte미만의 연산은 정수 기본값인 int로 변환 후 계산됨

4byte 이상의 연산은 더 큰 타입으로 변환 후 계산

 

int + long => (long)int + long

 

 

* 형변환

형(typt)을 변환하는건데 타입이 맞지 않을 경우 사용

묵시적 형변환과 명시적 형변환이 있다.

 

묵시적 형변환

크기별로 외우라고 했던게 이때 써먹나보다..

같은 숫자 형이라면(byte, short, int, long ,float, double)

작은 형에서 큰 형으로 변경하는건 굳이 명시하지 않아도 자동으로 변환된다.

 

ex) double d = 100 + 100.0;

double타입의 d라는 변수에게 int타입의 100 과 double타입의 100.0을 더하려면

원래는 int타입의 100을 double로 바꿔줘야 하지만 알아서 변경해서 연산해준다.

 

명시적 형변환

큰 형에서 작은 형으로 변경하는건 큰컵에 있는 물을 작은컵에 옮기는 꼴 즉 물이 샌다 -> 정보의 손실이 발생한다.

그렇기 때문에 자동으로 변환해주지 않고 오류가 나게된다.

정보의 손실을 감수하더라도 형변환을 해야겠다면 변경할 타입을 명시해줘야한다.

 

ex) int i = 3.14;

이렇게 쓰게되면 int타입 변수 i에 더 큰 타입인 double타입의 3.14가 대입되게 되어 에러가 발생한다.

int i = (int)3.14;

double타입에 int로 명시해주면 소수점을 버리고 정수만 남긴다.

즉 0.14는 손실되고 3만 남는 것.

 

 

 

* 리터럴

프로그램에서 사용하는 모든 숫자, 값, 논리값

리터럴 값은 특정 메모리 공간인 상수풀에 저장됨 필요한 경우 상수풀에서 가져와서 사용.

상수풀에 저장될 때 정수는 int, 실수는 double / 다른 타입으로 하고 싶은 경우 식별자(L, F) 명시

 

 

 

오늘은 여기까지 다들 오늘도 고생하셨어요!