-
JAVA - 변수 및 연산자IT/JAVA 2020. 4. 25. 22:46반응형
JAVA의 기초인데 자주 헷갈릴 때가 많은 것 같다.
'변수 및 연산자'에 정리 한 내용들을 다시 한번 적어보려고 한다.
내용을 정리를 잘하는 편은 아니지만 기초를 다시 한번 공부한다는 생각으로 정리를 시작해본다.
1. 변수란, 하나의 값을 저장할 수 있는 메모리 공간
2. 변수를 사용하는 이유
첫째, 컴파일러 기능이 좋아진다.
둘째, 사람을 위해서
셋째, 디버깅 기능
3. 변수
우리가 쓰는 변수들은 모두 메모리에 저장된다.
메모리 종류중에도 stack이라는 곳이 있다. 변수선언을 한다는 의미는 stack 공간을 사용하면 되겠구나, 이것이다.
stack에서 이름을 가지고 찾는게 아니라, 몇번 째 변수인지 찾아서 대입하는 것이다.
메모리에 들어가있는 선언의 의미는 stack공간에서 전체메모리를 잡는 것을 한다. 이전에 사용하던 메모리 값도 그대로 있다. 그래서 변수들은 항상 초기화를 시켜주어야 한다. 값이 할당되지 않았는데 값을 사용하고 있어서 컴파일 오류가 난다.
JAVA는 가전제품에 사용하려고 만들어졌으며 안정성이 중요하다. 그러므로 JAVA는 명시적으로 명확하게 선언을 해야 한다.
4. 변수 사용 범위
변수는 중괄호 블록 {} 내에서 선언되고 사용한다.
JAVA는 같은 블록안에 같은 이름으로 변수를 낸다면 에러가 난다.
5. 변수의 선언
① int i;
for( 1000번 ) {
② int i;
}
변수를 선언했을 때 1번과 2번중에 어느게 더 빠를까?
소스코드를 컴퓨터가 보면 선언되있는 문장만 다 뽑는다.
거기에 별도의 stack 공간을 만든다. stack은 함수가 실행하기 전에 다 잡힌다.
답은 1번과 2번 둘다 똑같다.
6. 변수 이름이 같다면 어떻게 될까?
변수 이름이 같아도 블로깅 다르다면 어느정도 허용할 수 있다. 블록으로 컴파일러가 인식 한다.
7. 데이터 크기
int = 4byte
char = 2byte
double = 8byte
JAVA외의 언어는 int의 메모리 크기는 OS, 컴파일러에 따라 달라진다.
JAVA에서는 int는 4 byte 이다.
8. 빠른 순서대로 나열하시오.
int > float > double
1~ 10억 연산을 한다면, int 가 10초가 걸렸다고 한다면,
float 와 double은 얼마나 더 느릴까?
int - > float = 1.5배
float -> double = 2배
float와 double은 차이가 많이난다.
특히 32bit 에서는 더 차이가 난다.
9. 타입 변환
4 -> 4.0 - 문제가 없다.
프로모션 promation -> 책임은 컴파일러한테 있다.
4,0 -> 4 - 데이터 손실
<강제> 케스팅 casting -> 책임은 개발자에게 있다.
10. 연산자 우선순위
일반적으로 언어마다 다르다.
산술연산자 > 비교연산자 > 논리연산자 > 조건연산자 > 대입연산자
()괄호를 쓰면 남이 봤을 때 더 편리하게 사용할 수 있다.
11. 이항 연산자
자바에서는 명시적으로 String type ( + ) 가능
모든 타입은 String 으로 가능
12. 산술 연산자의 주의점
정확한 계산은 정수를 사용한다. (실수는 정확하지 않을 수 있다.)
결과값 산출 할 때 OverFlow 주의
NaN과 Infinity 연산은 주의 할 것
boolean 타입을 제외한 모든 기본 타입에 사용 가능
13. 삼항 연산자란?
세 개의 피연산자를 필요로 하는 연산자
앞의 조건식 결과에 따라 콜론 앞 뒤의 피연산자 선택. 이것을 조건 연산식이라고 한다.
생각보다 기본적이지만 까먹을 때가 많은 것 같다.
자바를 처음 공부했을 때 신기하고 재미있던 것들이다.
오늘 다시 한번 정리하고 나의 지식이 되는 그날까지...
끄적끄적..
반응형'IT > JAVA' 카테고리의 다른 글
JAVA - 로또 게임 만들기 (9) 2020.04.28 JAVA - 가위바위보 만들기 (0) 2020.04.28 JAVA - 상속 및 인터페이스 (0) 2020.04.28 JAVA - 클래스 (2) 2020.04.25 JAVA - 조건문과 반복문, 그리고 배열 (0) 2020.04.25 댓글