목록공부한 내용정리/Java (6)
JinHee's Board

개요 서버에서 작업을 할때 해당 포트에 접근이 가능한지 확인할 일이 생겼다. 목적지 서버에서 포트를 열고 그 포트에 접근이 가능한지 확인하는 과정을 기록한다. 원리 - 목적지 서버(우측)에서 ServerSocket을 사용하여 원하는 Port 번호로 오픈한다. - 출발지(좌측)에서 Socket을 사용하여 목적지 서버의 ip와 Port번호를 통해 목적지 서버로 접근 시도 한다. - 접근 가능 여부를 통해 방화벽에서 해당 Port번호를 허용했거나 허용하지 않았는지 확인 한다. 과정 1. 목적지 서버에서 포트 오픈 import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class MultiPortRun { p..
프로세스(Process) 프로그램을 실행시켜서 출력시키는 과정 운영체제로부터 시스템 자원을 할당받는 작업의 단위 멀티 프로세스 : 여러 프로그램들을 독립적으로 실행시켜 작업 쓰레드(Thread) 하나의 프로세스 내부에서 독립적으로 실행되는 하나의 작업단위 프로세스가 발생했을 때 main 안의 실행문이 하나의 쓰레드 프로세스가 할당받은 자원을 이용하는 작업의 단위 멀티 쓰레드 : 하나의 프로세스 에서 여러 쓰레드를 실행시켜 작업 쓰레드의 생성 방법 Thread 클래스 상속 Runnable 인터페이스 상속 Thread와 Runnable 차이점 객체 생성 가능성의 여부에 차이가 있다. Thread는 클래스라 인스턴스화(객체화) 가 가능하다. Runnable는 인터페이스 이기 때문에 인스턴스화가 불가능하다. 쓰..
오버로딩 하나의 클래스 안에서 메소드 이름은 같지만 매개변수를 다르게 선언하여 메소드를 정의하는 것 오버로딩의 성립요건 메소드의 이름이 같아야 한다. 매개변수가 달라야 한다. 리턴(반환)타입은 관계없다. 오버로딩의 예시 더보기 class minExample { public void method() { System.out.println("아무것도 없는 메소드"); } public void method(int a) { System.out.println(a + "값이 매개변수인 메소드"); } public int method(int b, int c) { System.out.println("숫자를 반환한다."); return b + c; } } public class example{ public static v..
OOP(객체지향 프로그래밍)의 3가지 특징 캡슐화 데이터와 데이터를 처리하는 메소드의 형태를 하나의 단위로 묶는 것 캡슐화로 인해 클래스의 외부에서 클래스 멤버변수에게 직접 접근하여 값을 변경할수 없음 외부에서 접근할 수 있도록 정의된 getter, setter을 통해서만 접근이 가능하다. 캡슐화의 결과로 정보은닉이 가능해진다. (프로그램 변경시에 발생하는 오류를 줄일 수 있다.) 상속 상위 클래스의 멤버 메소드들을 하위 클래스가 사용할수 있는 특징 부모 클래스의 생성자, 초기화 블럭은 상속되지 않는다. 모든 클래스는 Object 클래스의 후손 클래스다. 반복되는 코드를 줄여서 개발시간을 줄일 수 있고 확장성이 용이해진다. 다형성 한번의 명령으로 여러 객체가 명령에 맞는 각각의 역할을 수행할수 있는 특징..
객체 작성해 놓은 클래스를 new연산자를 통해 heap 메모리 영역에 할당되는 것 클래스 생성하고자 하는 객체들에게 공통적으로 필요한 요소들을 추려내어(추상화) 정의한 것들 클래스를 만드는 과정: 추상화 캡슐화 데이터와 데이터를 처리하는 함수를 하나로 묶은 것 연관 있는 변수와 함수를 클래스로 묶는 작업 객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용을 외부에 감추는 것 객체가 보유하고 있는 속성들을 외부에서 직접 참조하여 변경되는 일이 발생하는 것을 방지하기 위해서 캡슐화의 이점 - 데이터가 변경되어도 다른 객체에 영향을주지 않아 독립성이 유지된다. - 클래스의 결합도가 낮아져 재사용이 용이하다. - 캡슐화된 클래스는 사용하기 쉽고 프로그램의 복잡성을 줄여준다. 상속 이미 정의된 상위 클래스의 모..
객체지향 언어란? - 사전적의미 : 객체 지향 프로그래밍에서 사용하는 언어로, 객체를 만들고, 조작하며 객체끼리의 관계를 통해 다수의 객체가 함께 수행될수 있게 하는 것 - 객체를 만들고 객체를 사용하는 프로그래밍 방법: 프로그램을 다수의 객체로 만들고, 이들의 상호자용을 통해 완성되어지는 방식 객체지향 언어의 특징 - 캡슐화 : 데이터와 코드의 형태를 외부로부터 알 수 없게 하고 데이터의 구조와 역할 기능을 하나의 캡슐형태로 만드는 방법 - 상속 : 상위 클래스의 모든 걸 하위 클래스가 이어 받는 것, 상위 클래스의 특징을 하위 클래스가 모두 물려받는다. - 다형성: 한 객체가 다른 여러 형태의 객체로 재구성 되는 것 / 동일 부모에서 물려받은 자식 객체지만 각각의 자식객체는 다르다. - 추상화 객체지..