본문 바로가기

java40

[Java] IO - 문자(char) 단위 IO 개념 그리고 예제코드 repo [IO 관련 예제코드] - 레포 : https://github.com/imjinbro/javaBasic/tree/master/src/com/jinbro/source/io - 아직 포스팅 하지않았지만 스트림 사용(byte, char 단위 각각, 콘솔, 파일 네트워크IO) 예제가 있음 - 네트워크 IO는 콘솔기반 다중접속 채팅프로그램을 구현하면서 익히는 중 (1) 소켓 - 스트림 데이터 통신(2) 서버(1) : 클라이언트(N) - 대기실 채팅, 명령어까지 구현(3) 방 만들고 따로 참여해서 방 채팅하는 것은 구현하는 중 (4) 이후 리팩토링까지..... : 객체지향스럽게(https://imjinbro.github.io/) [Reader]- 문자(char) 단위로 데이터를 읽어올 떄 사용하는 스트림- 메서드(.. 2017. 12. 7.
[Java] IO - 바이트 단위 IO 개념 그리고 예제코드 repo [IO 관련 예제코드] - 레포 : https://github.com/imjinbro/javaBasic/tree/master/src/com/jinbro/source/io - 아직 포스팅 하지않았지만 스트림 사용(byte, char 단위 각각, 콘솔, 파일 네트워크IO) 예제가 있음 - 네트워크 IO는 콘솔기반 다중접속 채팅프로그램을 구현하면서 익히는 중 (1) 소켓 - 스트림 데이터 통신(2) 서버(1) : 클라이언트(N) - 대기실 채팅, 명령어까지 구현(3) 방 만들고 따로 참여해서 방 채팅하는 것은 구현하는 중 (4) 이후 리팩토링까지..... : 객체지향스럽게(https://imjinbro.github.io/) [I/O]- 데이터를 외부에서 읽고, 외부로 출력하는 작업 : Input, Output.. 2017. 12. 7.
[Java] 자바 IO - IO, 스트림 개념 [IO 관련 예제코드] - 레포 : https://github.com/imjinbro/javaBasic/tree/master/src/com/jinbro/source/io - 아직 포스팅 하지않았지만 스트림 사용(byte, char 단위 각각, 콘솔, 파일 네트워크IO) 예제가 있음 - 네트워크 IO는 콘솔기반 다중접속 채팅프로그램을 구현하면서 익히는 중 (1) 소켓 - 스트림 데이터 통신(2) 서버(1) : 클라이언트(N) - 대기실 채팅, 명령어까지 구현(3) 방 만들고 따로 참여해서 방 채팅하는 것은 구현하는 중 (4) 이후 리팩토링까지..... : 객체지향스럽게(https://imjinbro.github.io/) [I/O]- 데이터를 외부에서 읽고, 외부로 출력하는 작업 : Input, Output.. 2017. 12. 7.
[Java] 람다식 - 단순히 syntactic sugar 아니네요 [더 자세한 내용은] - 케빈님 영상 : https://www.youtube.com/watch?v=bKzMl7LKIO0&index=21&list=PLRIMoAKN8c6O8_VHOyBOhzBCeN7ShyJ27 [단순히 syntactic sugar 아니네요]- 단순하게 컴파일 타임 때 Anonymous class 형태로 바뀌지않음 1) 스코프가 다름 : 자체스코프 가지나 안가지나- 익명클래스는 외부 인스턴스 필드에 접근 스코프 액세스 메서드도 만들어줌 : access$000 (getter), 접근할 방법이 없으니깐 2) 파일 생성이 달라(클래스 - 인스턴스 생성 달라) : 익명클래스 수만큼 클래스 파일 추가, 람다는 따로 생성안하고 람다레시피 추가- 디컴파일 : javap -c -p 파일명.class (An.. 2017. 11. 14.
[Java] 자료구조 API - 컬렉션프레임워크 [샘플코드]- https://github.com/imjinbro/javaBasic/tree/master/src/com/jinbro/source/collection [컬렉션 프레임워크]- 객체 자료구조를 API로 제공함 : 인터페이스와 인터페이스 구현 클래스 제공- 주요 인터페이스1) List : 선형자료구조(순서O), 중복O2) Set : 순서X, 중복X3) Map : key-value 쌍으로 저장, 순서X, key는 중복되면 X / value는 중복되어도 상관X0) Collection 인터페이스 > List, Set : List와 Set은 Collection으로 묶임- 같은 메서드가 많으니 하나의 타입(Collection)으로 묶음 : 타입에 대한 의미랄까- 제네릭 사용 : 타입인자 넘겨주지않으면 기본.. 2017. 11. 8.
[Java] java8 - Functional Programming이 뭘까 왜 쓰지 그리고 람다식은? [github 코드] - 함수형인터페이스 직접 만들어본 코드는 아래에 나머지 샘플 코드들은 깃헙에 푸쉬해놓음 - https://github.com/imjinbro/javaBasic/tree/master/src/com/jinbro/source/fp [FP를 OOP에서 왜?]- FP가 필요한 부분이 있으니깐 사용하겠다 1) 동시성 side effect 없애기 : 멀티쓰레딩 공유자원 안전- 객체 상태 변화에 민감한 부분에서 순수함수형프로그래밍이 좋다 : 같은 input -> 같은 output- 변경 개념이 아니라 복사되고 복사된 것이 함수를 거쳐 결과값으로 : side effect 없앰 2) 함수에만 신경쓰면 됨 : 메서드에만 집중가능함- 객체지향설계 메서드 single responsibility princi.. 2017. 11. 2.
[Java] 제네릭, 와일드카드 - 제네릭, 와일드카드는 깊게 알수록 복잡하다 [제네릭, 와일드카드 공부하면서 작성한 코드] - https://github.com/imjinbro/javaBasic/tree/master/src/com/jinbro/source/generic [제네릭, 파라미터와 타입 파라미터]- java5부터 1) 파라미터 : 값(인자, argument)을 받아 파라미터 변수와 바인딩하고 메서드 내부에서 사용함2) 타입 파라미터- 파라미터인데, 그 값이 타입인 것- 객체를 생성할 때 타입을 받아서 그 타입으로 만듬- 인자를 넘겨받을 때에는 으로 3) 그 타입인 데이터 자체에 관심이 있다는 것- List = new ArrayList() 라면 타입인 데이터 자체에 관심을 가짐 [제네릭의 장점]1) 강력한 타입 체킹 : 인자로 받은 타입과 일치하지않는 데이터를 입력받으면 .. 2017. 10. 28.
[Java] 쓰레드 - 쓰레드, 멀티쓰레드(우선순위, 쓰레드 그룹, 쓰레드풀) 등 [예제 코드] : 같이 올리기에는 너무 많은 양의 코드라 깃헙에 올려둠 - https://github.com/imjinbro/javaBasic/tree/master/src/com/jinbro/source/thread [프로세스와 쓰레드 그리고 멀티테스킹]1) 프로세스 : 프로그램이 메모리를 할당받아 코드를 실행한 것- 1개의 프로그램이 여러개 켜져있으면 각각의 프로세스 : 독립적 2) 쓰레드 : 1가지 작업을 처리하는 실행 흐름 3) 멀티테스킹 : 동시에 2개 이상의 작업을 처리하는 것- 멀티프로세스 OR 멀티쓰레드- 멀티프로세스(1) 각각의 프로세스는 독립적이기때문에 하나의 프로세스가 잘못되어도 다른 프로세스 실행에는 영향X(2) 프로세스는 프로그램을 실행을 위해 동일하게 메모리 공간을 여러번 할당받으.. 2017. 10. 25.
[Java] 표준 API #5 - Calendar, Date, Format, java.time 패키지 [API 알아보기]1) java.util.Date, java.util.Calendar- 시스템 날짜, 시간 관련 유틸리티 객체/* [Date + SimpleDateFormat] 1) 시스템의 날짜, 시간을 읽을 수 있는 유틸리티 2) 날짜를 주고 받을 때 주로 사용 3) java.text.SimpleDateFormat 메서드로 특정 포맷 출력 가능 : 패턴 지정해줘야함 - Format 관련 패키지 : java.text */ import java.text.SimpleDateFormat; import java.util.Date; public class DateTest { public static void main(String[] args) { //다양한 생성자가 있지만 권장하지않는 어노테이션(Deprecat.. 2017. 10. 19.
[Java] 표준 API #4 - Arrays, Wrapper, Math, Random [src github repo]- https://github.com/imjinbro/javaBasic [API 소개] 1) java.util.Arrays- 배열 수정과 관련한 메서드를 제공하는 유틸리티 클래스 : 모두 static 메서드- 알고리즘 공부할 때 기본적으로 Arrays가 제공하는 메서드를 만들어보는 것도 좋은 듯=> Arrays만이 아니라 util에 있는 것을 똑같이 구현해보는 것도 공부많이될 듯 - 레퍼런스 타입 비교 기준 : java.util.Comparable 구현 클래스 - 메서드 오버라이딩(오름, 내림차순 코딩)=> Arrays.binarySearch가 Comparable 변수 타입 표준화, compareTo를 사용함 : Arrays.=> Arrays.binarySearch 사용하지.. 2017. 10. 12.