알아두면 쓸데있나?5 오버로딩과 오버라이딩의 차이점 둘 다 자바에서 다형성을 지원하는 기능입니다. 오버로딩은 같은 이름의 메소드 여러개를 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술로 결국 함수를 중복으로 정의하는 것입니다. 오버라이딩은 상위 클래스가 가지고 있는 메소드를 하위 클래스에서 재정의해서 사용하는 것을 말합니다. 오버로딩은 정적바인딩입니다. 메소드의 매개변수 종류와 개수가 다르기 때문에 컴파일 과정에서 어떤 메소드를 호출할할지 결정할 수 있기 때문입니다. 오버라이딩은 동적바인딩입니다. 호출한 메소드가 오버라이딩된 메소드인지 컴파일시간에 확인할 수 없기 때문입니다. 2021. 11. 19. 퀵소트는 왜 빠른 것일까? 퀵소트는 왜 빠른 것일까? 라는 질문을 던져본 적이 있으신가요? 없으시다면 당신은 개발자라고 할 수 없습니다. 알고리즘이 어떻게 돌아가는지는 구체적으로 설명하지 않고, 왜 퀵소트가 빠른지 알아보겠습니다. 처음에는 단순히 피벗을 기준으로 비교를 하니 그러면 n-1번의 비교를 해서 빠르구나! 하고 생각했습니다. 너무 단순한 생각이였죠. 하지만 n이 커지면 결국 n-1과 n의 값 차이는 너무나도 작아지기때문에 이 이유로 퀵소트가 빠르다고 할 수 는 없을 것입니다. 비슷하게 O(NlogN)의 시간 복잡도를 가지는 병합정렬과 알고리즘을 비교해보면 일단 기본적으로 병합정렬은 merge하는 과정에서 sorted 배열을 생성해서 저장한 후에 다시 옮겨주는 작업이 필요합니다. 그래서 이 과정에서 메모리를 추가로 사용해야.. 2021. 11. 19. 변수명 한번에 변경 IDE를 사용하다보면 필요에 따라 변수명을 변경하는 일이 잦은데, 그때마다 일일이 변수를 변경하는 것은 시간이 오래 걸린다. 그럴떄는 단축키를 이용해서 한꺼번에 변경해주면 된다. Eclipse의 경우에는 드래그한 후에 [Alt + Shift + R]를 눌러주면 된다. VScode의 경우에는 드래그한 후에 [Ctrl + F2]를 눌러주면 된다. Intellij의 경우에는 변수 클릭 후에 [Shift + F6]을 눌러주면 됩니다. 2021. 8. 10. MySQL 한글 MySQL에 sql파일을 이용해서 테이블을 생성해주려고 했는데, 자꾸 에러가 났다. 이는 sql문에 한글이 들어간게 문제였다. sql문은 영어로 작성하는게 마음 편할 것 같다. 하지만 한글이 들어가야하는 상황이 있다. 그럴때는 아래와 같은 명령어를 이용해서 해결할 수 있다. 기존 생성되어 있는 데이터베이스의 설정 alter database DB_NAME default character set utf8 collate utf8_general_ci; 데이터베이스 생성 시 설정 create database DB_NAME default character set utf8 collate utf8_general_ci; 2021. 8. 3. 코드 들여쓰기 텍스트를 복사 붙여넣기하거나, 코드를 뒤엎을 경우에 들여쓰기가 이상해질 경우가 있다. VScode에서는 shift + tab eclipse에서는 CTRL + i 로 드래그한 블럭에 들여쓰기를 적용해줄 수 있다! 2021. 8. 2. 이전 1 다음