자바의정석 ch1, ch2

soso·2023년 2월 8일
0
post-thumbnail

Chapter1 자바를 시작하기 전에

자바의 특징
1. 운영체제에 독립적이다.
2. 객체지향 언어이다.
3. 비교적 배우기 쉽다.
4. 자동 메모리 관리(Garbage Collection)
5. 네트워크와 분산처리를 지원
6. 멀티쓰레드 지원
7. 동적로딩(Dynamic Loading) 지원

JVM(JAVA VIRTUAL MACHINE)
JVM은 Java virtual machine'을 줄인 것으로 자바로 작성된 애플리케이션은 모두 JVM에서만 실행되기 때문에 반드시 JVM이 필요하다.

Chapter2 변수

변수의 선언과 저장

변수
하나의 값을 지정할 수 있는 저장 공간

변수 타입 변수 이름;
변수의 타입은 변수에 저장될 값에 따라 달라지며, 저장 공간을 구분할 수 있는 이름이 필요하다.

변수는 하나의 값만 저장할 수 있다.
이미 값이 저장된 변수에 새로운 값을 저장하면 기존의 값은 지워지고 새로 저장된 값만 남는다.

변수의 타입

변수의 타입은 참조형과 8개의 기본형이 있는데 이번챕터에서는 일단 자주쓰이는 타입만 소개했다.

상수와 리터럴

상수(constant)
상수는 변수와 마찬가지로 '값을 저장할 수 있는 공간'이다.
하지만 변수와 달리 한번 값을 저장하면 다른 값으로 변경할 수 없다.
상수를 선언하는 방법은 변수와 동일하지만 변수의 타입 앞에 키워드 final을 붙여준다.
또한 상수의 이름은 모두 대문자로 하는것이 관례이며, 여러 단어인 경우'_'로 구분한다.

리터럴
그 자체로 값을 의미하는 것을 리터럴(literal)이라고 한다.
상수(constant)와 의미가 같지만 프로그래밍에서는 상수를 '값을 한번 저장하면 변경할 수 없는 저장 공간'으로 정의하기 때문에
이와 구분하기 위해 '리터럴'이라는 용어를 사용한다.
리터럴이라는 용어를 처음 접하면 어려워하는데, 리터럴은 기존에 알고 있던 '상수'의 다른 이름일 뿐.

리터럴의 타입과 접미사

변수에 타입이 있듯이 리터럴에도 타입이 있다.
변수의 타입은 저장될'값의 타입(리터럴의 타입)'에 의해 결정되고 리터럴에 타입이 없다면 변수의 타입도 필요 없다.

정수형
정수형의 경우, 1ong타입의 리터럴에 접미사 'l' 또는 'L'을 붙이고, 접미사가 없으면 int타입 의 리터럴이다
short타입의 리터럴은 별도로 존재하지 않으며 byte와 short타입의 변수에 값을 저장할 때는 int타입의 리터럴을 사용한다.

실수형
실수형 리터럴에는 접미사를 붙여서 타입을 구분하며,
float타입 리터럴에는 'f'를, double타입 리터럴에는 'd'를 붙인다.
정수형에서는 int가 기본 자료형인 것처럼 실수형에서는 double이 기본 자료형이라서 접미사 'd'는 생략 가능하다.

10진수, 일에도 2. 8. 16진수로 표현된 리터럴을 변수에 저장할 수 있고 16진수라는 것을 표시하기 위해 리터럴 앞에 접두사 '0x' 또는 '0X'를, 8진수의 경우에는 '0'을 붙인다.

기본형과 참조형

우리가 주로 사용하는 값(data)의 종류(type)는 크게 '문자와 숫자로' 나눌 수 있으며, 숫자는 다시 '정수와 실수'로 나눌 수 있다.

이러한 값(data)의 종류(type)에 따라 값이 저장될 공간의 크기와 저장 형식을 정의한 것이
자료형(data type)이다.
자료형에는 문자형(char), 정수형(byte, short, int, long), 실수형(float, double) 등이 있다.
변수를 선언할 때 저장하려는 값의 특성을 고려하여 가장 알 맞은 자료형을 변수의 타입으로 선택하면 된다.

기본형과 참조형
자료형은 크게 기본형'과 '참조형' 두 가지로 나눌 수 있다.
기본형 변수는 실제 값(data)을 저장하는 반면, 참조형 변수는 어떤 값이 저장되어 있는 주소(memory address)를 값으로 갖 는다.
자바는 C언어와 달리 참조형 변수 간의 연산을 할 수 없으므로 실제 연산에 사용되는 것은 모두 기본형 변수이다.

기본형 (primitive type)
논리형(boolean). 문자형(char), 정수형(byte, short, int, long), 실수형(float, double) 계산을 위한 실제 값을 저장한다. 모두 8개이다.
참조형(reference type)
객체의 주소를 저장한다. 8개의 기본형을 제외한 나머지 타입.

기본형의 종류와 범위

기본형에는 모두 8개의 타입(자료형)이 있다.
크게 논리형, 문자형, 장수형, 실수형으로 구분된다.
정수형 중에서는 int가 기본이고, 실수형에서는 double이 기본이다.

  • boolean은 true와 false 두 가지 값만 표현할 수 있으면 되므로 가장 작은 크기인 1 byte.
  • char은 자바에서 유니코드(2 byte 문자체계)를 사용하므로 2 byte.
  • byte는 크기가 1 byte라서 byte.
  • int(4 byte)를 기준으로 짧아서 short(2 byte), 길어서 long(8 byte). (short ↔ long)
  • float는 실수값을 부동소수점(floating- point) 방식으로 저장하기 때문에 float.
  • double은 float보다 두 배의 크기(8 byte)를 갖기 때문에 double.

printf를 이용한 출력

지금까지 화면 출력에 사용해온 printin()은 사용하기 편하지만 변수의 값을 그대로 출력하 므로, 값을 변환하지 않고는 다른 형식으로 출력할 수 없다.
같은 값이라도 다른 형식으로 출력하고 싶을 때,
소수점 둘째자리까지만 출력하거나 정수를 16진수나 8진수로 출력할 때 printf()를 사용하면 된다.

printf()는 '지시자(specifier)'를 통해 변수의 값을 여러 가지 형식으로 변환하여 출력하는 기능을 가지고 있다.
지시자는 값을 어떻게 출력할 것인지를 지시해주는 역할을 한다.
정수형 변수에 저장된 값을 10진 정수로 출력할 때는 지시자 '%d'를 사용하며,
변수의 값을 지정 된 형식으로 변환해서 지시자 대신 넣는다.
예를 들어 int타입의 변수 age의 값이 14일 때, printf()는 지시자 '%d' 대신 14를 넣어서 출력한다.

타입 간의 변환방법

  1. 숫자를 문자로 변환 - 숫자에'0'을 더한다
    (char)(3 + '0') → '3'

  2. 문자를 숫자로 변환 - 문자에서 '0'을 뺀다
    (char)(3 - '0') → '3'

  3. 숫자를 문자로 변환 - 숫자에 빈 문자열("")을 더한다
    3+ "" → "3"

  4. 문자열을 숫자로 변환 -Integer.parseInt() 또는 Double.parseDouble()을 사용한다.
    Integer.parseInt("3") → 3
    Double.parseDouble("3.14") → 3.14

  5. 문자열을 문자로 변환 - charAt(0)을 사용한다.
    "3".charAt(0) → '3'

  6. 문자를 문자열로 변환 -빈 문자열("")을 더한다.
    '3' + "" → "3"

profile
오늘의 기록

0개의 댓글

관련 채용 정보