9/20

오늘은 자바 enum을 시작으로배운다 enum은 직관적으로 알 수 있는 내용이라고한다.

열거(enum)

ch05에 있다

한정된 값을 갖는 타입 -> ex) 계절 일주일의 요일 단위 같은것들 

 

 

reflection(반영하다)

ch12 에 있다.

좀 어렵다  annotation 때문에 배우는것

클래스에 갖고 있는 객체 정보를 얻기도 하고 필드 메소드가 어떤것이 있는지 , 또는 클래스 정보를 얻어 인스턴스를 생성한다던지 같은 일을 한다.

 

생성한것을 뜯어볼 수 있다.

 

annotation(유효성 검사)

직접 만들일은 없고 사용할 일이 많이 있다.

annotation을 reflection 으로 읽으려면 retention을 유지 해줘야 한다. 

 

Emmet


javaSpring

오늘은 request 부분만 간단하게 배울 예정이다.(jsp 구조)

(실제 프로젝트 react 할때의 구조) ▼

 

 

 

9/19

오늘은 38일차 수업 어제 하던 멀티 쓰레드를 이어서 배울 예정이다.

14장 쓰레드

Atmoic -> 하나의 객체를 다중 쓰레드에서 사용할때 쓴다.

 

( java.util.vector )vector -> 멀티 스레드 환경에서는 안전하게 객체를 추가 또는 삭제할 수 있다.

멀티 쓰레드에서 ArrayList 대신 Vector를 쓴다.

 

// 씽크로나이즈드 블럭

// 싱크로나이즈드 메소드 이용할 수 있다.

 


19장 네트워크 입출력

입력과 출력 스트림이 맞으려면 소켓을 알아야 한다.

포트번호 

 

멀리떨어져있는 두개의 컴퓨터가 통신을 할 수 있구나 라는것만 기억하면 된다.

 

 

9월 20일 진행 예정 일정

java

  • enum
  • reflection 
  • annotation
  • jdbc(20장)
  • intellij code 분배
  • spring boot 배우기

9/18

오늘은 데이터 입력을 이어서 나갈 예정

예외???

출력스트림중 OutputStream 을 받지 않는 것이 있다 -> PrintStream 

PrintStream이 다른 문자를 출력할때 outputStream으로 못해서 문자단위를 출력하기 위해 만들어진것

 

 

가변인자

 

File

14장 멀티 쓰레드

하나의 프로그램을 실행시키면 한 프로그램 안에서 여러 일을 동시에 작동할 수 있게 해주는것

쓰레드 -> 하나의 업무 흐름 

멀티 쓰레드 -> 업무 흐름이 여러개다.

 

 

 

 

 

9/15

오늘은 어제 하던 18장 데이터 입출력을 오늘 이어서 배울 예정이다.

 

18.데이터 입출력

이 4가지는 기억해 두도록 하자

데이터 입출력 코드 -> 데이터를 어딘가로 보내거나 데이터를 어딘가로 받아올지 정해주는 코드

 

OutputStream 이 왜 Close가 필요한지 이유 ▼

 

권장하지 않는 방식의 코드▼

배열을 write하는 예제 ▼

 

문자 입출력 스트림

Writer , Reader

사용 방법은 데이터 입출려고가 거의 비슷하다.

flash 사용은 습관화 하자

 

데이터 단위 문자 단위 출력의 값이 다를때가 있다

영어권 사람들은 문자 스트림을 안쓰는 경우가 있다.

 

바이트 스트림 -> 문자단위일때도 이미지(파일) 단위 일때도 사용 가능

문자 스트림 -> 문자일 때만 사용 

 

 

스트림간의 변환 (바이트 -> 문자 // 문자 -> 바이트)

보조 스트림(filter stream)

변경해주는 것의 예 (다른 코드를 갖고와서 해봄) ▼

 

 

성능 향상 스트림

BufferedInputStream, BufferedOutputStream을 이용 하여 입출력 스트림을 감싸서 사용 한다
(바이트 스트림이든 문자스트림이든)

 

 

 

 

 

 

 

9/14

어제는 stream의 collection까지 배우고 11장exception(예외처리)를 배울 예정이다.

 

예외처리 exception

편안하게 듣자 자주는 안쓰지만 종종 나옴 

기억해둬야 할것은 실행 흐름에 유의 해야한다.

 

예외 ->원하지 않는 실행 흐름이 나타나는것을 인식하는것

예외가 발생되면 프로그램은 곧바로 종료된다.

이것을 방지하기 위해 에외 처리를 한다.

에러는 방지를 할수 없고 (오류)예외는 방지할 수 있다.

 

실행 예외 -> runtime excetion, unchecked excetion

일반 예외 -> checked excetion

 

예외가 발생했을때 다음것으로 진행 하는것을 

 

try -> catch

exception 이 발생하면 발생한 부분아래는 실행 안하고 바로 catch 블럭으로 바로 넘거어간다 ▼

printStrackTrace
오류를 보고싶을때 출력시켜주는 명령어

표준출력  -> out : 콘솔창 출력

표준에러출력 -> err : 이것도 콘솔찰 출력

표준출력과 에러출력은 서로 순서를 지키지 않는다.

 

 

finaly block 

exception 발생과 관계 없이 실행되는 block 이고 트라이 캐치 제일 마지막에 쓸 수있다.

중간에 return 문으로 종료가 되어도 finally블럭은 실행된다.

finally의 사용예 ▼

Throw (던지기)

 

 

실행 예외 -> runtime excetion, unchecked excetion ( RuntimeException 을 상속 받는 것들 )

일반 예외 -> checked excetion (꼭 try, catch를 이용 해야 한다.)

 

18장 데이터 입출력

11장 을 오늘 전부 마무리 하고 18장 앞부분을 조금 나갈 예정

프로젝트 활용중 1명정도만 사용할 기능

 

입력, 출력

프로그램 기준 들어오는것이 입력 스트림(input stream, )

프로그램 기준 나가는것이 출력 스트립 (output stream, )

 

바이트 스트림 -> 1바이트

문자 스트립 -> 2바이트 

 

stream은 사용 후 꼭 닫아줘야 한다.

 

 

 

 

 

 

 

9/13

오늘은 어제에 stream의 reduce 를 배운 것에 이어 Optional reduce를 배울 예정이다.

 

[ Optional ] , [ orElse ]

 

일반 stream에는 없고 IntStream에 있는 sum기능

§ stream은 재사용이 안된다 사용할 때마다 재설정 을 해주자!!!

 

요소 커스텀 집계 Stream, IntStream, LongStream, DoubleStream

기본타입 -> 참조타입

boxed()

참조타입-> 기본타입

mapToInt

이런식으로 변경해가면서 사용하고 싶을때

 

Stream ( Collect ) 요소수집

collect(Collectors())를 사용하여

list, set , map 으로 원하는 값을 모아줌

 

toList( ) -> T를 List에 저장

toSet( ) -> T를 Set에 저장

toMap( ) -> 홀수 값을 키로 짝수 값을 벨류로 저장 해준다.

 

groupingBy

groupingBy메소드는 그룹핑 후 매핑 및 집계를 할 수 있도록 두번째 매개값인 Collector를 얻을수 있도록 하는것 이다.

 

 

내일은 11장 execption 을 배울 예정

 

 

 

 

 

 

 

 

9/12

어제는 set과 map에 관해서 배웠고 오늘은 교과서의 15장 컬랙션 자료구조 에 대해 이어서 진도를 나갈 예정이다.

 

15.5검색기능을 강화시킨 컬렉션

-> 공부했던 사람들만 봐도 괜찮 처음이라면 어려우니 넘기기

 

15.6 LIFO , FIFO 컬렉션 

LIFO(스텍)stack  -> 가장 마지막에 들어간 것이 나올때는 가장 처음 나온다. 가장 처음 들어간것이 제일 나중에 나온다.

명령어 : push()넣다, pop()꺼내다, peek()마지막것이 뭔지 확인만

 

FIFO(큐)Queue -> 선입선출 First In First Out

명령어 : offer 넣기(추가), poll 빼기(삭제)

 

15.7 동기화된 컬렉션 

-> 지금은 볼 필요 없음

 

15.8 수정할 수 없는 컬렉션

List 에서의 예  ▼

사용 이유는 한번만 사용 하고 버릴때 

Set에서 사용 예 ▼

Map에서의 사용 예

 

수정불가 컬렉션을 수정 할 수 있게 해주는 방법 ▼

새로운 생성자에 수정불가 컬렉션을 넣어서 수정 가능하게 해준다.

Set 예▼

Map 예▼


17장 스트림 요소 처리

stream -> 흘러가다.(좀 어려움) 컬렉션과 조합해서 사용한다.

15장에서 배웠던 list set map 들에 담겨져있는 element를 순차적으로 처리 해주는 일을 해준다.

 

지금까지 배운방식으로는 for, foreach 같은것 으로 사용 했지만 stream 으로도 찾을 수 있다.

중간연산 : intermediate operation -> 중간에 여러번 사용 가능
최종연산 : terminal operation -> 마지막 한번만 사용 가능

최종 연산 후 stream 재사용 불가

최종 연산 시 중간연산을 같이 처리함

 

중간 연산을 사용 하려면 꼭 최종연산이 마지막에 와야한다.

 

오늘 여러가지 stream 관련 메소드들을 배웠고 내일은 Optional reduce를 이어서 배울 예정이다.

 

 

 

9/10

conection 을 이어서 배운다 오늘은 월요일 지난주에 list와 set을 배웠고 이어서 할 예정

오늘은 Iterater 이란걸 배웠고

 

Iterator exception 으로 안전하게 삭제시키는법 ▼

 

 

removeIf를 이용해서 간단하게 값을 지운다.

다른클래스의 객체 생성시 set에서 인식한는것 ▼

 

 

// new 로 생성하기 때문에 새로운 주소로 할당 되게될 것이므로 set 에서는 다른 것으로 인식 하게 된다▲

 

// 그러므로 같은 것이라고 인식 시켜주기 위해서는 원래 class에서 equals와 hashCode 를
// 이용해서 같은것이라고 인식 시켜주어야 한다.▼

 

 

 


Map 인터페이스

- 키와 값으로 (쌍으로) 저장된다.

- 중복 저장 안됨 

- 순서가 보장 되지 않는다.

 

Map의 기능들 ▼

 

Map을 이용한 전체 탐색 방법

리트코드 1748번,2206번,1512번, 771번 문제 풀이 했음.

9/7

 

13장 제네릭

타입파라미터 작성 규칙(관습)
대문자 한글자

T : type -> 아무타입이나 받겠다
V : value -> 클래스 안에서 값으로 사용한다.
N : Number -> 숫자에 관련된 타입을 받겠다
K : key
E : element -> 어떤 원소로 사용할것
S, U : 기타 등등
T1, T2 : 기타 등등

15 장 컬렉션 자료구조

중요함 

컬렉션 -> 어떤 객체를 담고있는 객체

담아라 추가하라 지워라 라는 메소드 들이 이미 정의 되어있다.

List , Set , Map

 

List -> 객체를 담을때 순서를 유지하고 저장, 중복저장 가능

 

 

 

 

 

 

 

 

+ Recent posts