일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 웹기초
- 웹개발
- 포렌식
- 웹해킹기초
- 이진탐색트리
- mongoose
- Express
- 써니나타스
- 자바문제풀이
- nodeJS
- MongoDB
- 자바
- 워게임
- wargame.kr
- CTF
- NavBar
- 포렌식워게임
- 워게임추천
- GIT
- node.js
- 웹해킹
- materialize
- gitbash
- bootstrap
- 이진트리
- node
- 자료구조
- 그래프
- 뷰
- 자바기초
- Today
- Total
보안 전공생의 공부
변수와 자료형 | 조건문&반복문 | 연산자 본문
◆ 변수타입
1) primitive type : 기본적으로 제공되는 타입 → 초기값이 정해져 있음
- 정수형 : byte(1byte), short(2byte), int(4byte), long(8byte)
- 실수형 : float, double
- 문자형 : char
- 논리형 : boolean
자료형 |
데이터 |
크기 |
boolean |
참과 거짓 |
1바이트 |
char |
문자 |
2바이트 |
byte |
정수 |
1바이트 |
short |
정수 |
2바이트 |
int |
정수 |
4바이트 |
long |
정수 |
8바이트 |
float |
실수 |
4바이트 |
double |
실수 |
8바이트 |
(출처 : https://cishome.tistory.com/85)
2) reference type : 참조형(유저가 직접 정의하는 타입) → 기본 초기값 NULL
- 기본적으로 java.lang.object를 상속받으면 참조형이 된다.
- 참조형에는 클래스형 Class Type, 인터페이스형 Interface Type , 배열형 Array Type이 있다.
자세한 내용은 추후 포스팅 예정 !!
◆ 변수선언
변수타입 변수이름1 변수이름2;
변수타입 변수이름=초기값;
◆ 형변환
1) 묵시적 변환(implicit conversion) : 손실방지 위해 자동변환
byte → short → int → long → float → double
2) 명시적 변환 (explicit conversion)
[예제]
정수형인 a와 b를 나눈 값을 실수형인 result에 대입하였다.
예상결과는 1/10= 0.1 이지만
실제 출력결과는 0.0이다.
이는 result는 실수형인데
여기에 대입하는 a/b는 정수형이기 때문이다.
a/b도 실수형으로 바꿔주기 위해 앞에 (double)을 작성한다.
[예제]
출력결과가 0.1로 예상하던 결과가 출력됨을 확인할 수 있다.
◆조건문
· if(조건){
//조건이 참이면 실행
}
· if(조건){
}else if(조건){
}else (조건){ }
[예제] 영문자의 대소문자 구분하기
◆ 반복문
1) while(조건식){ };
조건식이 참일 경우 루프 실행됨
2) do{ }while(조건식);
조건식이 참이든 아니든 일단 루프가 한 번 실행됨
3) for(초기식; 조건식; 증감식){ };
4) continue
루프의 나머지 부분 생략
[예제] 1~100 수 중 2의 배수나 5의 배수 출력하기
5) break : 루프 탈출
[예제] 1~100의 수 더하기
◆ 연산자
종류 |
연산자 |
최우선 |
( ), [ ] |
단항 연산자 |
++, --, +, -, (type), !, ~ |
산술 연산자 |
%, /, *, +, - |
시프트 연산자 |
>>, <<, >>> |
관계 연산자 |
<, <=, >, >=, ==, != |
논리 연산자 |
&, ^, |, ~, &&, || |
삼항 연산자 |
? : |
대입 연산자 |
=, +=, -=, *=, %=, /=, >>=, <<= |
콤마 연산자 |
, |
(출처 : https://raccoonjy.tistory.com/9 )
▶ 시프트 연산자
- op1 >> op2 : op1을 op2만큼 오른쪽으로 이동
- op1 << op2: op1을 op2만큼 왼쪽으로 이동
- op1 >>> op2 (자바에만 있는 연산자 !) : op1을 op2만큼 오른쪽으로 이동하면서 왼쪽에는 항상 부호와 무관하게 0을 채움
ex) int a = 10 일 때 ( 2진수로 1010 )
a = a << 2 를 계산해보면,
( int형은 4 byte로 32 bit 이다 )
연산 전 a = 0000 0000 0000 0000 0000 0000 0000 1010 (10)이다.
연산 후 a = 0000 0000 0000 0000 0000 0000 0010 1000 (40)이다.
→ 왼쪽으로 밀린 2개의 비트는 삭제되고, 비게되는 오른쪽 2개의 비트는 0으로 채운다
40이 된 a를 다시 되돌리려면 a=a>>2를 하면된다.
연산 전 a = 0000 0000 0000 0000 0000 0000 0010 1000 (40)이다.
연산 후 a = 0000 0000 0000 0000 0000 0000 0000 1010 (10)이다.
→ 오른쪽으로 밀린 2개의 비트는 삭제되고, 비게되는 왼쪽 2개의 비트는 0으로 채운다 ( 양수일 때 0이 사용되고, 음수일 때 1이 사용됨 !! >>>은 부호 상관없이 무조건 0으로 채움)
'Language > JAVA' 카테고리의 다른 글
백준 10430 번 (0) | 2021.01.18 |
---|---|
참조 타입 | 배열 (0) | 2021.01.17 |
자바 개발환경 구축 | 표준 입출력 (0) | 2021.01.17 |
변수와 자료형 / 조건문 & 반복문 / 연산자 (0) | 2021.01.15 |
자바/자바 개발 환경 구축 / 표준 입출력 (0) | 2021.01.15 |