본문 바로가기
코드프레소 체험단/Java 프로그래밍

[처음 시작하는 Java 프로그래밍] 변수와 연산자

by 의정부핵꿀밤 2022. 1. 13.
728x90

✨ 이 글은 [ 코드프레소 Java 웹 개발 체험단 활동 ] 내용입니다 ✨

💜 코드프레소 이러닝 강의 수강 중 - 처음 시작하는 Java 프로그래밍 💜

😎 아래의 링크를 통해 프리미엄 IT 교육 서비스, 코드프레소를 확인해보세요  😎

https://www.codepresso.kr/

 

프리미엄 IT 교육 서비스 - 코드프레소

 

www.codepresso.kr


변수(Variable)

변수

  • 컴퓨터 프로그램은 데이터와 그 데이터를 처리하는 알고리즘으로 구성된다
  • 변수(Variable)데이터를 저장하기 위한 공간이다
    • 실제 데이터는 컴퓨터 메모리에 저장된다
  • 변수는 이름이 존재한다
  • 변수의 명확한 이름은 그 변수에 어떤 데이터가 들어있는지 쉽게 파악할 수 있게 한다

 

 

변수의 선언 및 사용

  • 이 변수를 사용할 것이다! 라고 선언하는 것이다
  • 변수를 사용하기 위해 이름 붙인 공간을 확보하는 걸 의미한다
  • 자료형 변수이름; 이런 식으로 선언한다
int age;
char c;

 

  • 변수에 값을 대입할 때는 대입 연산자 '='를 사용한다
int age;
age = 10; //age 변수에 10 저장

 

  • 변수 선언과 동시에 값을 저장하여 초기화가 가능하다
String name = "codepresso"
int age = 10;

 

  • 변수의 값을 사용할 때는 변수의 이름으로 변수에 저장되어 있는 값을 사용한다

 

 

 

 

변수의 작명 - Rules and Conventions(규칙과 규약)

  1. Rule
    • 반드시 따라야 하는 것
    • 따르지 않을 경우 에러가 발생한다
  2. Convention
    • 따르는 것을 강하게 권장하는 것
    • 따르지 않는다고 에러가 발생하지 않는다
    • 하지만 따르는 경우 코드의 품질, 가독성이 향상되어 따르는 게 좋다!
    • 강력하게 권장하는 느낌?

 

 

변수의 작명 - Rules

  • 변수의 이름은 알파벳, _ , $ 로만 시작 가능하다
  • 변수의 이름은 대소문자를 구분한다
    • age와 Age는 다른 변수!
  • Java 언어에서 사용되는 키워드는 변수의 이름으로 사용 불가
    • if, true, class, public 등 Java 언어에서 사용되는 키워드는 변수로 사용 불가능하다!
  • 특수문자는 _$ 만 사용 가능하다

 

 

변수의 작명 - Conventions

  • 변수의 이름은 최대한 의미있는 이름으로 짓는다
    • 저장되는 데이터를 가장 잘 표현하는 이름을 사용하는게 좋다
  • 변수의 이름은 알파벳 소문자로 시작한다
  • 여러개의 단어를 연결하는 경우에는 각 단어의 첫 글자를 대문자로 한다 (camelCase)
    • fixedPrice, colorOfSky, maxHeight

 


자료형(Data Type)

  • 프로그램은 다양한 형태의 데이터가 사용된다
    • 이름 - 문자, 나이 - 정수, 키 - 실수, 몸무게 - 실수 ...
  • 자료형(Data Type)이란 문자형, 정수형, 실수형 등의 데이터 형태를 의미한다
  • 프로그래밍 언어는 다양한 종류의 데이터를 저장할 수 있도록 지원하며, 이는 프로그래밍 언어마다 상이하다

 

 

기본 자료형(Primitive Type)과 참조 자료형(Reference Type)

  • 기본 자료형 : 값 자체를 저장한다
  • 참조 자료형 : 객체에 대한 참조 정보를 저장한다
  • 위의 비유처럼 기본 자료형은 라커에 물건이 그대로 들어 있는 것이고, 참조 자료형은 물건의 위치를 표시해둔 거라고 이해하면 된다! (비유 찰떡이야,, ㅋ_ㅋ)
  • 객체에 대한 정보를 저장하고 있는 자료형은 대부분 참조 자료형이다

 

 

 

Java 기본 자료형

알면 좋긴 한데 굳이 외울 필요는 없다~

그냥 자료형에 따라 크기와 표현할 수 있는 데이터가 다르다는 것만 알면 된다!

 

 

 

 

정수 자료형

  • 크기에 따라 더 큰 값을 저장할 수 있다
  • 자료형의 크기보다 더 큰 값을 저장하는 경우 에러가 발생한다
  • 일반적으로 웹 개발을 할 떄는 int나 long을 주로 사용한다

L 접미사 사용

  • int 범위를 넘어서는 숫자를 사용하려면 숫자 뒤에 L 접미사가 필요하다
  • 자바 컴파일러가 숫자 값을 default로 int형으로 판단하기 때문에 위의 사진처럼 L을 붙여줌으로써 int보다 큰 숫자라는 것을 알려주는 것이다!

 

 

실수 자료형

  • double이 float보다 더 크고 정확한 실수를 저장 및 연산이 가능하다
  • float 값에는 접미사 f가 필요하다
  • 그래서 개발할 때 일반적으로 double 형을 주로 사용한다

float vs double

 

 

 

문자 자료형

  • 1개의 문자를 저장한다
  • 작은 따옴표를 사용하여 값을 표현한다
  • 큰 따옴표는 문자열을 의미하기 떄문에 char에 저장이 불가하다!
  • 2개 이상의 연속된 문자(문자열)를 저장할 수 없다

char에 문자열 저장 시 오류 발생!

 

 

논리 자료형

  • 참(true) 또는 거짓(false)를 저장하는 자료형이다
  • 제어문, 조건문, 반복문 등에서 주로 활용된다

논리 자료형

 


Java 참조 자료형

  • String : 문자열 데이터를 저장하기 위한 자료형
  • Array
  • Collections(List, Map, Set, ...)
  • 생성된 객체에 대한 자료형을 만들면 그것들 모두 참조 자료형이다!

 

 

문자열 자료형

  • 하나 이상의 연속된 문자들의 집합을 저장한다
  • 큰 따옴표를 사용하여 표현하며, 작은 따옴표를 사용하면 에러가 발생한다
  • 문자가 하나여도 큰 따옴표를 사용하면 문자열로 취급한다
    문자열 자료형 예시
  • String은 객체이기 때문에 속성과 행동을 갖고 있다
  • String 변수의 메소드(행동)을 호출할 수 있다 -> 문자열변수명.메소드이름()
    • 문자열 길이 출력 : length( )
    • 문자열 대소문자 변환 : toLowerCase( ) - 소문자로 변환, toUpperCase( ) - 대문자로 변환
  • 구글에서 Java String method를 검색해서 메소드들의 종류를 확인할 수 있다!

 


연산자(Operator)

  • 프로그래밍 언어에서 연산자란 특정 작업을 수행하는 기호
    • + 연산자는 더하기, * 연산자는 곱하기를 수행!
  • 연산자는 피연산자가 필요하다
    • 3+9 에서  +는 연산자이고, 3과 9가 피연산자가 된다
  • 연산자에 의한 연산은 결과가 존재한다
    • 3+9 = 12 (결과)

 

 

Java 연산자의 종류

 

 

 

대입 연산자(Assignment Operator)

  • = 기호를 사용한다
  • 값을 변수에 저장하기 위한 연산자
  • 대입 연산자의 왼편에 저장 대상 변수명을 쓰면 된다
  • 대입 연산자의 오른편에는 저장할 값 또난 식을 쓰면 된다

 

 

산술 연산자(Arithmetic Operator)

  • 수학적 연산을 위한 연산자이다
  • 증감 연산자(++, --)는 피연산자가 1개만 존재하며, 연산자의 위치에 따라 계산이 달라진다

 

 

증감 연산자

  • 연산자의 위치에 따라 결과가 다르다

  • 아래는 증감 연산자의 예시이다!

 


기본 자료형의 형 변환(Type Conversion/Casting)

  • 형 변환 : 특정 자료형의 값을 다른 자료형으로 변환하는 것이다
  • 기본 자료형 간의 형 변환의 종류
    • 확장 형 변환 : 작은 크기의 자료형에서 더 큰 크기의 자료형으로 형 변환
    • 축소 형 변환 : 큰 크기의 자료형에서 더 작은 크기의 자료형으로 형 변환

 

 

확장 형 변환(Widening Type Conversion)

  • 작은 크기의 자료형에서 더 큰 크기의 자료형으로 형을 변환한다
  • 자동으로 형 변환이 수행되기 떄문에 자동 형 변환이라고도 표현한다

 

  • int가 char보다 크고, long이 int보다 크고, double이 long보다 크니까 위는 자동으로 수행된다!

 

 

char 자료형과 Unicode

  • char 자료형은 문자형 데이터를 다루지만 실제 내부 데이터는 숫자로 저장된다
  • Unicode에 대한 값을 저장한다

 

 

long과 float의 형 변환

  • long은 64bits, float은 32bits이다
  • long이 float보다 사용하는 비트 수는 더 크지만, long과 float은 내부의 수 표현 방식이 다르기 땜누에 float이 더 큰 크기의 수를 표현할 수 있다

 

 

 

축소 형 변환(Narrowing Type Conversion)

  • 큰 크기의 자료형에서 더 작은 크기의 자료형으로 형 변환을 한다
  • 데이터가 손실될 수 있기 떄문에 주의해서 사용해야 한다
  • 개발자가 어떤 타입으로 변환시킬지 명시해야 하기 때문에 명시적 형 변환이라고도 표현한다
  • 변수 앞에 괄호 ( )와 변환시킬 타입을 명시한다 -> 명시하지 않으면 에러 발생!

double -> int 형 변환

 

 

 

정수형의 Overflow와 Underflow

  • 특정 자료형이 표현할 수 있는 값의 범위를 넘어설 때 발생한다
  • 큰 크기의 데이터를 작은 크기의 데이터로 형 변환을 할 때 발생할 수 있으므로 주의해서 사용하자!

  • byte 형의 표현 범위는 -128 ~ 127이다
  • 이 떄 128이나 -129를 byte형 정수에 저장하게 되면 위와 같이 값이 이상하게 저장되게 된다

 


비교 연산자

  • 2개의 피연산자의 동등 여부 및 크고 작음을 비교한다
  • 비교 연산자의 결과는 boolean 값을 갖는다 -> true || false
  • 조건문이나 반복문에서 주로 적용된다
  • 비교 연산자는 질문같은 느낌이라 질문에 대한 참, 거짓 여부를 boolean 결과값으로 반환한다고 생각하면 됨!

 

 

문자열의 비교

  • new 키워드로 String 객체를 생성할 수 있다
  • 문자열을 비교할 때는 == 이 아닌 equals() 메소드를 사용해야 한다!
  • 참조 변수는 객체에 대한 참조 값을 저장한다
  • 따라서 동등 연산자를 사용하면 참조 값에 대한 비교를 수행하기 떄문에 같은 문자열이라도 false를 반환한다!
  • 그래서 실제 객체 간의 동등 여부를 비교하려면 equals 메소드를 사용해야 하는 것이다!
name1.equals(name2); //문자열(객체)간 동등 여부 비교

 


연산자의 우선순위

오라클의 연산자 우선순위

  • 각 연산자는 우선순위가 존재한다
  • 굳이 외울 필요는 없고 우선순위가 존재한다는 것만 알면 된다!

 

 

괄호를 활용한 연산의 우선순위 명시

  • 괄호를 활용하여 연산의 우선순위를 명시하는 것이 좋다
  • 우선 순위를 명시함으로써 결과를 쉽게 예상할 수 있다
  • 또한 코드의 가독성도 향상되기 때문에 이게 훨씬 좋다!!

 

728x90

댓글