(2021.01.07)
이번주에는 자바의 변수, 연산자, 조건문/반복문을 공부했다.
참고했던 자바의 정석의 2,3,4장 내용이어서 읽는데 조금 오래걸렸지만, C언어랑 같은 내용이 많아서 어렵지는 않았다.
book.naver.com/bookdb/book_detail.nhn?bid=10191151
참고 도서: Java의 정석
변수 (variable)
: 단 하나의 값을 저장할 수 있는 메모리 공간
변수의 선언과 초기화
int name; // name 이라는 이름의 변수 선언
변수를 선언하면 변수타입에 알맞는 크기의 저장공간이 확보되고, 이 저장공간은 변수이름을 통해 사용할 수 있다.
변수를 선언하고, 변수를 반드시 초기화하고 사용해야한다.
--> 초기화란 변수를 사용하기 전에 처음으로 값을 저장하는 것을 말한다.
▷ 두 변수의 값 교환하기
class VarEx1 {
public static void main(String[] args) {
int x =10, y=20;
int tmp=0;
System.out println("x:"+ x + "y:" + y);
tmp=x;
x=y;
y=tmp;
System.out.println("x:"+ x + "y:" + y);
▷ 변수의 명명규칙
1. 대소문자가 구분되고, 길이에 제한이 없다 2. 예약어를 사용해서는 안 된다 3. 숫자로 시작하면 안 된다. 4. 특수문자는 _ 와 $ 만 허용한다. |
▷ 자바 프로그래머들에게 권장하는 규칙
1. 클래스 이름의 첫 글자는 항상 대문자로 한다. 2. 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다. 3. 상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어진 경우 _로 구분한다. |
변수의 타입
(※ 자바는 c언어와 다르게 참조형 변수 간의 연산을 할 수 없으므로 실제 연산에 사용되는 것은 모두 기본형 변수이다)
기본형 변수 : 실제 값(data) 저장
논리형(boolean), 문자형(char), 정수형(byte,short,int,long), 실수형(float,doouble) 으로 총 8개
참조형 변수 : 객체의 주소(memory address) 저장
8개의 기본형을 제외한 나머지 타입
--> 참조형 변수를 선언할 때는 변수의 타입으로 클래스의 이름을 사용하므로 클래스의 이름이 참조변수의 타입이 된다.
기본형(primitive type)
분류 | 타입 |
논리형 | boolean |
true와 false 중 하나를 값으로 가지며, 조건식과 논리적 계산에 사용된다. | |
문자형 | char |
문자를 저장하는데 사용되며, 변수에 하나의 문자만 저장할 수 있다. | |
정수형 | byte, short, int, long |
정수를 저장하는데 사용되며, 주로 int가 사용된다. byte는 이진 데이터를 다룰 때 사용된다. short는 c언어와의 호환을 위해 추가되었다. |
|
실수형 | float, double |
실수를 저장하는데 사용되며, 주로 double이 사용된다. |
1 byte | 2 byte | 4 byte | 8 byte | |
논리형 | boolean | |||
문자형 | short | |||
정수형 | byte | short | int | long |
실수형 | float | double |
▷ 논리형 - boolean
기본값(default)은 false이다.
boolean형 변수에는 true와 false 중 하나를 저장할 수 있다.
▷ 문자형 - char
char형 변수는 하나뿐인 문자형 변수이다.
문자가 저장되는 것이 아니고, 문자의 유니코드가 저장된다.
▷ 정수형 - byte, short, int, long
정수형 변수의 기본 자료형은 int이다.
오버플로우를 주의해야한다
--> 오버플로우: 타입이 표현할 수 있는 값의 범위를 넘어서는 것
▷ 실수형 - float, double
연산속도의 향상 or 메모리 절약 --> float 선택
더 큰 값의 범위 or 높은 정밀도 --> double 선택
형변환
: 변수 또는 상수의 타입을 다른 타입으로 변환하는 것
1. boolean을 제외한 나머지 7개의 기본형은 서로 형변환이 가능하다. 2. 기본형과 참조형은 서로 형변환할 수 없다. 3. 서로 다른 타입의 변수간의 연산은 형변환을 하는 것이 원칙이지만, 값의 범위가 작은 타입에서 큰 타입으로의 형변환은 생략할 수 있다. (자동형변환) |
정수형에서 작은 타입에서 큰타입으로의 변환, 정수형에서 실수형으로의 변환 등은 값 손실이 없다.
정수형에서 실수형으로의 변환에서는 실수형의 정밀도의 제한으로 인한 오차가 발생할 수 있다는 것이다.
실수형을 정수향으로 형변환할 때에는 반올림이 발생하지 않는다.
상수와 리터럴
변수: 하나의 값을 저장하기 위한 공간
상수: 값을 한 번만 저장할 수 있는 공간
리터럴: 그 자체로 값을 의미하는 것
'Coding > Java' 카테고리의 다른 글
[Java] Resource leak: 'scanner' is never closed 자바 경고와 해결방법 (2) | 2021.01.15 |
---|---|
[Java] 연산자 (operator), 조건문/반복문 (1) | 2021.01.11 |
[Java] 표준입출력 (0) | 2021.01.01 |
[Java] 이클립스 설치하기 (0) | 2020.12.30 |
[Java] 자바 개발 환경 구축하기 - JDK 설치와 환경변수 설정 (2) | 2020.12.30 |