Skip to content

Latest commit

 

History

History
143 lines (99 loc) · 10.6 KB

day02__java variable.md

File metadata and controls

143 lines (99 loc) · 10.6 KB

📢 day02__Java 변수

전체적으로 기본적인 내용들을 흝어보고 지나갔다. 아직은 2일차고 대부분이 나와같은 비전공자이기 때문에 기본적인 내용들을 나름 상세하게 다루어서 강의는 진행되었다. 다만 아쉬운점은 무언가 속도가 느린점이다. 클론코딩과 코딩할 수 있는 실질적인 강의만 보다 나름 이론적인 강의를 시작되니 낯설고 집중이 전체적으로 안된것 같다. 혹은 비대면으로 강의가 진행되어서 그런것 일수도 있을것 같다. 그래도 전체적으로 컴퓨터 소프트웨어에대한 지식이 없는 나에게 공부 할 수 있는 기회가 되어 좋은 기회가 되었다. 많은 클래스와 패키지를 만들다보니 이클립스와도 친해지는 느낌이다.

📌 수업 정리 내용

💡 변수(Variable)

  • 변수란, 하나의 값을 저장할 수 있는 메모리 공간.
  • primitive type(기본형 타입) 변수 : 정수(문자), 실수, 논리형( boolean) 데이터 타입이 있다.
  • Referenece type(객체형 타입) 변수 : 문자열, 객체
  • byte, 8개의 비트로 구성된 데이터양을 나타나는 단위로 -128 ~127의 수를 담고 있다.
  • 유니코드, 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준이며, 유니코드 협회에서 제정한다.
  • "="가 있을때는 우항이 먼저 실행 되고 좌항으로 옮겨짐.
  • 정수의 사칙연산이 일어나면 자바에서는 무조건 int형으로 인식한다.
  • 데이터 타입을 잘못 사용하여 범위를 벗어난 답을 얻어 데이터가 깨질 수 있어 주의를 해야한다.
  • 실수의 기본적인 연산은 double이다.
  • 정수보다 실수의 데이터값이 더 크다.

int v1 = 10; // 10진수표현 10 int v2 = 012; // 8진수표현 10 int v3 = 0xA; // 16진수표현 10 byte b1 = 10; byte b2 = 10; byte b3 = b1 + b2; // error, "="가 있을때는 우항 실행되고 좌항이 실행됨. 정수의 사칙연산이 일어나면 자바에서는 무조건 int형으로 인식한다.

💡 Java의 데이터 타입과 크기, 데이터양

종류 데이터 타입 크기 기억 범위
문자 char 2Byte 0 ~ 65535
정수 byte 1Byte -128 ~ 127
short 2Byte -32768 ~ 32767
int 4Byte -2147483648 **~ 2147483647**
long 8Byte -9223372036854775808 **~ 9223372036854775807**
실수 float 4Byte 1.4 X (10의-45제곱) **~ 3.4 X (10의 38제곱)**
double 8Byte 4.9 X (10의 -324제곱) **~ 1.8 X (10의 308제곱)**
논리 boolean 1Byte true / false
  • 정수 + 실수 일경우 데이터타입은 실수형을 따른다.
  • boolean 타입은 true와 false 값만 갖는다.

💡 연산자(Operations)

  • 연산이란 데이터를 처리하여 결과를 산출하는것.
  • 연산에 사용 되는 표시나 기호(=,-,*,/,% 등)
  • 피연산자(Operand) : 연산 대상이 되는 데이터 (리터럴, 변수)
  • 연산식 (Expressions) : 연산자와 피연산자를

🔍 연산자 종류

종류 연산자 우선순위
증감 연산자 ++, -- 1순위
산술 연산자 +, -, *, /, % 2순위
시프트 연산자 >>, <<, >>> 3순위
비교 연산자 >, <. >=, <=, ==, != 4순위
비트 연산자 &, |, ^, ~ ~만 1순위, 나머지는 5순위
논리 연산자 &&, ||, ! !만 1순위, 나머지는 6순위
조건(삼항) 연산자 ?, : 7순위
대입 연산자 =, *=, /=, %=, +=, -= 8순위
구분 연산자 설명
증감 연산자 x++ 먼저 해당 연산을 수행한 후 피연산자의 값을 1증가 시킴
++x 먼저 피연산자의 값을 1증가 시킨 후 해당 연산을 수행함
x-- 먼저 해당 연산을 수행한 후 피연산자의 값을 1감소 시킴
--x 먼저 피연산자의 값을 1감소 시킨 후 해당 연산을 수행함
산술 연산자 + 두 수에 대한 덧셈
- 두 수에 대한 뺄셈
* 두 수에 대한 곱셈
/ 두 수에 대한 나눗셈
% 두 수를 나눈 후 그 나머지를 반환한다.
비교 연산자 > 크다.
< 작다.
>= 크거나 같다.
<= 작거나 같다.
== 피연산자들의 값이 같다.
!= 피연산자들의 값이 같지 않다.
논리 연산자 & and(논리곱) 주어진 조건들이 모두 true일 때만 true를 나타낸다.
| or(논리합) 주어진 조건들 중 하나라도 true이면 true를 나타낸다.
! not(부정) true는 false로 false는 true로 나타낸다.
&& 선조건이 true일 때만 후조건을 실행하며 선조건이 false이면 후조건을 실행하지 않는다. true&&true -> true, true&&false -> false
|| 선조건이 true이면 후조건을 실행하지 않으며 선조건이 false일 때만 후조건을 실행한다. true || false -> true, false || true -> true, false || false -> false **퍼포먼스 때문에 &&, || 를 많이 쓰인다.
대입 연산자 = 연산자를 중심으로 오른쪽 변수값을 왼쪽 변수에 대입한다.
+= 왼쪽 변수에 더하면서 대입한다.
-= 왼쪽 변수값에서 빼면서 대입한다.
*= 왼쪽 변수에 곱하면서 대입한다.
/= 왼쪽 변수에 나누면서 대입한다.
%= 왼쪽 변수에 나머지 값을 구하면서 대입한다.
삼항 연산자 ? : 조건식 ? 참값 : 거짓값 ;
다중 연산자 ? : ? : : 조건식1(if) ? 참값 : 조건식2(else if) ? : 참값 : 거짓값 ;

삼항연산자는 다음과 같은 조건식을 한줄로 정리 할 수 있다. int e1 = 10; int e2 = 20; int eresult = 0; if (e1 <= e2) { eresult = 100; }else { eresult = 200; } System.out.println(eresult); // 결과값 '100' int eresult2 = (e1 <= e2) ? 100 : 200; System.out.println(eresult2); // 결과값 '100'

  • int a = 5; , a += 5; // 결과값 '10'
  • 100(정수) / 0.0(실수) 일경우 값은 "Infinity" 가 나온다.
  • char 은 int로 타입 교체 가능.
  • Integer.parseInt() || Integer.valuOf 를 통해 스트링도 정수로 바꿀수 있지만 수가 아닌 글은 변환이 불가능하다.

📥 공부 참고 자료.

자바 연산자의 종류

언어별 데이터 타입 크기 및 기억 범위

[Java] 자바 연산자 (Java Operator)