Languages/JAVA (11) 썸네일형 리스트형 네트워킹 네트워킹 : 두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크를 구성하는 것. 클라이언트 / 서버 : 컴퓨터간의 관계를 역할로 구분하는 개념이다. '서버'는 서비스를 제공하는 컴퓨터이고 '클라이언트'는 서비스를 사용하는 컴퓨터가 된다. URL 소켓프로그래밍 : 소켓을 이용한 통신 프로그래밍을 뜻하는데, 소켓이란 프로세스간의 통신에 사용되는 양쪽 끝단을 의미한다. 입출력 I/O 입출력과 스트림 input : 저장, 읽기 output : 출력 스트림 : 입출력을 수행하려면, 두 대상을 연결하고 데이터를 전송할 수 있는 무언가가 필요한데 이것을 스트림이라고 정의. 입출력에서의 스트림은 14장의 스트림과 같은 용어를 쓰지만 다른 개념이다. '스트림이란 데이터를 운반하는데 사용되는 연결통로이다.' 연속적인 데이터의 흐름. 단방향 통신, 하나의 스트림으로 입력과 출력을 동시에 처리할 수 없다. 큐(queue)와 같은 FIFO(first in first out)구조로 되어있다.(생각하면 됨) 바이트 단위로 데이터를 전송. 이들은 모두 InputStream 또는 OutputStream의 자손들이며, 각각 읽고 쓰는데 필요한 추상 메서드를 자신에 맞게 구현. 보조스트림 : 실제 데이터를 주고.. 람다와 스트림 람다식 : 메서드를 하나의 '식(expression)'으로 표현한 것. 람다식은 함수를 간략하면서도 명확하게 표현할 수 있게 해준다. '익명함수'라고도 한다. 람다식 작성하기 람다식은 익명 클래스의 객체와 동등하다. 타입 f = (int a, int b) -> a > b ? a : b; //참조변수의 타입을 뭘로 해야 할까? 익명 객체의 주소를 f 라는 참조변수에 저장. 참조형이니까 클래스 또는 인터페이스가 가능하다. 그리고 람다식과 동등한 메서드가 정의되어 있는 것이어야 한다. 그래야 참조변수로 익명 객체의 메서드를 호출할 수 있기 때문이다. 556p 참고 컬렉션 프레임웍과 함수형 인터페이스 메서드 참조 하나의 메서드만 호출하는 람다식은 '클래스 이름 :: 메서드이름' 또는 '참조변수 :: 메서드이름'.. Java 쓰레드 (진행중) 프로세스와 쓰레드 : '실행 중인 프로그램' 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다. 프로세스 == 자원(데이터 + 메모리) + 쓰레드 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이 바로 쓰레드이다. 멀티쓰레딩의 장단점 장점 - CPU의 사용률을 향상시킨다. - 자원을 보다 효율적으로 사용할 수 있다. - 사용자에 대한 응답성이 향상된다. - 작업이 분리되어 코드가 간결해진다. 단점 - 여러 쓰레드가 같은 프로세스 내에서 자원을 공유하면서 작업을 하기 때문에 발생할 수 있는 동기화(synchronization), 교착상태(deadlock)와 같은 문제들이 생길 수 있다. 구현과 실행 : Thread클래스를 상속받는 방법과 Runnable인터페이스를 .. 열거형(enum), 어노테이션 열거형 : 여러 상수를 선언해야 할 때, 편리하게 선언할 수 있는 방법. java.lang.Enum 정의 enum Direction { EAST, SOUTH, WEST, NORTH } 열거형 상수간의 비교에는 '==' 사용가능 equals()도 가능. 비교 연산자는 사용이 불가능해서 compareTo메서드 사용. B.compareTo(A) : (A)와 B가 같으면 0, A보다 왼쪽이면 양수 오른쪽이면 음수로 표시. java.lang.Enum 컴파일러가 자동적으로 추가해주는 메서드 2개 static E[] values() static E valueOf(String name) 열거형에 멤버 추가 : Enum클래스에 정의된 ordinal()이 열거형 상수가 정의된 순서를 반환하지만, 이 값을 열거형 상수의 값.. Java 제네릭스(Generics) 제네릭스 : 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움이 줄어든다. 장점 - 타입 안정성을 제공. - 타입체크와 형변환을 생략할 수 있으므로 코드가 간결해 진다. 용어정리 Box 제네릭 클래스. 'T의 Box' 또는 'T Box'라고 읽는다. T 타입 변수 또는 타입 매개변수.(T는 타입문자) Box 원시 타입 (row type) T는 메서더의 매개변수와 유사한 면이 있다. 다형성 : 제네릭 클래스의 객체를 생성할 때, 참조변수에 지정해준 제네릭 타입과 생성자에 지정해준 제네릭 타입은 일치해야 한다. 상속관계에 있어도 일치해야 한다. Iterator Iterator에도 제니릭스가.. 컬렉션 프레임웍 컬렉션 프레임웍 : '데이터 군을 저장하는 클래스들을 표준화한 설계'를 뜻한다. 컬렉션, 다수의 데이터를 다루는데 필요한 다양하고 풍부한 클래스들을 제공하기 때문에 프로그래머의 짐을 상당히 덜어 주고 있으며, 또한 인터페이스와 다형성을 이용한 객체지향적 설계를 통해 표준화되어 있기 때문에 사용법을 익히기에도 편리하고 재사용성이 높은 코드를 작성할 수 있다는 장점이 있다. 핵심 인터페이스 : 3가지 타입이 존재한다. List : 순서가 있는 데이터의 집합. 데이터의 중복을 허용. 예) 대기자 명단 구현클래스 : ArrayList, LinkedList, Stack, Vector 등 Set : 순서를 유지하지 않는 데이터의 집합. 데이터의 중복을 허용하지 않는다. 예) 양의 정수 집합, 소수의 집합 구현클래스.. java.lang 클래스 Object클래스 : 모든 클래스의 최고 조상 클래스 equals() : 매개변수로 객체의 참조변수를 받아서 비교하여 그 결과를 boolean값으로 알려 주는 역할 equals 메서드는 주소값으로 비교를 하기 때문에 두 value값이 10으로 같을지라도 비교한 결과는 false다. equals() 오버라이딩 value 의 값을 비교하고 싶다면 equals 메서드를 오버라이딩하여 사용하면 된다. hashCode() : 해싱 기법에 사용되는 '해시함수'를 구현한 것. 해싱은 데이터관리기법 중의 하나 .. 다량의 데이터를 저장하고 검색하는데 유용함. 검색 값 입력 >> 그 값이 저장된 위치 반환 String 클래스는 hashCode 메서드가 오버라이딩 되어 있기 때문에 문자열의 내용이 같은 str1과 str2.. 이전 1 2 다음