
awaytermination만은 사용할 수 없음 셧다운 없이 쟤만 쓰면 걍 기다리기만 해, 위에 셧다운이 들어가고 그담에 awaytermination가 들어가는 거 셧다운안쓰고 await쓰면 서버가 끝나지 않음 블로킹 그럼 runnable은 블로킹 사용안해? 반환하는것도 없는데 어캐 기다리게할거야? future라는 객체를 반환받지 않으면 블로킹 사용이 불가능함 -> 그래서 runnable도 마찬가지로 submit에 runnable도 넣을 수 있음 근데 반환값이 없으니까 데이터타입에 ? 찍어버림 -> 반환값이 없어도 블로킹 사용하려고 submit 사용해줘야함 근데 저기까지 쳐도 블로킹이 안됨 -> get()까지 찍어줘야함 이렇게 future 객체를 가져오는 get()메서드는 join()처럼 blocking..

Thread round robin thread는 round robin 방식을 사용하기 때문에 먼저 일을 시작했다고 해서 먼저 끝나지 않음. 메모리 쉐어 다른 스레드가 arraylist의 내용을 바꿔버릴 수가 있음 ;; 얘넨 메모리 공유하니까 동기화(Synchronize)를 통해서 다른 스레드가 쓰고 있을 때는 일이 끝날 때까지 들어갈 수 없게 막아줌 ex vector, hash Table 같은 애들이 그 역할을 함 그림그릴때 점선과 실선 차이 실선 : 객체가 클래스가 끝날 때까지 남아있음 (코드블럭 밖에서 객체화를 시킴) 점선 : 사라짐 synchronized(동기화) 먼저 선점한 쪽이 일이 끝나지 않으면 대기하는 것 방법 크게 2가지가 있음 synchronized method는 가게 밖에서 줄 세워 놓..

코드리뷰할 땐 : 한 코드블럭마다 의도를 말해줘야함 uri 부분 : 필요한 요청 경로만 뽑아내기 위해서 JAVA NIO 비동기방식 : Stream대신 Channel(큰 빨대 하나로 in과 out모두 다룸) Buffer도 지원 buffer 사용해서 빠르게 했지만 더 빠르게 할 수 있는 방법 옮길 데이터 만큼의 배열을 만들고 거기에 데이터를 다 담고 그걸 통째로 옮겨버리는 방법 but 이렇게 하면 파일이 깨질 수도 있고, 배열의 크기를 엄청 크게 할 수도 없음 IO에서는 File 하나로 경로, 파일 정보, 파일 다루기를 모두 했지만 NIO에서는 경로는 Path, 파일 정보는 FileSystem, 파일 다루기는 Files로 나뉨 nio를 통해서도 파일 업로드가 가능한데 얘는 통신이 불가능하기 때문에 내 컴퓨터..

Datainputstream 데이터 타입 그 자체를 읽거나 쓸 수 있는 보조 스트림 stream만으로는 java의 데이터타입인 boolean, double, String 등을 전송할 수 없음 이전까지는 static을 이용해서 데이터를 쓰고읽고했는데 이건 서버를 끄면 사라짐 이젠 파일시스템으로 저장할거임 -> 사라지지않음 ObjectoutputStream data로는 모든 type을 보내기는 무리가 있다 그래서 사용한게 object를 다룰 수 있는 보조스트림 여기에는 객체, 배열, 컬렉션 등 다양한 데이터 형태가 들어 갈 수 있다 class의 경우는 직렬화를 하지않으면 전달되지 않 오른쪽은 역직렬화라고 부름 - controller @WebServlet(urlPatterns = {"/login","/join..
Stream 우리 시스템(ex 자바) 안으로 또는 밖으로 이동하는 data의 흐름 JAVA.io 에는 InputStream과 OutputStream으로 나뉜다 그리고 바이트기반(1 0 1 1...), 문자 기반(a b c d e r...)으로 나뉜다 바이트 기반은 InputStream과 OutputStream 클래스를 사용하고 문자기반은 Reader클래스와 Wirter클래스를 사용함 InputStream은 최상위 클래스이고 이걸 직접 사용하는 일은 드뭄 -> FileInputStream BufferedInputStream DataInputStream을 사용함 (OutputStream도 동일한 하위 클래스가 있음) File 객체 JAVA.io에 해당하는 클래스는 아님, file이나 directory를 다룰..

hash set 순서가 없음 -> 정렬을 못함 -> 순서를 정할 수 없음 -> 검색이 불가능(검색할 때 가나다 순으로 정렬 먼저 하니까) hash table는 vector랑 비슷 map 자바스크립트에선 오브젝트라고 부른거 key값은 중복 안됨, 순서도 없음(대체적으로는 abc순으로 보여주나 순서가 없음) 순서가 필요하다면 절대 map에 넣으면 안됨 !! set은 중복을 안받지만 key는 중복이 들어오면 그냥 덮어써버림 hash map 제네릭 2개 선언함 hash map(string, string) key값으로 value를 찾아올 수 있음 (검색 가능) Map의 전체값 가져오는 방법 3가지 1. key만 따로set으로 꺼내오고 iterator로 하나씩 분리하고 get(key)로 value값 가져오기 pub..