자바기초 (19) 썸네일형 리스트형 [java-기초-19] NIO 기반 입출력 및 네트워킹 자바 4부터 새로운 입출력이라는 뜻으로 NIO(new Input/Output)인 java.nio 패키지가 포함 되었고 자바 7로 버전업하면서 비동기 채널 등의 네트워크 지원을 대폭 강화한 NIO.2 API가 추가되었습니다. NIO.2는 java.nio2 패키지로 제공되지 않고 기존 jav.nio의 하위 패키지로 통합되어 제공하고 있습니다. NIO 패키지 포함되어 있는 내용 java.nio 다양한 버퍼 클래스 java.nio.channels 파일 채널, TCP 채널, UDP 채널 등의 클래스 java.nio.channels.spi java.nio.channels 패키지를 위한 서비스 제공자 클래스 java.nio.charset 문자셋, 인코더, 디코더 API java.nio.charset.spi java... [java-기초-18] 네트워크 기초 네트워크란 네트워크는 여러 대의 컴퓨터를 통신 회선으로 연결하는 것을 의미하며 인터넷은 지역 네트워크를 통신 회선으로 연결한 것을 의미합니다. 서버와 클라이언트 데이터를 주고 받는 행위는 프로그램이 하며 각각의 프로그램의 역할을 서버와 클라이언트라고 하며, 받는 프로그램을 클라이언트, 주는 프로그램을 서버라고 합니다. IP 주소와 포트 인터넷 상의 고유한 주소를 IP주소라고 하고 집의 호수를 같은 지정 된 위치를 포트라고 합니다. IP보다 외우기 쉽게 문자로 변환한게 DNS입니다. 구분명 범위 설명 Well Know Port Numbers 0~1023 국제인터넷주소관리기구(ICANN)가 특정 애플리케이션용으로 미리 예약한 포트 Registered Port Numbers 1024~49151 회사에서 등록해.. [java-기초-16] 스트림과 병렬 처리 스트림(Stream)은 자바 8부터 추가된 컬렉션(배열 포함)의 저장 요소를 하나씩 참조해서 람다식(함수적-스타일)으로 처리할 수 있도록 해주는 반복자이다. 반복자 스트릠 자바 7 이전까지는 List 컬렉션에서 요소를 순차적으로 처리하기 위해 Iterator 반복자를 사용했다. public class Test { public static void main(String[] args) { List list = Arrays.asList("홍길동", "김아무개", "김도시"); Iterator iterator = list.iterator(); while(iterator.hasNext()) { String name = iterator.next(); System.out.println(name); } System.o.. [java-기초-15] 컬렉션 프레임워크 자바에서는 널리 알려져 있는 자료구조를 바탕으로 객체들을 효율적으로 추가, 삭제, 검색 할 수 있도록 java.util. 패키지에 컬렉션과 관련 된 인터페이스와 클래스들을 포함시켜 놓았고 이를 컬렉션 프레임워크라고 부른다. 컬렉션 : 사전적 의미로 요소를 수집해서 저장하는 것을 말하며 자바 컬렉션은 객체를 수집해서 저장하는 역할을 한다. 프레임워크 : 사용 방법을 미리 정해 놓은 라이브러리를 말한다. 인터페이스 분류 특징 구현 클래스 Collection List - 순서를 유지하고 저장 - 중복 저장 가능 ArrayList, Vector, LinkedList Set - 순서를 유지하지 않고 저장 - 중복 저장 안됨 HashSet, TreeSet Map - 키와 값의 쌍으로 저장 HashMap, Hasht.. [java-기초-14] 람다식 람다식은 익명 함수를 생성하기 위한 식으로 객체 지향 언어보다는 함수 지향 언어에 가깝다. 객체 지향 프로그래밍에 익숙한 개발자들은 다소 혼란스러울 수 있지만, 자바에서 람다식을 수용한 이유는 자바 코드가 매우 간결해지고, 컬렉션의 요소를 필터링하거나 매핑해서 원하는 결과를 쉽집계할 수 있기 때문인다. 람다식의 형태는 매개 변수를 가진 코드 블록이지만, 런타임 시에는 익명 구현 객체를 생성한다. 람다식 -> 매개 변수를 가진 코드 블록 -> 익명 구현 객체 // 익명 구현 객체 생성의 전형적인 코드 Runnable runnalbe = new Runnerable() { pulic void run() { ... } } // 람다식으로 표현 Runnable runnable = () -> { ... } 람다식을.. [java-기초-13] 제네릭 왜 제네릭을 사용하는가? java 5부터 제네릭 타입이 새로 추가되었고 제네릭 타입을 이용해 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거할 수 있다. 제네릭은 널리 사용된다. 컬렉션, 람다식, 스트림, NIC java API docs 클래스, 인터페이스, 메서드를 정의할 때 타입을 파라미터로 사용 제네릭의 특징 컴파일 시 강한 타입 체크를 할 수 있다. 타입 변환을 제거 한다. List list = new ArrayList(); list.add("hello"); String str = (String) list.get(0); List list2 = new ArrayList(); list.add("hello"); String str2 = list2.get(0); 제네릭 타입 : class, I.. [java-기초-12] 멀티 스레드 멀티 스레드 개념 프로세스와 스레드 운영체제에서는 실행 중인 하나의 애플리케이션을 프로세스라고 부르며 사용자가 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당 받아 애플리케이션의 코들르 실행하는데 이것을 프로세스라고 부른다. 예를 들어 Chrome 브라우저를 두 개 실행했다면 두 개의 Chrome 프로세스가 실행 된 것이다. 작업 관리자에서 확인 할 수 잇듯 이 1개의 프로그램의 실행으로 프로세스가 생성되고 그 안에서 스레드가 구동되고 있다. 멀티 태스킹은 두 가지 이상의 작업을 동시에 처리하는 것을 말하고 운영체제는 멀티 태스킹을 할 수 있도록 CPU 및 메모리 자원을 프로세스마다 적절히 할당해주고, 병렬로 실행시킨다. 멀티 프로세스들은 운영체제에서 할당 받은 자신의 메모리를 가지고 .. [java-기초-11-02] 기본 API 클래스 정규 표현식과 Pattern 클래스 문자열이 정해져 있는 형식으로 구성되어 있는지 검증해야 하는 경우에 정규표현식을 사용하면 된다. 기호 설명 [ ] 한 개의 문자 [abc] a, b, c 중 하나의 문자 [^abc] a, b, c 이외의 하나의 문자 [a-zA-Z] a~z, A~Z 중 하나의 문자 \d 한 개의 숫자, [0-9]와 동일 \s 공백 \w 한 개의 알파벳 또는 한 개의 숫자, [a-zA-Z_0-9]와 동일 ? 없음 또는 한 개 * 없음 또는 한 개 이상 + 한 개 이상 {n} 정확히 n개 {n,} 최소한 n개 {n,m} n개에서부터 m개까지 ( ) 그룹핑 - (02|010)-\d{3,4}-\d{4} 기호 설명 (02|010) 02 또는 010 - - 포함 \d{3,4} 3자리 또는 4자리 .. 이전 1 2 3 다음