자바 35

Java의 Object 클래스가 제공하는 기능 분석

Object 클래스란? 객체지향 프로그래밍 언어인 자바에서 모든 코드는 반드시 클래스 안에서 존재하며, 이러한 클래스는 서로 관련된 속성과 기능 간의 그룹으로 묶이게 된다. 이때 Object 클래스는 모든 클래스들의 최상위 클래스로, 모든 클래스들은 Obejct 클래스를 상속받는다. 우리가 어떤 클래스를 작성할 때 별도로 Object 클래스를 상속하지 않아도 됐었던 이유는 컴파일 시 자바 컴파일러가 'extents Object'를 자동으로 추가해주기 때문이다. 참고로 Object가 아닌 다른 클래스를 상속받도록 명기해준 경우에는 해당 클래스가 이미 Object를 상속받기 때문에 중복해서 추가해주진 않는다. Object 클래스가 제공하는 여러가지 기능들 하위 클래스가 상위 클래스를 상속받으면 상위 클래스의..

Technology/Java 2022.08.26

이분 탐색, Lower Bound와 Upper Bound - Java

이분 탐색이란? 우선 탐색이란 자료구조, 그래프 등에서 특정한 데이터를 찾는 것을 말한다. 대표적인 탐색 방법으로 '순차 탐색'이 있는데, 이는 어떤 자료구조에서 특정 데이터를 찾기 위해 첫 번째 원소부터 마지막 원소까지 차례대로 확인하는 방법으로 가장 정직한 탐색 방법이다. 하지만 이러한 순차 탐색의 시간 복잡도는 O(N)으로 데이터가 무수히 많은 경우에는 적합하지 않다. 이러한 경우에는 어떤 탐색 방법이 유용할까? 대표적으로 '이분 탐색'이 있다. 이분 탐색은 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하기 때문에 시간 복잡도가 O(logN)으로 순차 탐색 보다 훨씬 유리한 방법이다. 다만 이분 탐색의 경우 '데이터가 정렬되어 있는 경우'에만 사용할 수 있다는 특징이 있다. 이분 탐색 구현해보기 여러 ..

Algorithm/Basic 2022.08.18

Java의 클래스와 객체 이해하기

클래스와 객체란? 우선 클래스란 무엇인가? 클래스란 '객체를 정의해놓은 것' 또는 '객체의 설계도 또는 틀'이라고 할 수 있다. 이러한 클래스는 객체를 생성하는데 사용된다. 그렇다면 객체란 무엇인가? 객체는 '클래스에 정의된 내용대로 메모리에 생성된 것'으로 서로 관련된 속성과 기능으로 구성된다. 이를 통틀어 멤버라고 한다. 이때 클래스로부터 객체를 만드는 과정을 '인스턴스화'라고 하며, 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스(instance)라고 한다. 여기서 클래스가 분류의 개념이라면 객체는 해당 분류에 속하는 실체를 의미한다고 볼 수 있다. 예를 들면, 과일이라는 클래스가 있다면 그 안에 바나나, 사과, 딸기 등의 여러 객체들이 존재할 수 있는 것이다. 이처럼 바나나, 사과 등 각각의 ..

Technology/Java 2022.08.16

Java의 제어문을 정복해보자!

제어문이란? 제어문은 프로그램의 흐름(flow)을 바꾸는 역할을 한다. 이러한 제어문에는 '조건문'과 '반복문'이 있는데, 조건문은 조건에 따라 다른 문장이 수행되도록 하고, 반복문은 특정 문장들을 반복해서 수행한다. 조건문 조건문은 조건식과 문장을 포함하는 블럭 { }으로 구성되어 있으며, 조건식의 연산결과에 따라 실행할 문장이 달라져 프로그램의 실행 흐름을 변경할 수 있다. 이러한 조건문에는 if문과 switch문 두가지가 있다. if - else if - else문 if문의 조건식은 일반적으로 비교연산자와 논리연산자로 구성되며, else if문을 통해 여러가지 경우의 수에 대해 흐름을 제어할 수 있으며, else문을 통해 그 밖의 다른 모든 경우(반드시 실행)에 대해 흐름을 제어할 수 있다. pri..

Technology/Java 2022.08.06

Java의 다양한 연산자(operator) 다루기

목차 1. 연산자와 피연산자 2. 연산자의 종류 2-1. 산술 연산자 2-2. 관계 연산자 2-3. 논리 연산자 2-4. 비트 연산자 2-5. instanceof 연산자 2-6. 대입(=) 연산자 2-7. 화살표(->) 연산자 2-8. 3항 연산자 3. 연산자의 우선 순위와 결합 규칙 3-1. 연산자의 우선 순위 3-2. 연산자의 결합 규칙 연산자와 피연산자 연산자(operator)는 사칙 연산(+, -, *, /), 나머지 연산(%), 비교 연산자 등 '연산을 수행하는 기호'를 말한다. 이때 연산자가 연산을 수행하려면 변수, 리터럴, 수식 등 반드시 '연산의 대상'이 있어야 하는데, 이를 '피연산자(operand)'라고 한다. 이처럼 연산자는 피연산자로 연산을 수행하고 이후에는 항상 결과값을 반환한다는..

Technology/Java 2022.08.04