네트워크 ● IP 주소 확인 ○ 맥 OS, 리눅스 - ifconfig ○ windows - ipconfig 1. Port운영체제가 관리하는 서버 프로그램의 연결 번호(서버는 시작할 때 특정 Port번호에 바인딩, 클라이언트는 운영체제가 자동으로 부여하는 port번호를 사용, 이 번호는 클라이언트가 서버로 요청할 때 함께 전송되어 서버가 클라이언트로 데이터를 보낼 때 사용)호스트 에서 실행되고 있는 프로세스를 구분하기 위한 16비트의 논리적 할당(0-65535)호스트의 IP가 집주소에 해당하는 개념이라면 Port는 방번호에 해당호스트의 IP가 컴퓨터를 찾기 위한 정보라면 Port는 프로그램에 해당(어떤 프로그램이 사용하는 정보인지) 2. Well-known-port : 대표적인 인터넷 ..
입출력 ▣ 데이터 입출력 1. 데이터 입출력이란?데이터는 키보드를 통해 입력될 수도 있고,파일 또는 프로그램으로부터 입력될 수도 있다. 반대로 데이터는 모니터로 출력 될 수도 있고,파일에 저장되거나 다른 프로그램으로 전송될 수 있다. 이것을 총칭해서 데이터 입출력이라고 함.자바는 입력스트림과 출력 스트림을 통해 데이터를 입출력함자바에서 데이터 입출력과 관련된 라이브러리 : java.io패키지 ▣ 입출력 스트림 1. 스트림(Stream) : 단방향으로 데이터가 흐르는 것 입력 스트림 출력 스트림출발지 -------------> 프로그램 -------------> 도착지 1) 입력 스트림 : 키보드/파일/프로그램 들로부터 프로그램의 데이터로 들어오는 ..
람다 함수형 인터페이스 ▣ 람다식(Lambda Expression) ● 자바에서 함수적 프로그래밍을 지원하는 기법 ● 함수형 인터페이스(functional interface) ○ 내부에 단 1개의 추상메서드만 존재하는 인터페이스interface lambdaExam{ public abstract void show();} 1. 람다식(Lambda Expression) 정의 ● 인터페이스의 구현 메서드(함수) -> 람다식으로 변환방법 package day19.lambda;public interface LambdaInterExam { void show(); //public abstract void show(); void printInfo(); void ..
개선된 switch 문 1. jdk 12 버전 이후switch(조건식){ case 값 -> 실행문; case 값 -> 실행문; case 값 -> 실행문; case 값 -> { 실행문; } //실행할 문장이 하나 이상일 경우 default -> 실행문;}//==================타입 변수 = switch(조건식){ case 값 -> 실행문; case 값 -> 실행문; case 값 -> 실행문; case 값 -> { 실행문; } //실행할 문장이 하나 이상일 경우 default -> 실행문;}; //이것도 실행문이므로 반드시 마지막에 ; 을 넣어야 함 package day19.switchexam;import java.util.Scanner;public class Swi..
기초 정리 예제1 1. player라는 interface를 함수형 인터페이스를 만들고 출력형태와 같이 출력되도록 player를 구현한 Ski, Golf, Baseball 클래스를 만드시오.public interface Player{ void play();}package player;public class PlayerMain { public static void main(String[] args) { //객체 생성 Player p1 = new Ski(); //나머지 완성하기 // game(p1); } public static void game(Player p){ ..
컬렉션 프레임워크(Collections Framework) ● Collections : 객체의 저장● Framework : 사용 방법을 정해 놓은 라이브러리 1. Collection Framework의 인터페이스 ● List : 순서가 있는 데이터 집합 ○ 데이터 중복 가능 ○ ArrayList, LinkedList, Stack, Vector ● Set : 순서가 없는 데이터 집합 ○ 중복을 허용하지 않음 ○ HashSet, TreeSet ● Map : 키(Key)와 값(value)의 쌍으로 이루어진 데이터 집합 ○ 주로 검색용 자료 구조 ○ 순서가 없음 ..
멀티 쓰레드 ▣ 쓰레드(Thread) 1. program /process/ Thread의 개념 ● program:하드디스크에 저장된 파일들의 모임, cpu와는 직접적으로 대화할 수 없음 ● process:실행 중인 프로그램으로,프로그램을 수행하는데 필요한 데이터와 메모리 등의 자원 그리고 thread로 구성 ● 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)를 할당 받아 프로세스가 됨 ● 프로그램이 실행되기 위해서 메모리에 로딩(loading)하는 과정을 거쳐 로딩된 프로그램(메모리상에 로딩된 프로그램) ..
중첩 클래스 내부 클래스 익명 클래스 ▣ 중첩 클래스와 중첩 인터페이스 1. 중첩 클래스와 중첩 인터페이스 ● 중첩 클래스는 외부 클래스의 private 멤버를 비롯해 모든 멤버에 자유롭게 접근할 수 있음 ● 중첩 인터페이스를 사용하면 외부 클래스와 긴밀한 관계를 가지는 구현 클래스를 생성할 수 있음 ● 중첩 클래스나 중첩 인터페이스를 사용하면 서로 밀접하게 관련된 코드가 함께 있어 프로그램을 유지 보수하기가 쉬 움 ● 또 중첩 클래스를 사용하면 외부 클래스의 모든 멤버를 직접 사용할 수 있기 때문에 일반적으로 프로그램이 간단해짐 ● 그러나 중첩 클래스가 복잡할 경우 가독성이 오히려 떨어질 수 있음 중첩 클래스 멤버 클래스 정..
제네릭(Generic) ▣ 제네릭 (Generic) 1. 제네릭이란? ● 제네릭은 클래스 내에서 사용되는 타입을 클래스가 정의할 때가 아닌 객체를 생성할 때 정의하겠다는 의미 ● 하나의 코드를 다양한 타입의 객체에 재사용하는 객체 지향 기법 ● 클래스,인터페이스,메서드를 정의할 때 타입을 변수로 사용 ● 장점 ○ 컴파일할 때 타입을 점검하기 때문에 실행 도중 발생할 오류를 미리 방지할 수 있음 ○ 즉, 타입 안정성을 제공 ○ 불필요한 타입 변환이 없어 프로그램 성능이 향상 ○ 타입 체크와 형변환을 생략할 수 있으므로 코드가 간결해짐 2. 제네릭 클래스와 인터페이스 ● 제네릭 타입을 변수로 사용하는 클래스와 인터페이스 ● (다이아몬드연산자) 내부에 타입 ..