22. 05. 10 - 2차 시험, Api, 네트워크 소켓 복습
2차 TEST !
- JAVA 네트워크 프로그래밍까지 진도 나가고 진행된 TEST!
- 첫 번째 TEST 볼 때와는 사뭇 다른 느낌이었다.
- 아직 어색했던 개념도 있었고 (쓰레드랑 소켓 부분 ㅎㅎ)
- 그래도 강사님이 주사위를 잘 뽑으셔서 쉬운 문제로 걸렸다고 진행된 시험
- .... 이.. 이게 쉬운 편이었나요? ㅋㅋ
시험 진행!
- 2과목 서술형 / 문제 해결 시나리오
점수는!!!!
GOOOOOD -- :D
사실... 100점이긴 하지만... 한 문제는 틀린 거였다. ㅎㅎ
어떤 메서드에 대해서 설명하라고 하는 문제가 있었는데
사실은 그 컬렉션이 아닌 다른 컬렉션에서 존재하는 메서드였다.
메서드 내용을 맞게 작성해서인지 맞았다고 처리는 해주셨지만 찝찝 ㅎㅎ
그래도 다른 낚시? 문제들 잘 파헤치고 해결해서
100점 // 100점!!!! ^-^
API 복습 시간
<String>
1. 문자열 하나 만들기 :
2. n번째 문자 출력하기 : char ch = str.charAt(3);
3. n번째 부터 m 번째 문자열 출력하기 : String / substring(2,5);
4. "hello" 라는 문자열과 같은지 확인하기 : boolean / equals(“...”);
5. "abc" 라는 문자열을 포함하고 있는지 확인하기 : contains(“abc”);
6. 해당 문자열이 가지는 특정 문자의 인덱스 값 알아내기 : int / indexOf(“안”);
7. 특정 문자열을 구분자로 하여 문자 배열 얻어내기 : String[] / split(“ ”);
-> 공백을 기준으로 ( 띄어쓰기 한 칸) 문자열을 구분해라
+@ 7번
<List>
1. List 타입 객체 생성
2. 특정 타입만 담을 수 있도록 제한
3. 연예인 이름 n명 넣기
4. 모든 연예인 이름 출력해보기 (반복문으로)
5. 그중 3번째 연예인 이름 출력해보기
6. 마지막(뒤에서 첫 번째) 연예인 이름 출력해보기
7. 뒤에서 두 번째 연예인 이름 삭제하기
+@ 2번
- 제네릭은 보통 객체를 관리할 때 많이 사용 -
- <Person> -- Person 객체만 입력할 수 있도록 제한
- >객체를 넣어놓은 list에서 객체를 꺼내왔는데 저렇게 출력되는 이유는?
- >객체는 기본적으로 toString() 메서드가 호출되기 때문에~!
<Set>
1. Set 타입 객체 생성
2. 정수만 들어가도록 제한하기
3. 10개의 정수 넣기
4. 모든 값 출력해보기 – iterator 필요
- set은 인덱스도 없고, get도 없다 - Iterator를 이용 - 중구난방으로 있는 데이터를 하나하나 꺼내서 한 줄로 세우고 / 하나씩 꺼내보고 작업할 수 있다.
- 다 쏟아서 줄 세우기 - Iterator()
- 요소 가지고 있는지 물어보기 – hasNext() - 있으면 true/없으면 false 나온다. - 안 가지고 있는데 꺼내려고 하면 오류 발생하니까 방지 차원!
- 요소를 가지고 있다면 요소 꺼내오기 – if() + .next(); - 갔다 주면서 기존의 데이터 삭제해줌
5. 정수 n이 해당 객체에 포함되어 있는지 확인해보기
<Map>
1. Map 타입 객체 생성
2. Map의 key는 문자열, value는 정수로 제한하기
3. Map에 5개의 문자열 - 정수 쌍 데이터 넣기
4. 특정 key로 value 꺼내서 출력해보기
5. 모든 키 값 확인해보기 (출력)
6. 모든 value 확인해보기 (출력)
7. 모든 key - value 쌍 확인해보기 (출력)
+@ 57번
- Map.Entry가 더 정확한 표현이다.
- Map이라는 독립적인 클래스가 존재하는 게 아니라
- Map이라는 파일 안에 Entry 존재하고 있다. ( Map 인터페이스 안에 이너클래스(interface로 Entry 존재한다)
- Entry는 Map이랑 밀접한 연관이 있는 거지 MapMap 이외에는 상관이 없다.
- 그래서 Map안에다가 작성해 놓은 것 같다.~
소켓 복습
MY Question )
여러 개의 클라이언트 소켓들이
서버 소켓에 같은 ip주소와 포트번호로 연결 요청하면
포트번호 같은 걸로 요청했어도 연결 요청한 클라이언트 소켓 개수에 맞춰서
각각 하나씩 만들어주는 건가요?
- -> 네 넵 같아도 클라이언트 개수만큼 소켓이 생깁니다.
- accept() 메서드 확인
- accept() 메서드 안에 살펴보면
- accept() 실행될 때마다 ( == 연결될 때마다 ) new Socket() 해주는 작업이 있다!
- 소켓이 하나하나 다 생기겠구나! check
review
Test는 언제나 긴장되는 것 '^'
100점 / 100점 맞아서 기분은 좋지만!
저번 시험처럼 자신 있는 상태가 아니었다.
자신 없었던 부분은 복습하고
더 알아보는 시간을 가지도록 하자!
API 복습하며 메서드 사용해보는 시간을 가졌는데
Iterator를 설명해주실 때
일단 다 꺼내서 줄 세우는 거라는 예시가
너무 마음에 들었다.ㅎㅎ
이론적으로만 Index가 없는 Map유형 애들은
이터레이터를 이용해서 돌아다닌다고만 이해하고 있었는데
예시를 통해 이해하기가 더 수월했다.
컬렉션 애들 메서드 사용할 때 중간중간 애매했던 애들도
다시 사용해보며 Check 해보자!