Java Operator(자바 연산자)

자바 연산자에는 다음과 같은 연산자 들이 있습니다.

산술연산자(Arithmetic Operator)  
관계연산자(Relational Operator)  
논리연산자(Logical Operator)  
비트연산자(Bitwise Operator)  
조건연산자(Conditional Operator)  
할당연산자(Assignment Operator) 

그중에서 종종 까먹는 비트 연산자를 살펴봅니다…

         &       op1 & op2           op1과 op2의 값을 비트 AND 연산한다.
         |        op1 | op2           op1과 op2의 값을 비트 OR 연산한다.
         ^        op1 ^ op2           op1과 op2의 값을 비트 XOR 연산한다.
        >>       op1 >> op2        op1을 op2만큼 우측으로 시프트
       <<        op1 << op2        op1을 op2만큼 좌측으로 시프트
       >>>      op1 >>> op2      op1을 op2만큼 우측으로 시프트 (시프트된 자리에 언제나 0이 삽입)
         ~       ~op1                  보수(Complement)

리액터(Reactor) VS 프로액터(Proactor)

리액터(Reactor)는 소켓이나 파일에서 이벤트가 발생하면, 동기(Sync) I/O를 수행할 수 있는 상태를 체크하고, 이벤트에 맞는 핸들러를 호출해서 이벤트를 처리하는 방식이다. 만약, 서버소켓으로 새로운 커넥션 요청이 들어오면, 리액터는 내부 스레드로 새로운 커넥션을 처리하는
핸들러(Acceptor)를 호출해서 커넥션을 처리한다.

프로액터(Proactor)는 하나 이상의 비동기 I/O를 초기화하거나 작업이 완료되서 발생한 이벤트를 처리하는 핸들러를 등록해서 처리한다. 프로액터가 비동기 I/O를 사용하는 경우, 유저 스레드가 I/O 작업을 직접 수행하지 않기에, 동시성 문제에 있어서 많은 이점을 누릴 수 있어서 성능을 향상시킬 수 있다.

Tomcat 버전별 클래스 로딩 순서

Tomcat5.5 클래스 로딩 순서

Bootstrap classes of your JVM
System class loader classses (described above)
/WEB-INF/classes of your web application
/WEB-INF/lib/*.jar of your web application
$CATALINA_HOME/common/classes
$CATALINA_HOME/common/endorsed/*.jar
$CATALINA_HOME/common/i18n/*.jar
$CATALINA_HOME/common/lib/*.jar
$CATALINA_BASE/shared/classes
$CATALINA_BASE/shared/lib/*.jar

Tomcat5.0 클래스로딩 순서

Bootstrap classes of your JVM
System class loader classses (described above)
/WEB-INF/classes of your web application
/WEB-INF/lib/*.jar of your web application
$CATALINA_HOME/common/classes
$CATALINA_HOME/common/endorsed/*.jar
$CATALINA_HOME/common/lib/*.jar
$CATALINA_BASE/shared/classes
$CATALINA_BASE/shared/lib/*.jar

Tomcat4.1 클래스로딩 순서

/WEB-INF/classes of your web application
/WEB-INF/lib/*.jar of your web application
Bootstrap classes of your JVM
System class loader classses (described above)
$CATALINA_HOME/common/classes
$CATALINA_HOME/common/endorsed/*.jar
$CATALINA_HOME/common/lib/*.jar
$CATALINA_BASE/shared/classes
$CATALINA_BASE/shared/lib/*.jar

* Reference
http://www.jakartaproject.com/article/jsptip/111456818395700