Java 기초 1

j0yy00n0·2025년 2월 28일

2025.02.27

리터럴, 변수, 연산자

리터럴과 변수

리터럴(literal)

변하지 않는 데이터 그 자체
-> 상수와 혼동할 수 있지만 상수는 데이터가 저장되는 메모리상의 공간, 리터럴은 고정된 값 자체를 의미

리터럴의 종류

  • 논리형
  • 정수형
  • 실수형
  • 문자형
  • 문자열

숫자 리터럴의 연산

숫자 리터럴은 모든 사칙 연산 사용 가능

  • 정수 끼리 = 결과 정수 / 실수 끼리 = 결과 실수
  • 정수와 실수는 항상 실수!

문자 리터럴의 연산

문자는 내부적으로 숫자로 바꿔서 인식
문자끼리의 연산, 문자와 정수,실수도 사칙연산, mod 연산까지 가능하다. -> 숫자로 변경되어 출력된다.

문자열 리터럴의 연산

사칙 연산 중 '+' 연산만 가능 - 연산 결과는 문자열 이어 붙이기

System.out.println(9 + 9 + "9"); //189

'+'의 연산 방향은 왼쪽에서 오른쪽이다 (숫자부터 합쳐짐)
문자열과 숫자 연산을 같이 사용하여 출력할 경우 ()을 잘 사용하여 출력해야한다.

논리 리터럴의 연산

논리 값은 연산 불가능
단, 문자열과의 '+' 연산은 가능

변수(variable)

데이터를 저장하기 위한 할당 받은 메모리 공간

  • 지역변수
  • 매개변수
  • 전역변수(필드)
  • 클래스(static)변수

변수 사용 방법

변수를 선언 하고 값을 대입하여 사용 -> 선언한 변수에 최초 값을 대입하는 것 = 초기화

자료형 변수명;

자료형

형태별로 어느 정도의 크기를 할당할지 미리 Compiler와 약속한 키워드

  • 기본자료형(Primary type)
  • 참조자료형(Reference type)

정수형

byte, short, int(대표), long

특수한 경우가 아닌 이상 byte, short는 잘 사용하지 않음
정수형은 비트의 맨 앞 자리에 부호 비트를 둔다.
int 미만의 연산의 처리 결과는 int형 이다.

실수형

float, double(대표)

4byte인 자료형 float 보다 8byte 자료형 double이 더 정확한 실수를 표현할 수 있다.
float는 원주율 같이 특수한 목적이 있는 경우에 사용
정수형은 비트의 맨 앞 자리에 부호 비트를 둔다.

숫자로 된 형태의 값을 그대로 사용하는 자료형은 byte, short, int, double
long -> 숫자+L , float -> 숫자+f/F

문자형

char

short자료형과 2byte의 할당 크기를 가지지만 부호비트가 없기 때문에 데이터 표현 범위가 더 크다.
short < char

System.out.println('a');
System.out.println('');

문자 형태의 값은 홑따옴표(single-quotation)으로 감싸주어야 한다.
아무 문자도 기록되지 않는 경우도 에러가 발생한다.

논리형

boolean

실제 사용하는 8bit 중 가장 오른쪽 1bit만 이용, 할당되는 크기는 1byte

문자열(참조자료형)

String

기본 자료형에 해당하지 않는 참조자료형

System.out.println("");
System.out.println("a");

아무 값도 없는 빈 쌍따옴표도 문자열로 취급한다.
한 개의 문자도 쌍따옴표로 감싸면 문자열이다. (문자 a와는 다르다)

변수의 명명 규칙

컴파일러 에러 규칙

  • 동일한 범위 내 동일한 변수명 안됨
  • 키워드 사용 금지
  • 영문자 대소문자를 구분
  • 숫자로 시작 불가능
  • 특수 기호는 '-', '$'만 사용 가능

개발자들 암묵적인 규칙

  • 명사형으로 camel-case으로 네이밍
  • 단어와 단어 사이의 연결을 _ 로 하지 않는다.(타 언어 네이밍 규칙임)
  • 한글 가능하지만 권장하지 않음
  • 전형적인 변수 이름이 있다면 가급적 사용하고 저장된 값이 어떤 의미를 가지는지 명확하게 표현
  • boolean 형은 의문문, 긍정 형태로 네이밍
  • 자바에서는 클래스명만 유일하게 대문자로 시작한다.

상수(constant)

변수와 동일하게 데이터를 저장하는 공간
단, 한 번 메모리에 저장된 데이터를 변경할 수 없다.

  • 선언 시 final 키워드 사용!
  • 영문자 대문자, 숫자만 네이밍
  • 단어와 단어 연결은 '_'를 사용

오버플로우(overflow)

변수가 담을 수 있는 범위를 벗어나는 데이터를 담았을 때 발생하는 현상

형변환(casting)

변수, 리터럴을 다른 타입을 형변환
프로그램에서 변수에 값을 넣거나 연산을 수행할 때는 같은 타입만 가능하기 때문이다.
비트의 앞 부분이 손실된다.

  • 자동 형변환 : 작은 자료형에서 큰 자료형으로는 자동 형변환 된다.

    정수 -> 실수
    문자형 -> int형
    논리형은 형변환 규칙에서 제외
  • 강제 형변환 : ()연산자를 이용한 강제적으로 수행하는 형변환

연산자

연산자(operator)
기호/부호
연산(operation) = 연산자(operator) + 피연산자(operand)
연산자의 흐름은 왼쪽 -> 오른쪽으로 흐른다.
대입 연산자는 왼쪽 <- 오른쪽

산술연산자

+, -, *, /, %

사칙연산과 관련된 연산자

대입연산자

= += -= *= /= %=

변수에 값을 대입할 때 사용하는 이항 연산자

증감연산자

++ --

피연산자를 1증가/감소 시킬 때 사용하는 연산자
피연산자가 하나 (단항연산자)

숫자+단항연산자

다른 연산을 먼저 처리 하고 난 뒤 마지막에 증가 처리가 됨.

비교연산자

== != > >= < <=

상대적인 크기를 판단하여 참/거짓을 반환하는 연산자

논리 연산자

&& || !
true/false 를 취급하는 연산자

논리식 && 논리식 : 앞의 결과가 false이면 뒤를 실행 안함
논리식 || 논리식 : 앞의 결과가 true이면 뒤를 실행 안함

삼항 연산자

(조건식) ? 참일 때 사용할 값 : 거짓일 때 사용할 값
(조건식) ? 참값 : (조건식) ? 참값 : 거짓값

피연산자 항목이 3개인 연산자
조건식은 반드시 결과가 true/false가 나오게 끔 작성

profile
잔디 속 새싹 하나

0개의 댓글