프로그래밍/JAVA (20) 썸네일형 리스트형 [JAVA 이론] 네트워킹 네트워킹 네트워킹이란? 네트워킹이란 두 대이상의 컴퓨터를 케이블로 연결하여 네트워크를 구성하는 것을 말한다. 1. 클라이언트/서버(client/server) 서버 - 서비스를 제공하는 컴퓨터 클라이언트 - 서비스를 사용하는 컴퓨터 서비스 - 서버가 클라이언트로부터 요청받은 작업을 처리하여 그 결과를 제공하는 것 ex) 파일서버, 메일서버, 어플리케이션서버 서버에 접속하는 클라이언트의 수에 따라 하나의 서버가 여러 가지 서비스를 제공하기도 하고 하나의 서비스를 여러대의 서버로 제공하기도 한다. 서버가 서비스를 제공하기 위해서는 양쪽 모두 프로그램이 있어야한다. ex) 웹서버 - 웹브라우저, 알FTP - FTP클라이언트 일반 PC도 FTP서버프로그램이나 Tomcat과 같은 웹서버프로그램을 설치하면 서버역할도.. [JAVA 이론] 입출력 I/O 자바에서의 입출력 입출력이란? I/O란 Input과 Output의 약자로 입력과 출력, 간단히 줄여서 입출력이라고 한다. 입출력은 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것을 말한다. 스트림 - 자바에서 입출력을 수행할때 데이터를 운반하는데 사용되는 연결 통로이다. - 스트림은 단방향 통신만 가능하다. - 스트림은 먼저 보낸 데이터를 먼저 받게 되어 있으며 중간에 건너뜀 없이 연속적으로 데이터를 주고 받는다.(FIFO) - 인터페이스 스트림과 용어는 같지만 다른 개념이다. 바이트기반 스트림 - InputStream, OutputStream 스트림은 바이트단위로 데이터를 전송하며 입출력 대상에 따라 다음과 같은 입출력스트림이 있다. 입력스트림 출력스트림 입출력 대상의 종류 FileI.. [JAVA 이론] 람다와 스트림 람다식 람다식이란? - 람다식은 메서드를 하나의 식으로 표현한 것이다. - 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, 람다식을 '익명 함수'라고도 한다. 람다식 작성하기 메서드의 이름과 반환타입을 제거하고 매개변수 선언부와 몸통 사이에 '->'를 추가한다. //기본 메서드 반환타입 메서드이름(매개변수 선언){ 문장들 } //람다식 (매개변수 선언) -> { 문장들 } 람다식은 반환값이 있는 경우, return문 대신 식으로 대신할 수 있다. 식의 연산결과가 자동적으로 반환값이 된다. 이때는 문장이 아닌 식이므로 끝에 ';'를 붙히지 않는다. 또한, 람다식에 선언된 매개변수의 타입은 추론이 가능한 경우 생략 할 수 있다. 이때 매개변수 중 어느 하나의 타입만 생략하는 것은 허용되지 .. [JAVA 이론] 쓰레드 쓰레드 프로세스란? 간단히 말해서 '실행중인 프로그램'이다. 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다. 프로세스의 구성 프로그램을 수행하는 데 필요한 데이터와 메모리 등의 자원 그리고 쓰레드로 구성 쓰레드 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이 쓰레드이다.모든 프로세스에는 하나 이상의 쓰레드가 존재하며, 둘 이상의 쓰레드를 가진 프로세스를 '멀티 쓰레드 프로세스'라고 한다.하나의 프로세스가 가질 수 있는 쓰레드의 개수는 제한되어 있지 않으나 쓰레드가 작업을 수행하는데 개별적인 메모리 공간(호출스택)을 필요로 하기 때문에 프로세스의 메모리 한계에 따라 생성할 수 있는 쓰레드의 수가 결정된다. 멀티태스킹과 멀티쓰레딩 멀티테스킹: 여러 개의 프로세스.. [JAVA 이론] Generics, Enumeration, Annotation Generics Generics는 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능이다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움이 줄어든다. Generics의 장점 1. 타입 안정성을 제공한다. 2. 타입체크와 형변환을 생략할 수 있으므로 코드가 간결해 진다. Generics 클래스의 선언 class Box{ T item; void setItem(T item){ this.item - item; } T getItem(){ return item; } } Box에서 T를 type variable라고 하며, type variable은 T가 아닌 다른 것을 사용해도 된다. 즉 기호의 종류만 다를 뿐 '임의의 참조형 타입'을.. [JAVA 이론] Collections Framework Collections Framework 데이터 군을 다루고 표현하기 위한 단일화된 구조 핵심 인터페이스 Collections Framework에서는 컬레션데이터 그룹을 크게 3가지 타입이 존재한다고 인식하고 각 컬렉션을 다루는데 필요한 기능을 가진 3개의 인터페이스를 정의하였다. List 순서가 있는 데이터의 집합, 데이터의 중복을 허용한다. 구현클래스: ArrayList, LinkedList, Stack, Vector 등 Set 순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용하지 않는다. 구현클래스: HashSet, TreeSet 등 Map 키와 값의 쌍으로 이루어진 데이터의 집합 순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용한다. 구현클래스: HashMap, Tre.. [JAVA 이론] 날짜와 시간 & 형식화 Calendar와 Date Caleandar는 추상클래스이기 때문에 직접 객체를 생성할 수 없고, 메서드를 통해서 완전히 구현된 클래스의 인스턴스를 얻어야 한다. Calendar cal = new Calendar(); //에러!! 추상클래스는 인스턴스를 생성할 수 없다. //OK, getInstance()메서드는 Calendar 클래스를 구현한 클래스의 인스턴스를 반환한다. Calendar cal = Calendar.getInstance(); Calendar를 받아 완전히 구현한 클래스로 GregorianCalendar와 BuddhistCalendar(태국력)가 있다. 인스턴스를 직접 생성해서 사용하지 않고 이처럼 메서드를 통해서 인스턴스를 반환받게 하는 이유는 최소한의 변경으로 프로그램이 동작할 수 있.. [JAVA 이론] java.lang package & util classes java.lang패키지는 자바프로그래밍에 가장 기본이 되는 클래스들을 포함하고 있다. 그렇기 때문에 java.lang패키지의 클래스들은 import문 없이도 사용할 수 있게 되어 있다. Object클래스 Object클래스는 모든 클래스의 최고 조상이기 때문에 Object클래스의 멤버들은 모든 클래스에서 바로 사용 가능하다. Object클래스는 맴버변수는 없고 오직 11개의 메서드만 가지고 있다. 이 메서드들은 모든 인스턴스가 가져야 할 기본적인 것들이다. protected Object clone() 객체 자신의 복사본을 반환한다. cloneable인터페이스를 구현 클래스의 인스턴스만 clone()을 통한 복제가 가능한데, 그 이유는 인스턴스의 데이터를 보호하기 위해서이다. - 공변 반환타입 JDK1.5부.. 이전 1 2 3 다음