JAVANOJOSEKI

개발일지.·2023년 6월 10일
0

1.1 변수

단 하나의 값을 저장할 수 있는 메모리 공간

1.2 변수의 선언과 초기화

int age; // age라는 이름의 변수를 선언

변수타입: 변수에 저장될 값이 어떤 타입인지
변수이름: 변수에 붙인 이름 => 메모리 공간에 이름을 붙여주는 것
結論
변수타입-> 메모리의 빈 공간에 알맞은 크기의 저장공간 확보
변수이름-> 저장공간 사용

변수의 초기화

변수를 선언한 이후부터는 변수를 사용할 수 있으나 그 전에 반드시 변수를 초기화해야 한다.
garbage value가 남아있을 수 있기 때문이다

  • 타입이 같은 변수는 여러 변수를 한 줄에 선언함
int a,b;
int x = 0, y = 0;

변수의 초기화란, 변수를 사용하기 전에 처음으로 값을 저장

변수의 명명규칙

  1. 대소문자가 구분되어 길이에 제한이 없다
  2. 예약어를 사용해서는 안 된다.
  3. 숫자로 시작해서는 안 된다.
  4. 특수문자는 '_'와 '$'만을 허용한다.

자바프로그래머 권장 규칙

  1. 클래스 이름의 첫 글자는 항상 대문자로 한다.
  2. 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다.
  3. 상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어진 경우 '_'로 구분된다.

변수의 타입

기본형(primitive type)

  • 논리형(boolean),문자형(char), 정수형(byte,short,int,long), 실수형(float,double)

참조형(reference type)

  • 객체의 주소를 저장함 8개의 기본형을 제외한 타입

기본형

boolean형을 제외한 기본형은 연산과 변환이 가능하다

상수와 리터럴

상수는 한 번 값을 저장하면 다른 값으로 변경할 수 없다

 final int MAX_SPEED = 10;

상수의 이름은 모두 대문자로 하는 것이 관례다.

리터럴 = 그 자체로 값을 의미하는 것, 상수랑 같은 의미이다.

논리형: false,true 없음
정수형: 123, 0b0101, 077, 0xFF, 100L L
실수형: 3.14, 3.0e8, 1.4f, 0x1.0p-1 f,d
문자형: 없음
문자열: 없음

int octNum = 010;
int hexNum = 0x10;
int binNum = 0b10;
long big = 100_000_000_000L;
long hex = 0xFFFF_FFFF_FFFF_FFFFL;
float pi = 3.14f;
double rate = 1.618d;

float타입 리터럴에는 'f'를
double 타입 리터럴에는 'd'를 붙인다

오류!

float pi = 3.14;
double rate = 1.618;

3.14는 접미사가 붙지 않았으므로 float타입 리터럴이 아니라 double타입 리털로 간주된다.
리터럴의 접두사와 접미사는 대문자를 구별하지 않지만 대문자를 사용하는 것이 낫다.

리터럴에서는 10의 제곱을 나타내는 e,f,d를 실수형으로 간주

타입의 불일치

지정될 변수의 타입과 일치하는 것이 보통이지만 타입이 달라도 저장된 범위가 넓은 타입에 좁은 타입의 값을 저장하는 것은 허용

int i = 'A';
long l = 123;
double d = 3.14f;

BUT 리터럴의 값이 변수의 타입의 범위를 넘어서거나, 리터러의 타입이 변수의 타입보다 저장범위가 넓으면 컴파일 에러가 발생

int i = 0x123456789; //에러 int타입의 범위를 넘는 값 저장
float f = 3.14; // 에러. float 타입보다 double타입의 범위가 넓다

문자 리터럴과 문자열 리터럴

Stirng str = ""; //OK 내용이 없는 빈 문자열
char ch = ''; 에러. ''안에 반드시 하나의 문자가 필요
char ch = ' '; // OK. 공백 문자(blank)로 변수 ch를 초기화

문자열 + any type -> 문자열 + 문자열 -> 문자열
any type + 문자열 -> 문자열 + 문자열 -> 문자열

기본형 타입의 값을 문자열로 변환할 때 아무런 내용 없는 빈 문자열("")을 더하면 된다

1.3 형식화된 출력 -printf()

profile
もう少し高く、もっと深く

0개의 댓글

관련 채용 정보