자바 공부2

윤현우·2022년 8월 9일
0

자바공부

목록 보기
2/6
post-thumbnail

📕변수


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

  • 수학에서 '변수'를 '변하는 수'라고 정의한다.
  • 하지만 프로그래밍 언어에서의 변수(variable)이란, 값을 저장할 수 있는 메모리상의 공간을 의미한다.
  • 변수의 이름은 짧을수록 좋지만, 약간 길더라도 용도를 알기 쉽게 '의미있는 이름'으로 하는 것이 좋다.

변수의 초기화

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

  • 변수를 사용하려면 변수를 반드시 '초기화' 해야한다.
  • 메모리는 여러 프로그램이 공유하는 자원이므로 전에 다른 프로그램에 의해 저장된 '알 수없는 값'이 남아있을 수 있기 때문이다.
int age = 25; // 변수 age를 선언하고 25로 초기화한다.
  • 변수를 선언할 때 타입이 같은 경우 콤마 ','를 구분자로 여러 변수를 한줄에 선언할 수 있다.
int a,b; int x= 0, y = 20;

변수의 명명규칙

'변수의 이름'처럼 프로그래밍에서 사용하는 모든 이름을 '식별자(identifier)' 라고 하며, 식별자는 같은 영역 내에서 서로 구분(식별)될 수 있어야 한다.

  1. 대소문자가 구분되며 길이에 제한이 없다.
    -True와 true는 서로 다른 것으로 간주된다.
  2. 예약어를 사용해서는 안된다.
    -true는 예약어라 사용할 수 없지만, True는 가능하다.
  3. 숫자로 시작해서는 안된다.
  4. 특수문자는 '_' 와 '$' 만을 허용한다.

자바 프로그래머들에게 권장하는 규칙

  1. 클래스 이름의 첫글자는 항상 대문자로 한다.
    -변수와 메서드의 이름의 첫글자는 항상 소문자로 한다.
  2. 여러단어로 이루어진 이름은 단어의 첫글자를 대문자로 한다.
    -StringBuffer, lastIndexOf
  3. 상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어진 경우 '_'로 구분한다.
    -PI, MAX_NUMBER

📕변수의 타입


기본형

기본형(primitibe type): 실제 값(data)을 저장

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

기본형의 종류와 크기

종류\크기1 byte2byte4 byte8 byte
논리형boolean
문자형char
정수형byteshortintlong
실수형floatdouble

참조형

참조형(reference type): 어떤 값이 저장되어 있는 주소를 값으로 갖는다.

  • (객체의 주소를 저장) 기본형을 제외한 나머지 타입

참조형 변수를 선언할 대는 변수의 타입으로 클래스의 이름을 사용하므로 클래스의 이름이 참조변수의 타입이 된다.

Date today = new Date(); //Date 객체를 생성해서, 그 주소를 today에 저장

📕상수와 리터럴


상수

'상수(constant)'는 변수와 마찬가지로 '값을 저장할 수 있는 공간'이지만, 변수와 달리 한번 값을 저장하면 다른 값으로 변경할 수 없다.

  • 상수는 변수의 타입 앞에 키워드 'final'을 붙여 선언할 수 있다.
  • 상수는 반드시 선언과 동시에 초기화해야 하며, 그 후 부터는 상수의 값을 변경하는 것이 허용되지 않는다.
  • 상수의 이름은 모두 대문자로 하는 것이 암묵적인 관례이며, 여러 단어로 이루어져있는 경우 '_'로 구문한다.
final int MAX_SPEED; // 에러. 상수는 선언과 동시에 초기화해야함
final int MAX_SPEED = 100; // OK. 선언과 동시에 초기화했음

상수를 사용하는 이유는 리터럴에 '의미있는 이름'을 붙여서 이해와 수정을 쉽게 만들기 때문이다.

리터럴

'리터럴(literal)'은 단지 우리가 기존에 알고 있던 '상수'의 다른이름이다.

프로그래밍에서 상수를 '값을 한 번 저장하면 변경할 수 없는 저장공간'으로 정의하였기 때문에 이와 구분하기 위해 상수 대신 리터럴을 사용하는 것이다.

int year = 2022; // year은 변수
final int MAX_VALUE = 100; // 여기서 2022와 100은 리터럴, MAX_VALUE는 상수이다.

리터럴의 타입과 접미사

변수에 타입이 있는 것처럼 리터럴에도 타입이 있다.

  • 리터럴에 접미사를 붙여서 타입을 구분한다.
종류리터럴접미사
논리형false, true없음
정수형123,0b0101, 077, 0xFF,100LL
실수형3.14, 3.0e8, 1.4ff, d
문자형'A', '1', '\n'없음
문자열"ABC", "123", "A", "true"없음

정수형

  • 정수형일 경우 long타입의 리터럴에 접미사 'l' 또는 'L'을 붙인다.
    -접미사가 없으면(또는 생략) int 타입의 리터럴이다. (정수형의 기본 자료형은 int 이다. )
    -byte와 short타입의 리터럴은 별도로 존재하지 않는다.

실수형

  • 실수형일 경우 float타입의 리터럴에 접미사 'f' 또는 'F'를 붙이고, double타입의 리터럴에는 접미사 'd'또는 'D'를 붙인다
    -실수형에서는 double이 기본 자료형이라서 접미사 'd'는 생략이 가능하다.
    -float는 접미사나 정밀도 등 신경 쓸 것이 많아 귀찮다면 그냥 double을 사용하는게 편하다.

문자, 문자열

  • 문자 리터럴은 작은따옴표로 문자 하나를 감싸고, 문자열 리터럴은 큰따옴표로 두 문자 이상을 감싼다.
  • 문자열 리터럴은 안에 아무런 문자도 넣지 않는 것을 허용한다. 하지만 문자 리터럴은 반드시 안에 하나의 문자가 있어야 한다
String str = ""; // OK. 내용이 없는 빈 문자열
char ch = ''; // error. ''안에 반드시 하나의 문자가 필요
profile
개발자가 되는 그날까지

0개의 댓글