차이점 3

C++ 의 virtual 함수. 가상화. JAVA랑 C++의 차이점

가상화에 대해서 검색해보다가 사소하게 생각하며 지나친 부분에대해 새로이 알게됐다.C++에 있는 virtual 키워드의 용도, 그리고 JAVA와의 차이점을 알게 되었다. 1. C++에서의 상속 class Parent { public : Parent(){}; ~Parent() {}; void foo() { std::cout > parent!!! Parent* p = new Child(); 이 것을 통해 불려진 foo함수에서, child의 foo가 아닌 parent의 foo가 호출되는 것을 볼 수 있다.이유는, 컴파일러가 포인터의 타입을 보고 타입에 맞는 메소드를 찾아주기 때문이다. 그러나, 부모의 foo 메소드 앞에 virtual 이라는 키워드를 붙인다면???부모가 아닌 child의 foo 메소드가 호출된다..

개발/JAVA 2013.07.26 (1)

[iBatis/myBatis] #와 $의 차이점

1. #는 쿼리가 수행될 때, 다음과 같이 된다 SELECT * FROM USER WHERE col = ? parameter : [값] ?에 bind된 값이 들어가게 된다. 이 쿼리의 컴파일 된 내용을 재사용 할 수 있고, 파라미터에 따라 대입해주므로 효율적이다.내부적으로 preparedStatement 객체에서 ? 에 들어갈 파라미터의 값을 set 해줌으로써 사용이 된다. * preparedStatement는 한번 수행한 쿼리를 캐싱하는 객체 사용 용도 >> #일 경우, 값에 사용한다. myBatis : 컬럼명 = #{값} iBatis : 컬럼명 = #값# * 쿼리에 작은 따옴표가 붙게 된다. 2. $는 쿼리가 수행될 때, 다음과 같이 된다 SELECT * FROM USERWHERE col = 값 값이..

개발/Database 2013.04.11 (6)

추상화클래스와 인터페이스의 용도, 차이점, 공통점

abstract class와 interface는 비슷하지만 다르다.공통점, 차이점, 용도에 대해 알아보자~ 1. 공통점 abstract class(추상 클래스)와 interface 는 선언만 있고 구현 내용이 없는 클래스이다. 그래서 자기 자신이 new를 해서 객체를 생성할 수 없으며,추상클래스를 extends 받거나, interface를 implements 한 자식만이 객체를 생성할 수 있다.상속받은 자식이 구현을 반드시 하도록 해야할 때 사용한다. JAVA에서는 type이 지정되있기 때문에 선언된 type과 자식의 type이 같아야만 한다. 2. 차이점 추상클래스는 말그대로 클래스이고, interface는 구현하기 전에 메소드에 대해 명세된 것이랄까?그래서 상속을 받음에도 불구하고 클래스에선 상속이라..

개발/ETC 2013.04.09 (16)