📚 Study/JAVA
[JAVA] 변수, 타입, 형변환, 연산, 조건문&반복문, 배열
0_ch4n
2022. 4. 29. 01:04
반응형
✔️ 시작하기 전에
이 내용은 자바의 정석 3판을 참고하여 '선 공부 후 정리'식으로 작성한 글입니다.
체득되지 않고 놓치는 부분이나 개인적으로 중요하다고 생각하는 부분 위주로 구성하였습니다.
Chapter 1~5는 변수, 데이터 타입, 형변환, 연산, 조건문&반복문, 배열 등에 대한 내용으로 기본적인 내용입니다.
그렇기에 생략된 부분이 많지만 뒷 내용부터는 자세하게 쓸 생각입니다.
📌 chapter 1
자바의 특징
- 운영체제에 독립적이다
- 객체지향언어이다
- 비교적 배우기 쉽다
- 자동 메모리 관리(Garbage Collector)
- 네트워크와 분산처리를 지원한다
- 멀티쓰레드를 지원한다
- 동적 로딩을 지원한다
📌 chapter 2
식별자(identifier) 규칙
- 대소문자가 구분되며 길이에 제한이 없다
- 숫자로 시작해서는 안 된다
- 특수문자 ‘_’와 ‘$’만을 허용한다
- 예약어를 사용해서는 안 된다
변수
- 기본형(primitive type) : 실제 값(data)을 저장
- 참조형(reference type) : 기본형 외의 모든 타입으로 주소값을 갖고 4byte이다
- 접두사
- 0b : 2진수
- 0 : 8진수
- 0x : 16진수
- 접미사
- long은 20억이 넘으면 접미사로 L을 붙여야 한다 (생략 X)
- float는 접미사로 f를 붙여야 한다 (생략 X)
- double은 접미사로 d를 붙여야 한다 (생략 O)
단어의 정의
- 리터럴 : 데이터(값) 그 자체 (ex.100, 100L, 3.14f)
- 변수 : 하나의 값을 저장하기 위한 공간 (ex.i, l)
- 상수 : 값을 한 번만 저장할 수 있는 공간 (ex.PI)
- 키워드 : 미리 예약해 놓은 단어로 소문자이다 (ex.int, long, final, float)
문자열과 문자 그리고 연산
- String str = “”; → 내용 없는 문자열 OK
- char ch = ‘’; → 내용 없는 문자 Error
- any type + 문자열(””) → 문자열
- 문자(’’)는 유니코드로 계산
- null을 더하면 오류
정수형의 오버플로우
- 최대값 + 1 → 최소값
- 최소값 - 1 → 최대값
형변환
- (타입) 피연산자
- 자동 형변환 : 값의 범위가 작은 타입에서 큰 타입으로의 형변환
입출력
- 입력 : Scanner scanner = new Scanner(System.in);
- 커맨드라인 입력 : String[] args에 저장 (args의 이름은 바뀔 수 있음)
- 출력 : System.out.print(), printf(), println();
📌 chapter 3
연산자의 우선순위와 결합규칙
쉬프트 연산자
- x << n == x * 2^n
- x >> n == x / 2^n
📌 chapter 4
//if문
if(조건식1) {
//True일 때 실행할 문장
} else if(조건식2) {
//조건식1은 False지만 조건식2는 True일 때 실행할 문장
} else {
//조건식들이 False일 때 실행할 문장
}
//switch문
switch (조건식) {
case 1:
//결과가 1과 같을 때 실행할 문장
break;
case 2:
//결과가 2와 같을 때 실행할 문장
break;
default :
//결과가 일치하는게 없을 때 실행할 문장
}
//for문
for(초기화; 조건식; 증감식) {
//조건식이 참일 때 반복할 문장
}
//향상된 for문
for(타입 변수명 : 배열 또는 컬렉션) {
//배열 또는 컬렉션 값이 순서대로 읽히며 변수에 저장
//반복할 문장
}
//while문
while(조건식) {
//조건식이 True일 때 반복할 문장
}
//do-while문
do {
//일단 한 번 실행하고
//조건식이 True면 반복할 문장
} while (조건식);
break; : 반복문 탈출
continue; : 다음 반복으로 스킵
📌 chapter 5
/*Array 배열*/
//생성&초기화
int arr[] = new int[0];
int[] arr2 = new int[5];
int[] arr3 = new int[] {1,2,3,4,5};
//길이
arr.length;
//출력
1. for문
2. Arrays.toString(arr)
//복사
System.arraycopy(from, 어디서부터, to, 어디서부터, 몇개);
/*String 배열*/
//생성&초기화
String str[] = new String[0];
String[] str2 = new String[5];
String[] str3 = { "Kim", "Park", "Yi" };
//문자 하나 반환
str.charAt(index)
//문자열 길이 반환
str.length()
//문자열에서 from ~ to-1 까지 반환
str.substring(from, to)
//문자열 비교
str.equals("")
//문자열을 문자배열로 변환해서 반환
str.toCharArray()
/*다차원 배열*/
//생성&초기화
int arr4[][] = new int[0][0];
int[][] arr5 = new int[5][5];
int[][] arr6 = { {1,2,3}, {4,5,6} };
/*가변 배열*/
//생성
int[][] arr7 = new int[3][];
arr7[0] = new int[5];
arr7[1] = new int[4];
arr7[2] = new int[3];
반응형