값이란
데이터, 상수, 리터럴, ...
변수
값을 담는 저장 공간
ex) x = 10
변수명 대입 연산자 값
저장공간 이름
= (대입연산자) 오른쪽에 있는 값을 왼쪽 저장공간에 넣어준다
자료형
저장공간이나 값의 타입, 종류
자료형 | type | byte | 예 |
정수형 | int | 4 | 0, -110, 256, ... (-21억 ~ 21억) |
정수형 | long | 8 | 0l, -100L, ... |
실수형 | float | 4 | 0.0F, -1230.1f, 12.412F, ... () |
실수형 | double | 8 | 0.0, -1230.1, 12.412, ... () |
문자형 | char | 2 | '0', 'A', '가', '~', ... |
문자형 | String | ?? | "0", "Hello world", "", ... |
변수의 선언
자료형 변수명 = 초기값;
자료형 변수명;
변수 선언시 RAM
int x = 10;
x라는 이름의 저장공간이 RAM에 할당되고 10이라는 값이 들어간다.
공간이 만들어졌으므로 주소값이 부여되지만 알 수 없다.
변수 선언시 주의사항
같은 이름의 변수를 선언할 수 없다
초기화를 해준다
되도록 선언부(메소드 상단)에 한꺼번에 선언한다
변수명 주의사항
숫자는 맨 앞에 쓸 수 없다 (1num -> num1)
예약어는 쓸 수 없다
공백은 쓸 수 없다 (hello java -> helloJava or hello_java)
특수문자는 쓸 수 없다
-(언더바)는 사용 가능하다 (no_where)
카멜 표기법: noWhere
되도록 소문자만 사용한다(첫글자는 무조건 소문자)
되도록 한글은 사용하지 않는다
뜻이 있는 명사형 단어를 선택한다
(a , b, c, ...) X (data, num, score, ...) O
변수의 사용
변수명을 그대로 사용한다
int num = 10;
num = 20; // 공간
System.out.println(num); // 값
변수의 사용 이유
1. 반복되는 같은 의미의 값을 쉽게 사용하기 위해
2. 값에 의미부여를 하기 위해
입력
사용자가 개발자에게 값을 넘겨주는 행위
입력 상태
커서가 깜빡이면서 값이 들어오기를 기다리는 상태
값이 입력되지 않으면 다음으로 진행이 불가
개발자는 할 수 있는 일은 사용자에게 입력상태로 만들어주는 것 까지
아래 코드들은 사용자가 값을 입력했다고 가정하고 작성
입력받기 전 사용자가 잘 입력할 수 있도록 잘 출력해 준다
. (하위 연산자)
A.b : A안의 b / A의 b
입력메소드
Scanner sc = new Scanner( System.in);
new Scanner( System.in).next();
sc.next();
next()
사용 부분 통째로 사용자가 입력한 문자열 값
공백 또는 엔터를 구분점으로 판단하고 분리하여 입력받는다
서울시 서초구 : "서울시" , "서초구"로 분리하여 "서울시"만 입력 받는다
띄어쓰기가 포함된 경우에는 값의 개수만큼 next()를 사용해 주어야 한다
nextLine()
사용 부분 통째로 사용자가 입력한 문자열 값
공백도 문자로 입력 받는다
앞에 다른 입력이 있다면 의미없는 nextLine()을 한번 미리 써주어야 한다
nextInt()
사용부분 통쨰로 사용자가 입력한 정수 값
형변환
자바에서는 정수와 정수의 연산은 결과도 정수로 나온다
실수로 된 결과를 받으려면 피연산자(항)를 실수로 바꾸어주는 방법이 필요
- 자동 형변환
- 정수 + 실수 ---> 실수
- ex) 3 + 0.0 ----> 3.0
- 문자 + 정수 ---> 정수
- 문자열 + 정수, 실수, ... ---> 문자열
- 강제 형변환
- (자료형) : 형변환 연산자
- (자료형) 값
- ex) (double)10
연산자
기능이 있는 특수문자 또는 단어
우선순위
한 문장 안에 다양한 연산자가 있을 떄 먼저 연산하는 순위
최우선 연산자
- 단항 연산자
- ( ! ~ 형변환연산자)
- 산술 연산자
- ( + - \* / % )
- 쉬프트 연산자
- ( << >> )
- 관계 연산자
- ( < > <= >= == != )
- 논리 연산자
- ( && || )
- 삼항 연산자
- 조건식 ? 값 1 : 값2
- 대입 연산자
결합성
한 문장 안에 우선순위가 같은 연산자들이 있을 때
맞는 방향으로 결합 후 연산되는 성질
(1 + 2) + 3 + 4
(3 + 3) + 4
6 + 4
10
산술 연산자
a % b : a를 b로 나눈 나머지
10 % 3 ---> 1
비트 연산
1 bit : 컴퓨터 용량의 최소단위, 0 또는 1 하나를 담을 수 있는 공간
1 byte : 8bit를 모아서 하나의 단위로 만든 것, 의미를 가지는 데이터(메모리)의 최소 용량
17 -> 10001
14 -> 01110
& (and) 논리곱 : 두 비트가 모두 1일 떄 1
14 & 17 ----> 01110 & 10001 ----> 00000 -> 0
|(or) 논리합 : 두 비트 중 하나가 1이면 1
14 | 17 ---> 01110 | 10001 ---> 11111 -> 31
^(X-or) 배타논리합 : 두 비트가 서로 다르면 1
14 ^ 17 ---> 01110 | 10001 ---> 11111 -> 31
~(not) 논리부정, 비트뒤집기 : 0은 1로 1은 0으로 바꾼다
부호비트도 거꾸로 뒤집힌다(양수 -> 음수 / 음수 -> 양수)
~14 ---> ~ 01110 ---> 10001 ---> -15
~a = -(a+1)
비트 이동(쉬프트 연산자)
>> a >> b : a를 b 만큼 우측으로 비트 이동
10 >> 1 ---> 1010 >> 1 ---> 0101 ---> 5
<< a << b : a를 b 만큼 좌측으로 비트 이동
10 << 1 ---> 1010 << 1 ---> 10100 ---> 20
조건식
조건을 제시하는 식
주장하는 식
결과가 true, false 단 두가지로 나오는 식
10>3 ---> true
자바에서는 true , false라는 값으로 참, 거짓의 값을 표현한다
10 + 5 = 15 값
10 > 5 = true 값
논리형 boolean 1byte true, false
관계 연산자
조건식을 만다는데 사용되는 연산자
비교 연산자
>, < : 초과, 미만
>=, <= : 이상 , 이하
== : 같다
!= : 다르다
논리 연산자
여러 조건식들의 관계를 설정해주는 연산자
A, B는 조건식으로 가정한다
A && B : 두 조건식의 연산 결과가 둘다 true면 true
A || B : 두 조건식의 연산 결과 중 하나라도 true 이면 true
단항 연산자
!A : A조건식의 연산결과가 true이면 false로, false이면 true로 바꿔준다
'언어의 기초 > 자바(JAVA)' 카테고리의 다른 글
[JAVA] 익명 클래스 (0) | 2021.11.30 |
---|---|
[JAVA] 클래스 다형성, 상속성 , 추상화 ,업캐스팅/ 다운캐스팅 (0) | 2021.11.29 |
[JAVA] 조건문과 반복문 (0) | 2021.11.24 |
[Eclipse] JAVA 코딩을 위한 이클립스 설치(MAC OS용) (0) | 2021.11.22 |
[JAVA] 자바 시작하기 (0) | 2021.11.18 |