전체 글

전체 글

    [Java] String, StringBuffer, StringBuilder의 차이점

    [Java] String, StringBuffer, StringBuilder의 차이점

    [Java] String, StringBuffer, StringBuilder의 차이점 오늘은 Java에서 문자열을 다루는 클래스인 String, StringBuffer, StringBuilder에 대해 알아보고 차이점을 정리해보고자 한다. String 클래스 String 클래스는 문자열을 다루기 위한 클래스 중 가장 기본적인 클래스이다. String 클래스는 한 번 생성된 문자열은 변경할 수 없다는 불변(immutable)한 객체이다. 이는 즉, String 객체가 생성된 후에는 그 객체의 내용을 변경할 수 없다는 의미이다. 따라서 String 객체를 생성하기 위해서는 새로운 String 객체를 생성하여야 한다. String str = "Hello"; str += " world"; 위 코드는 "Hello..

    [백준] 에라토스테네스의 체

    [백준] 에라토스테네스의 체

    [백준] 2960번 에라토스테네스의 체 자바 들어가며 오늘은 시간 복잡도를 고려하여 소수를 찾는 알고리즘은 에라토스테네스의 체와 관련 문항에 대해서 정리해보려 한다. 에라토스테네스의 체 에라토스테네스의 체는 소수를 찾는 대표적인 알고리즘이다. 위 이미지는 에라토스테네스의 체의 원리를 잘 나타내고 있다. 원리 2부터 소수를 구하고자 하는 구간(N, 위 이미지에서는 120)의 모든 수를 나열한다.(주로 N+1까지의 int 배열을 생성한다.) 생성한 int 배열을 for문을 활용, i = 2부터 i

    스택(Stack)과 큐(Queue)

    스택(Stack)과 큐(Queue)

    스택(Stack)과 큐(Queue) 오늘은 데이터 자료구조 - 스택과 큐에 대해서 정리해보고자 한다. 스택(Stack) 스택(Stack)이란 문자 그대로 '쌓아 올린다는 것'을 의미한다. 스택이라는 자료구조 또한 책을 쌓는 것과 같이 차곡차곡 쌓아 올린 형태의 자료구조를 말한다. 특징 스택은 위 이미지와 같이 같은 구조의 데이터를 정해진 방향으로만 쌓을 수 있으며 top으로 정한 곳을 통해서만 접근 가능하다. top은 가장 위에 있는 자료, 즉 가장 최근에 들어온 자료를 가르키고 있으며 사입되는 새 자료는 기존 top이 가리키던 자료의 위에 쌓이게 된다. 스택에서 자료를 삭제할 때도 top을 통해서만 가능하다. 스택에서 top을 통해 삽입하는 연산을 'push', 삭제하는 연산을 'pop'이라고 한다. ..

    [Java] 자바 추상클래스와 인터페이스의 차이

    [Java] 자바 추상클래스와 인터페이스의 차이

    [Java] 추상클래스와 인터페이스의 차이 들어가며 오늘은 자바 추상클래스와 인터페이스의 차이에 대해서 정리해보고자 한다. 추상클래스(abstract class) 클래스를 설계도에 비유한다면 추상클래스는 미완성 설계도에 비유할 수 있다. public abstract class animal {} class 앞에 'abstract' 키워드를 붙여 사용하며, 일반적으로 하나 이상의 추상 메서드를 가진 클래스를 말한다. 추상 메서드를 선언함으로써 상속을 통해 하위 클래스에서 이를 구현하도록 강제하는 클래스이다. (추상 메서드를 포함하지 않는 클래스에도 'abstract'를 붙여 추상 클래스로 지정 가능하지만, 반대로 추상 메스드를 포함하는 클래스는 반드시 추상 클래스여야 한다.) abstract로 선언된 추상 ..

    조인의 종류

    조인의 종류

    기술면접 대비 - 조인(JOIN) 오늘은 조인과 조인의 대표적인 종류들에 대해서 정리해보고자 한다. 조인(JOIN) 조인이란 하나의 테이블이 아닌 두 개 이상의 테이블을 묶어서 하나의 결과물을 만드는 것을 말한다. INNER JOIN(내부 조인) 왼쪽 테이블과 오른쪽 테이블의 두 행이 모두 일치하는 행이 있는 부분만 표기한다. SELECT * FROM TableA A INNER JOIN TableB B ON A.key = B.key LEFT OUTER JOIN(왼쪽 조인) LEFT OUTER JOIN은 테이블 B의 일치하는 부분의 레코드와 함께 테이블 A를 기준으로 완전한 레코드를 생성한다. 만약 테이블 B에 일치하는 항목이 없으면 해당 값은 null 값이 된다. SELECT * FROM TableA A..

    인덱스

    인덱스

    기술면접 대비 - 인덱스(Index) 오늘은 인덱스와 이전 부트캠프 프로젝트 진행 당시 적용하였던 Full Text Index / Ngram Parser에 대해 다시 한 번 정리해보고자 한다. Full Table Scan 순차 접근 원하는 데이터를 얻기 위하여 데이터가 저장된 목록 중 모든 데이터 요소를 차례로 조사하여 원하는 데이터를 찾아 내는 방식. (만약 약 1억 건의 데이터가 있다면 1억 번의 데이터 조회가 발생할 수도) 인덱스(Index) 인덱스는 데이터를 빠르게 찾을 수 있는 하나의 장치이다. 일반적으로 책 마지막 장에 있는 '찾아보기'와 유사하다고 할 수 있다. 원하는 내용(데이터)를 얻기 위해 책을 처음부터 끝까지 훑는 것은 상당히 비효율적이기에 '찾아보기'를 보고 원하는 데이터를 얻는 방..