개발 초기에는 절차지향언어 (ex. c언어) 에서 현재는 프로그램 크기도 커지고 하면서 객체지향 언어 (ex. 자바, 파이썬 등) 으로 경향이 바뀜.
향상된 for문 : 배열과 같은 자료구조에서만 사용
- 형태 : for ( [ 타입 변수 ] : [ 배열 ] )
출력 함수의 종류
println
printf ( " " 내부에 형식 지정이 가능 (ex. " %d" , 변수))
형식 지정자
- %d : 정수값
- %c : char 타입
- %f : 실수값 (%.2f 라고 하면 두 번째 자리까지 소수점 출력! 소수점 자리 지정 가능하다)
While 문
While ( [조건식] ) {
[조건식]이 true인 동안 실행
}
String str = sc.nextLine(); - 문자열을 받을 수 있음 (엔터를 칠 때 까지의 문장)
String str = sc.next (); - 문자만 받을 수 있음 (공백까지) 의 경우,
대신 비교할 때 equals 함수를 이용해야 값이 같은 지 비교 가능하고, == 를 이용하면 주소 값을 참조하여 비교하기 때문에 문제 발생할 가능성이 있음.
String str = sc.next ();
char c = sc.next().charAt(0); - 위와 같이 2줄로 하면 문자의 첫글자만 따올 수 있음!!
반복문 안에서 다음 1줄은 {} 없이도 실행이 된다. 2줄 이상은 반드시 {} 안에 묶어줘야 함.
do { 조건식이 true일 때 실행할 문장
} while ( 조건식) ;
- 1회는 무조건 실행이 된 후 반복문 진행 여부가 정해진다.
break;
무한루프 - 1) for(;;) {} /// 2) while (true)
continue 문
다음 문장을 건너뛰고 반복문의 다음 조건을 확인하는
교재 543페이지에 숫자 포멧하는 다른 방법 나와있음.
(추천하지는 않음)
참조타입 변수는 스택에 주소를 저장, 힙에 값을 저장한다.
String name1 = new String("Java")
String name2 = new String("Java")
이 경우 다른 주소를 가진 Heap영역을 할당 받는다.
new를 쓰지 않으면 같은 Heap영역을 공유하게 된다.
Stack
- 쌓다
- LIFO ( Last In First Out) : Stack의 동작방식을 설명하는 말 , 후입선출 방식
top ( 최 상단의 값) , push (입력) , pop (출력)
출력할 때 top의 값이 빠져나옴.
Heap
- new
- 선출방식이 따로 규칙이 없다.
<배열 ( Array)>
- 같은 타입의 데이터를 연속된 공간에 나열시키고, 각 데이터에 인덱스(index)를 부여해 넣은 자료구조
- 생성된 배열의 크기를 변경할 수 없음
int student[] = new int[10];
이라고 선언했다면 10개 이상을 넣을 수 없다.
배열선언
1) 타입[] 변수;
2) 타입 변수[];
선언과 동시에 초기화
String[] names = {"King", "Kim", "Lee"};
참조할 배열 객체가 없다면 null로 초기화
타입[] 변수 = null;
Hard coding : 읽어보기
배열명.length : 배열의 크기 (데이터 갯수)를 반환해주는 함수.
배열의 stack에는 첫번째 인덱스값의 주소값이 들어가 있다.
2차원배열 ** 다시공부..
- 이중for 문을 통해서 만들 수 있다.
- 자주 쓰인다. (1차원 배열과 더불어서)
열거타입
-enum
- 데이터 중, 몇 가지로 한정된 값만을 갖는 타입
.getInstance();
head firsrt 책 중에서 자바를 어느정도 배우고 나면 디자인패턴을 보면 좋다.
Calendar 기능, 날짜, 시간 등을 얻어올 수 있다.
refactoring : 보다 더 좋은 코드를 만드는 것을 말함.
정올, 백준 문제 많이 풀어보기!!!
'Java' 카테고리의 다른 글
Java 개발 공부 6일차 (21.08.24) (0) | 2021.08.28 |
---|---|
Java 개발 공부 5일차 (21.08.23) (0) | 2021.08.28 |
Java 개발 공부 3일차 (21.08.19) (0) | 2021.08.22 |
Java 개발 공부 2일차 (21.08.18) (0) | 2021.08.19 |
Java 개발 공부 1일차 (21.08.17) (0) | 2021.08.17 |