정적멤버는 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메서드를 말한다. 각각 정적필드, 정적 메서드라고 부른다. 정적멤버는 객체(인스턴스)에 소속된 멤버가 아니라 클래스에 소속된 멤버이기 때문에 클래스 멤버라고 한다. 정적멤버선언 public class 클래스 { //정적필드 static 타입 필드 [=초기값]; //정적 메서드 static 리턴타입 메서드 (매개변수선언, ..) {..} } 정적필드와 정적메서드는 클래스에 고정된 멤버로이므로 클래스로더가 클래스(바이트 코드)를 로딩해서 메서드 메모리 영역에 적재할 때 클래스별로 관리된다. 따라서 클래스의 로딩이 끝나면 바로 사용할 수 있다. ▷인스턴스필드 vs 정적필드 필드를 선언할때, 인스턴스 필드로 선언할 것인지 정적필드로..
java
프로세스와 스레드 운영체제에서는 실행중인 하나의 애플리케이션을 프로세스(Process)라고 부른다. 사용자가 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아 애플리케이션의 코드를 실행하는데 이것이 프로세스이다. 스레드는 사전적 의미로 한 가닥의 실이라는 뜻인데, 한 가지 작업을 실행하기 위해 순차적으로 실행할 코드를 실처럼 이어 놓았다고 해서 유래된 이름이다. 하나의 스레드는 하나의 코드 실행 흐름이다. 멀티 스레드는 스레드들이 동시에 실행되는 것처럼 보이는 기술이라고 할 수 있다. 예를 들어보면 A 작업어플 - 프로세스 100개 만들기 B 어플 - 프로세스1개 , 스레드 100개 만들기 A와 B 둘중에 어느 작업이 더 효울적일까? 답은 B의 작업이다. ▷ 멀티 태스킹 멀티 태스킹은..
SOLID 객체지향설계 정의 응집도를 높이고 (High Cohesion) 결합도는 낮추는(Loose Coupling) 는 고전원칙을 객체지향의 관점에서 재정립한 것이 SOLID 5원칙이다. SRP (Single Responsibillity Principle): 단일책임원칙 OCP (Open Closed Prinsipel) : 개방폐쇄원칙 LSP ( Liskov Substitution Principle) :리스코프 치환원칙 ISP (Interface Segregation Principle) : 인터페이스 분리 원칙 DIP (Dependency Inversion Principle ) : 의존역전원칙 SOLID가 개념이긴 하지만 우리가 만드는 제품, 즉 소프트웨어에 녹여내야 하는 개념이다. SOLID 를 잘 ..
객체 입출력 보조 스트림 자바는 메모리에 생성된 객체를 파일 또는 네트워크로 출력할 수 있다. 객체는 문자가 아니기 때문에 바이트 기반 스트림으로 출력해야한다. 객체를 출력하기 위해서 객체의 데이터(필드값)을 일렬로 늘어선 연속적인 바이트로 변경해야 하는데, 이것을 객체 직렬화(serializaion)라고 한다. 반대로 파일에 저장되어 있거나 네트워크에서 전송된 객체를 읽을 수도 있는데, 입력 스트림으로부터 읽어들인 연속적인 바이트를 객체로 복원하는 것을 역직렬화(deserializaion) 라고 한다. 자바의 객체를 입출력할 수있는 두 개의 보조스트림인 ObjectInputSteam과 ObjectOutputStream을 제공한다. ObjectOutputStream은 바이트출력스트림과 연결되어 객체를 직..
Writer는 문자기반출력스트림의 최상위클래스로 추상클래스이다. 모든 문자 기반출력 스트림클래스는 이 클래스를 상속받아서 만들어진다. Writer 클래스에는 모든 문자 기반 출력스트림이 기본적으로 가져야 할 메서드가 정의되어 있다. 리턴타입 메서드 설명 void write(int c) 출력스트림으로 주어진 한 문자를 보낸다 void write(char[ ]cbuf) 출력스트림으로 주어진 문자배열 cbuf의 모든 문자를 보낸다. void write(char[ ] cbuf, int off, int len) 출력스트림으로 주어진 문자 배열cbuf[off]부터 len개까지의 문자를 보낸다. void write(String str) 출력스트림으로 주어진 문자열을 전부 보낸다. void write(String st..
OutputStream 바이트기반 출력스트림의 최상위 클래스로 추상클래스이다. 모든 바이트 기반 출력 스트림클래스는 이 클래스를 상속받아서 만들어진다. OutputStream 클래스에는 모든 바이트 기반 출력스트림이 기본적으로 가져야할 메서드가 정의되어 있다. 리턴타입 메서드 설명 void write(int b) 출력스트림으로 1바이트를 보낸다. void write(byte[ ] b) 출력스트림으로 주어진 바이트 배열 b의 모든 바이트를 보낸다; void write(byte[ ] b, int off, int len) 출력스트림으로 주어진 바이트 배열 b[off]부터 len개까지의 바이트를 보낸다 void flush() 버퍼에 잔류하는 모든 바이트를 출력한다. void close() 사용한 시스템 자원을 ..
Reader Reader는 문자기반 입력스트림의 최상위클래스로 추상클래스이다. 모든 문자 기반 입력 스트림은 이 클래스를 상속받아서 만들어진다. Reader클래스에는 문자기반 입력 스트림이 기본적으로 가져야 할 메서드가 정의되어 있다. 리턴타입 메서드 설명 int read() 입력스트림으로부터 한개의 문자를 읽고 리턴한다. int read( char[ ] cbuf ) 입력 스트림으로부터 읽은 문자들을 매개 값으로 주어진 문자 배열cbuf에 저장하고 실제로 읽은 문자수를 리턴한다. int read( char[ ] cbuf, int off, int len) 입력스트림으로부터 len개의 문자를 읽고 매개값으로 주어진 문자배열 cbuf[off]부터 len개까지 저장한다. 그리고 실제로 읽은 문자수인 len개를 ..
보호되어 있는 글입니다.