Java

Java 개발 공부 4일차 (21.08.20)

Pearl_mini 2021. 8. 22. 13:14
728x90

개발 초기에는 절차지향언어 (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 : 보다 더 좋은 코드를 만드는 것을 말함.

 

정올, 백준 문제 많이 풀어보기!!! 



728x90

'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