목록웹프로그래밍 (48)
bdfgdfg
상속의 의미는 기존의 클래스를 재사용(물려받아) 새로운 클래스를 작성하는 것이다. 객체지향에서 상속은 코드의 재사용성과 중복을 제거하여 프로그램의 생산성과 유지보수성을 높인다. public class Child extends Parent { } 자바의 상속은 클래스명 뒤에 extends 키워드와 함께 부모 클래스명을 붙여준다. 자바 언어의 상속에서 주요 특징은 다음과 같음. 1. C++언어에서는 다중 상속을 허용하지만 자바에서는 허용하지 않음. (인터페이스 제외) 2. 클래스의 최상위 부모는 Object라는 클래스. 클래스가 상속 받는 상태가 아니라면 컴파일러가 자동으로 extends Object를 붙여준다. 오버라이딩 오버라이딩은 객체지향의 다형성 키워드와 연관된 키워드이며, 부모 클래스의 메소드를 자..
다시 개념을 정리해보기 위한 글 쓰기.. 우선 비동기/동기와 블로킹/논블로킹을 쉽게 이해할려면 관점을 분리해야한다. 동기/비동기 : 작업(Task)의 관점. (작업의 순서와 결과) 블로킹/논블로킹 IO : 쓰레드(Thread)의 관점. 블로킹/논블로킹은 쓰레드의 관점에 가깝다. 어느 파일 I/O, 소켓 I/O등 I/O 함수를 호출 시 쓰레드가 제어권을 계속해서 넘겨주느냐, 바로 반환받느냐의 차이. -> 즉 그 함수가 바로 리턴을 하느냐 안하느냐 라는 것 블로킹에서 호출된 함수가 동기방식이라면 보통 블로킹방식이기에 제어권을 가져가지만, 별도로 논블로킹 설정이 가능하다면 동기함수를 호출하더라도 제어권을 거의 바로 반환받을 수 있다. 위 그림이 가장 적절하게 설명한게 아닌가 싶다. 동기와 비동기는 작업의 관점..
멤버변수의 초기화 방법 1. 명시적 초기화 2. 생성자 3. 초기화 블럭 - 인스턴스 초기화 블럭 : Non-Static 멤버 변수를 초기화 하는데 사용. - 클래스(Static) 초기화 블럭 : Static 멤버 변수를 초기화 하는데 사용. 우선 명시적 초기화. public class TestClass { private int TestVar = 1; private String Teststr = new String("String"); } 위와 같이 클래스 변수내에서 선언과 동시에 초기화 값을 넣어준 경우를 명시적 초기화라고 한다. 다만 초기화 과정에서 좀 더 복잡하게 초기화를 해주어야할 경우 위와 같은 방식은 어렵다. 초기화 블럭 초기화 블럭에는 Non-static 멤버변수의 초기화를 하는 블럭과, St..
자바 언어의 특징 - 운영체제에 독립적 : 자바가상머신(JVM)을 통해 자바로 작성된 프로그램은 운영체제에 독립적이다. - 객체지향 언어 - 자동메모리관리(Garbage Collection) JVM(Java Virtual Machine) 자바를 실행하기 위한 가상 기계. 자바로 작성된 애플리케이션은 모두 이 JVM환경에서만 실행되기에 JVM은 필수이다. 자바언어는 다른 어플리케이션과 달리 OS환경에 따라 프로그램을 만들어야하는데(EX C/C++) 자바는 JVM하고만 상호작용을 거치기에 OS에 종속적이게 코드를 작성할 필요가 없다. (단 JVM자체는 OS에 종속적이기에 해당 OS에서 실행가능한 JVM이 필요.) 즉 정리하면 자바 어플리케이션을 어느 CPU나 OS에서도 실행할 수 있게 지원하는 역할을 수행한..