프로그래머스 문제 풀다가 멘붕와서 모르는 것들을 그때마다 정리하기보단 기초를 다시 다잡기로 마음 먹었다. 총 3번에 나눠서 자바를 총 정리할 계획이다. 자세한 설명은 책을 통해 공부하자!
문제해결에 도움이 되는 기본적인 요소들만 다룰 계획이다.
1️⃣변수 상수의 차이 ?
상수는 앞에 final을 붙여서 선언한다.
final 을 통해 선언을 하면 값을 다른 수로 재할당을 못한다.
즉, 상수는 final 을 통해 선언 => final int sangsu=20
변수는 값의 재할당을 통해 값의 변화를 줄 수 있다
자바를 사용하는 사람들끼리의 룰 : de facto standard(사실상 표준) => camelCase
2️⃣기본 자료형
모든 데이터는 byte로 표현 가능하다
자료형 | 타입(Type) | 크기(Bit depth) | 기본값(Default value) | 표현 범위(Value range) |
논리형 | boolean | 1byte | false | true 또는 false(0 or 1) |
문자형 | char | 2byte | \u0000 | 0~65,535 |
정수형 | byte | 1byte | 0 | -128 ~ 127 |
정수형 | short | 2byte | 0 | -32,768 ~ 32,767 |
정수형 | int | 4byte | 0 | -2,147,483,648~2,147,483,647 |
정수형 | long | 8byte | 0 | -9,223,372,036,854,775,808~9,223,372,036,854,775,807 |
실수형 | float | 4byte | 0.0 | -3.4E38~+3.4E38 |
실수형 | double | 8byte | 0.0 | -1.7E308 ~ +1.7E308 |
3️⃣참조 자료형,배열
참조자료형?
String 같이 class로 정의된 타입을 쓸 때 사용하는 것
메모리 상에서 데이터가 저장된 주소, 즉 참조값을 저장
배열의 필요성?
:동일 자료형의 데이터를 연속된 공간에 저장하기 위한 자료 구조
배열을 출력할 때는 Arrays.toString으로 감싸 출력해야 [1,2,3,4]와 같이 출력된다
배열의 선언방법에는
1. 선언만하기
2. 선언과 동시에 초기화하기
참조자료형은 기본값이 없기 때문에 null이 들어가게 된다
ex) String [ ] emptyCheckArray = new String[5]
=> [null, null, null, null, null]
배열에서는 맨 끝 인덱스의 값을 출력하기 위해서는 총길이에서 -1을 해야한다.
배열의 인덱스 시작은 0부터.
보통 Array를 사용하기보단 Collection의 한 종류인 ArrayList를 좀 더 많이 사용한다
3개 배열에서 마지막 값 출력하기
public class Main{
public static void main(String[] args){
int[] scores = new int[]{10, 20, 30};
System.out.println(scores[scores.length -1]);
}
}
4️⃣연산자
종류 | 연산자 | 설명 |
산술연산자 | + ,- ,* ,/ ,% , <<, >>(비트) | 사칙연산과 나머지 연산 |
관계(비교)연산자 | >, <, >=, <=, ==, != | 크고 작음과 같고 다름을 비교 |
논리연산자 | &&, ||, !, &, ^, ~ | 그리고 (AND) 또는 (OR)으로 조건을 연결, 비트연산자 |
대입연산자 | = | 우변의 값을 좌변에 저장 |
기타연산자 | (type), ? :, instanceof | 형변환연산자, 삼항연산자, instanceof 연산자 |
참고로 &와 &&를 혼동하는 사람이 많은데 우선 둘 다 AND 연산자이다.
조건식이 모두 true일 경우만 true를 반환하며, &와 &&는 같은 결과를 도출한다.
- 그럼 왜 두 가지나 존재할까?
&는 앞의 조건식이 false여도 뒤의 조건식이 true인지 false인지 판별한다.결과가 false여도
&&는 앞의 조건식이 false라면, 뒤의 조건식은 검사하지 않는다.결과는 false이기 때문에.
즉, &는 비트 연산자이지만 &&는 논리 연산자이다
4️⃣조건문
if문 : "만약(if) 조건식이 참(true)이면 괄호({ }) 안의 문장들을 수행해라"
1. 단순 if문
2. if-else문
3. if-else if-else문
4. switch-case문
if문은 boolean값, switch문은 변수의 값에 따라 결정
1. 단순 if문
if의 조건식에는 boolean 타입 변수로, true 또는 false 값을 산출할 수 있는 연산식이 올 수 있다.
조건식이 true면 블록을 실행하고, 조건식이 false면 블록을 실행하지 않는다.
조건식이 true일 때 실행문이 1개라면 중괄호{ }를 생략할 수 있다.
2. if-else문
기본적인 사용 방법은 if문과 동일하다
if문과 else블록을 함께 사용하면 조건식의 결과에 따라 실행 블록을 선택할 수 있다.
실행 흐름
조건식이 true면 실행문 A -> 실행문 C 순으로 실행한다
조건식이 false면 실행문 B -> 실행문 C 순으로 실행한다
3. if-else else-if 문
else if문을 사용하면 하나의 조건을 만족하면 다른 조건은 더 이상 비교하지 않습니다.
하지만 if문을 여러 번 작성하면 조건과 실행문이 서로 독립적이라서 원하는 값을 얻는다.
실행 흐름
조건식이 1이 true면 실행문 A -> 실행문 D순으로 실행된다.
조건식 1이 false면 조건식 2로 이동한다
조건식 2가 true면 실행문 B -> 실행문 D순으로 실행된다
조건식 2가 false면 실행문 C -> 실행문 D순으로 실행한다.
4. switch-case 문
if문과 다르게 변수의 값에 따라 실행문이 다르게 실행된다
if문은 boolean 값만 사용할 수 있기 때문에 경우의 수가 많을 경우 else if문을 대량으로 추가한다.
하지만 switch문은 변수의 값에 따라 실행문이 결정되기 때문에 더 간결하다.
if문과 다르게 break문을 반드시 작성한다
break문을 작성을 안하면 모든 실행문이 실행된다
각 조건을 case로 표시하고 마지막은 default로 작성
뭐가 이렇게 기냐구요? 그럼 니가 정리핟
감사합니다
'Language & Framework & GIT > JAVA' 카테고리의 다른 글
[JAVA] 오버로딩과 오버라이딩 (0) | 2022.10.22 |
---|---|
[언어공부] 코테를 위한 JAVA 뽀개기 #2 (0) | 2022.10.22 |
Java_Optional<T> isPresent(), ifPresent() 사용하기 (0) | 2022.08.21 |
[JAVA] 접근 지정자 (0) | 2022.08.11 |
오늘은 짧은 언어_06 (0) | 2022.08.09 |
댓글