목록웹프로그래밍/Java (18)
bdfgdfg
제어자 제어자는 클래스,변수 또는 메서드의 선언부에 사용되어 부가적인 의미를 부여. 크게 여기서 알아볼건 public,protected,default, private등이고, 그 외 static,final,abstract,synchronized,volatile등이 있다. 접근 제어자 접근제어자는 클래스,멤버변수,메소드,생성자에 사용되며 이름 그대로 접근 수준의 레벨을 부여하는 것. private - 같은 클래스 내에서만 접근이 가능. default - 같은 패키지 내에서만 접근이 가능. (참고로 접근제어자가 지정되어 있지않다면 이 접근제어자가 기본값.) protected - 같은 패키지 및 다른 패키지의 자손클래스에서 접근이 가능. public - 접근 제한이 전혀없음. 접근 제어자를 이용하는 이유는 캡슐..
패키지(package) 패키지는 클래스의 묶음. 패키지에는 클래스,인터페이스를 포함하며 서로 관련된 클래스들 끼리 그룹단위로 묶어 클래스를 효율적으로 관리할 수 있다. 또한 같은 이름의 클래스라도 서로 다른 패키지에 존재할 수 있어서 자신만의 패키지 체계를 유지하면서 다른 개발자가 개발한 클래스 라이브러리의 클래스와 이름이 충돌하는 것을 피할 수 있다. 클래스가 물리적으로 하나의 클래스파일(.class)인 것과 같이 패키지는 물리적으로 하나의 디렉토리임. 사실 클래스의 실제이름(full name)은 패키지명을 포함한 것. -> ex) String클래스의 실제 이름은 java.lang.String. 즉 java.lang패키지에 속한 String 클래스. 즉 java.lang.String클래스는 물리적으로 ..
상속의 의미는 기존의 클래스를 재사용(물려받아) 새로운 클래스를 작성하는 것이다. 객체지향에서 상속은 코드의 재사용성과 중복을 제거하여 프로그램의 생산성과 유지보수성을 높인다. public class Child extends Parent { } 자바의 상속은 클래스명 뒤에 extends 키워드와 함께 부모 클래스명을 붙여준다. 자바 언어의 상속에서 주요 특징은 다음과 같음. 1. C++언어에서는 다중 상속을 허용하지만 자바에서는 허용하지 않음. (인터페이스 제외) 2. 클래스의 최상위 부모는 Object라는 클래스. 클래스가 상속 받는 상태가 아니라면 컴파일러가 자동으로 extends Object를 붙여준다. 오버라이딩 오버라이딩은 객체지향의 다형성 키워드와 연관된 키워드이며, 부모 클래스의 메소드를 자..
다시 개념을 정리해보기 위한 글 쓰기.. 우선 비동기/동기와 블로킹/논블로킹을 쉽게 이해할려면 관점을 분리해야한다. 동기/비동기 : 작업(Task)의 관점. (작업의 순서와 결과) 블로킹/논블로킹 IO : 쓰레드(Thread)의 관점. 블로킹/논블로킹은 쓰레드의 관점에 가깝다. 어느 파일 I/O, 소켓 I/O등 I/O 함수를 호출 시 쓰레드가 제어권을 계속해서 넘겨주느냐, 바로 반환받느냐의 차이. -> 즉 그 함수가 바로 리턴을 하느냐 안하느냐 라는 것 블로킹에서 호출된 함수가 동기방식이라면 보통 블로킹방식이기에 제어권을 가져가지만, 별도로 논블로킹 설정이 가능하다면 동기함수를 호출하더라도 제어권을 거의 바로 반환받을 수 있다. 위 그림이 가장 적절하게 설명한게 아닌가 싶다. 동기와 비동기는 작업의 관점..