본문 바로가기

분류 전체보기42

기술면접 list - C/C++ C와 C++의 차이http://jjoreg.tistory.com/entry/C-%EA%B3%BC-C%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90 malloc, new 차이점- malloc()는 C의 헤더 파일에서 지원하는 함수로, 인자로 할당할 size를 받는다. 기본적으로 void * 형태의 포인터를 return 하기 때문에 할당할 포인터 자료형에 맞게 casting이 필요하다. 메모리 해제는 free()를 사용한다.- new 는 C++ 자체에서 지원하는 키워드로 따로 헤더 파일이 필요없다. malloc과는 다르게 할당할 객체의 크기를 알아서 계산하여 heap에 할당하기 때문에 size를 입력할 필요가 없다. 또한 객체 생성시 생성자를 자동으로 호출하기 때문에 생성과 초기화가 동시.. 2017. 12. 6.
[java]리플렉션(reflection) 리플렉션이란? 리플렉션은 자바만의 독특한 기능이다. Reflection은 '투영, 반사'의 사전적 의미를 갖고 있다. 간단하게 자바의 리플렉션을 정의하자면 '객체를 이용해 클래스의 정보를 분석하는 기법'이다. 리플렉션은 구체적인 클래스 타입을 알지 못해도 그 클래스의 메서드, 타입, 변수 등을 접근할 수 있도록 해주는 API라고 보면 되겠다. 예를 들면 특정 클래스 이름을 인자로 전달할 시 그 이름에 해당하는 클래스 타입으로 객체를 생성하여 반환하는 메서드를 구현한다고 할 때 리플렉션을 활용할 수 있을 것이다. - 참조: https://kmongcom.wordpress.com/2014/03/15/%EC%9E%90%EB%B0%94-%EB%A6%AC%ED%94%8C%EB%A0%89%EC%85%98%EC%97.. 2017. 12. 4.
[java]JVM 구조 먼저 컴파일부터 실행까지의 과정을 간단하게 요약하자면컴파일러(javac)를 통해 .java 코드를 클래스 파일(바이트 코드)로 변환한다.생성한 클래스 파일을 JVM에 로드.Excution Engine을 통해 바이트 코드를 해석.해석된 프로그램은 Runtime Data Areas에 배치되어 실질적인 수행이 이루어지게 된다.c, c++과 같은 언어가 object 파일을 생성 후 관련 파일들을 linking하여 .exe 파일로 생성하는 과정과는 차이가 있다. 왜냐하면 자바는 플랫폼에 독립적인 바이트 코드를 JVM 상에서 실행하기 때문에 이론적으로는 CPU, 운영체제에 무관하게 동일하게 동작할 수 있다. JVM 구조class Loader : JVM 내로 class 파일을 로드하고 Link를 통해 적절히 배치하는.. 2017. 12. 2.
[c++] 표준 입력 헤더 파일에서 cin 객체를 사용하여 표준 입력을 받을 수 있다. ex) int num;cin>>num; 문자열을 입력받고자 한다면 헤더를 추가하면 연산자 오버로딩으로 마찬가지로 가능하다. 하지만 공백, 개행문자는 무시된다. ex) string str;cin>>str; 입력으로 "ab def"를 입력하면 str에는 "ab"까지만 입력된다. 공백, 개행문자를 받기 위해서는 cin.get()을 사용하면 된다. cin.get()은 1개의 문자만을 입력받는다. ex) char a, b, c;a=cin.get();b=cin.get();c=cin.get();cout 2017. 12. 2.