soy blog

soy.me - 이것저것 기록하는 공간  
  • 쓰레드의 배타제어 (mutual exclusion) / 동기화 (synchronized)
    16 April 2014
    concurrent 하게 수행되는 여러개의 쓰레드가 같은 변수/인스턴스에 접근하는 경우를 race라고 한다. 이러한 경쟁으로 인하여 예기치 않게 발생하는 상황을 date race, 혹은 race condition 이라고 한다. race condition을 방지하기 위해서는, 일종의 교통 정리가 필요하다. 대표적인 교통 정리의 방법으로 mutua...
  • Java 이름 재사용 - 오버라이딩 / 하이딩 / 섀도윙 / 모호화
    05 April 2014
    오버라이딩 (overriding) 자식 클래스에 있는 인스턴스 메서드가 부모 클래스의 접근 가능한 메서드와 동일한 이름과 매개변수를 가지는 것. 오버라이딩 되면 동적 바인딩이 가능해짐. 따라서 JVM은 실행중에 인스턴스의 자료형에 기반하여 호출할 메서드를 결정함. 하이딩 (hiding) class Parent { public static vo...
  • 프로세스와 쓰레드의 차이
    17 August 2013
    기존의 프로세스 개념으로 두가지 이상의 일을 동시에 처리하려면 빈번한 컨텍스트 스위칭이 일어나게 되는데, 이렇게 되면 성능 저하가 발생하게 된다. 이를 어느정도 해소하기 위해 컨텍스트 스위칭 시 저장되고 복원되는 내용을 줄여줄 필요가 있었고, 이렇게 해서 나온 것이 쓰레드이다. 프로세스와 쓰레드의 관계는 플랫폼에 따라 크게 달라진다. 플랫폼이 같더라...
  • 피보나치수열 with memoization
    09 May 2013
    피보나치 수열 1, 1, 2, 3, 5, 8, 13, 21, … 재귀 함수를 배울 때 자주 등장하는 예제이다. public class Fibo { public static long fiboByRecursion(long n) { if (n == 1 || n == 2) return 1; ...
  • 팩토리얼
    09 May 2013
    재귀 함수를 배울 때 필수로 등장하는 예제인 팩토리얼.. 5! = 5 * 4 * 3 * 2 * 1
  • Checked Exception / Uncheked Exception (RuntimeException)
    24 April 2013
    Checked Exception Exception을 상속한 클래스는 try-catch, throws 등으로 예외처리를 해주어야 한다. 처리를 해주지 않으면 컴파일시 에러가 발생한다.