커널 오브젝트와 오브젝트 핸들커널큰 범위에서 OS라고 한다.OS(운영체제)에는 기본적으로 들어가 있는 프로그램이 많다.그래서 그런 프로그램들을 쉽게 사용하기 위해 제공되는 소프트웨어도 많다예를 들면 그림판, 날짜관리, 미디어 플레이어, 익스플로러 등등모든 운영체제가 가지고 있는 핵심 부분이 있는데 이 부분을 커널이라 한다.실제 운영체제를 배우면은 이 커널에 대해 배운다.그래서 원래는 커널과 운영체제는 동일한 의미였다근데 시간이 흐르고 운영체제가 해주는 일이 늘어나게 되었고 그래서 그 의미가 분리가 되었다.즉 운영체제의 개념이 커져버렸다. 시간이 흘러도 운영체제의 핵심 부분은 크게 바뀌지 않았는데 이 부분을 커널이라 한다.커널 오브젝트커널에 의해 관리되는 리소스 정보를 담고 있는 데이터 블록커널에 의해 관..
예외 처리 도입1 - 시작앞서 만든 프로그램은 반환 값을 사용해서 예외를 처리했다. 이런 경우 다음과 같은 문제가 있었다.정상 흐름과 예외 흐름이 섞여 있기 때문에 코드를 한눈에 이해하기 어렵다.쉽게 이야기해서 가장 중요한 정상 흐름이 한눈에 들어오지 않는다.심지어 예외 흐름이 더 많은 코드 분량을 차지한다.실무에서는 예외 처리가 훨씬 더 복잡하다.우리가 처음 만들었던 프로그램에 자바 예외 처리를 도입해서 이 문제를 점진적으로 해결해보자. public class NetworkClientExceptionV2 extends Exception { private String errorCode; public NetworkClientExceptionV2(String errorCode, String mes..
예외 처리 예제NetworkServiceV1_3public class NetworkServiceV1_3 { public void sendMessage(String data) { String address = "http://example.com"; NetworkClientV1 client = new NetworkClientV1(address); client.initError(data); //추가 String connectResult = client.connect(); if (isError(connectResult)) { System.out.println("[네트워크 오류 발생] 오류 코드: " + connectResul..
익명 클래스 - 시작익명 클래스(anonymous class)는 지역 클래스의 특별한 종류의 하나이다.익명 클래스는 지역 클래스인데, 클래스의 이름이 없다는 특징이 있다.public class LocalOuterV2 { private int outInstanceVar = 3; public void process(int paramVar) { int localVar = 1; class LocalPrinter implements Printer { int value = 0; @Override public void print() { System.out.println("value=" + valu..