반응형

IT 98

[Java] Set과 equals() 및 hashCode()의 관계

☕️ Set 이란?Set이란 컬렉션 프레임워크(collection framework)의 한 종류로써 데이터의 중복을 허용하지 않는 특징이 있다.  아래의 코드 예시를 보자.import java.util.*;public class SetEx { public static void main(String[] args) { Set set = new HashSet(); set.add("가"); set.add("나"); set.add("가"); // 중복을 허용하지 않는다. set.add("다"); System.out.println(set); // [가, 다, 나] }}set에 '가', '나', '가', '다' 순으로 '가'를 2번..

IT 2025.01.22

[Java] 컬렉션 프레임워크(Collection Framework)

☕️ 컬렉션 프레임워크(Collection Framework)란?컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다. 컬렉션 프레임워크의 주요 인터페이스에는 List, Set, Map이 있으며 각 각의 인터페이스들은 구현체를 가지고 있다. 각 각의 인터페이스의 주요 특징으로는List- 순서가 있는 데이터 집합이다.- 데이터의 중복을 허용한다.Set- 순서가 없는 데이터 집합이다.- 데이터의 중복을 허용하지 않는다.Map- 키와 값의 한 쌍으로 이루어진 데이터 집합으로 순서가 없다.- 키의 중복은 허용하지 않고, 값의 중복은 허용한다.   ☕️ List 인터페이스List 인터페이스는 저장 순서를 유지해..

IT 2025.01.22

[Java] 제네릭(Generic)

☕️ 제네릭(Generic)이란제네릭이란 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법을 의미한다.예를 들면 자바에서 자주 사용되는 List클래스는 제네릭 사용이 가능한 클래스 중 하나로 List에서 사용될 데이터 타입을 외부에서 지정할 수 있다. 아래와 같이 List 내부에서 데이터 타입을 지정하는 것이 아니라 외부에서 타입을 지정하는 형태로 사용된다.// String 타입으로 선언 및 생성List stringList = new ArrayList();// Integer 타입으로 선언 및 생성List integerList = new ArrayList();   ☕️ 제네릭(Generic)의 장점1. 컴파일 시점에 타입 검사를 통한 예외 방지제네릭을 사용하게 되면 컴파일 시점에 타입 검사를 통..

IT 2025.01.22

[Java] 오버로딩(Overloading)과 오버라이딩(Overriding)

☕️ 오버로딩(Overloading)과 오버라이딩(Overriding)이번 포스팅에서는 신입 면접 문제로 자주 등장하는 오버로딩과 오버라이딩에 대해서 포스팅해보려고 한다.우선 오버로딩과 오버라이딩의 간략한 정의는 다음과 같다.오버로딩- 같은 이름의 메서드를 여러 개 정의하는 것오버라이딩- 부모 클래스의 메소드를 자식 클래스에서 재정의하는 것   ☕️ 오버로딩(Overloading)앞서 오버로딩이란 같은 이름의 메서드를 여러 개 정의하는 것이라고 설명하였다.자바의 한 클래스 내에서 sum()이라는 메서드를 이미 사용 중이라고 가정해 보자.int sum(int num1, int num2) { return num1 + num2;}자바에서는 이미 사용하려는 이름과 동일한 메서드가 있더라도, 매개변수의 개수..

IT 2025.01.22

[Java] 추상클래스와 인터페이스 비교

☕️ 추상클래스와 인터페이스의 차이점추상클래스와 인터페이스의 가장 큰 차이점은 사용용도에 있다. 흔히 추상클래스와 인터페이스를 아래와 같이 표현하기도 한다.추상클래스 : 자식클래스 is kind of 부모클래스인터페이스 : 자식클래스 is able to 부모인터페이스 추상클래스는 부모와 자식 관계에 명확한 계층 구조가 성립한다.자식 클래스의 공통된 부분을 부모 클래스로 추출해 낸 것이며, 자식 클래스에서는 부모의 기능을 재사용하거나 필요에 따라 이를 확장시켜 사용할 수 있다.   반면, 인터페이스는 공통된 기능을 선언하고 필요한 클래스에서 이를 구현하게 할 수 있다.만약 '박쥐' 클래스와 '독수리' 클래스에 fly()라는 메서드를 추가하고 싶다면, 추상클래스에 fly()를 선언함으로써 기능을 추가할 수 ..

IT 2025.01.21

[Java] 인터페이스(Interface)

☕️ 인터페이스(Interface)란?인터페이스는 자바에서 클래스들이 구현해야 하는 동작을 지정하는 용도로 사용되는 추상 자료형이다.인터페이스는 interface 키워드를 붙여 선언할 수 있으며, 기본적으로는 상수와 추상메서드로 구성된다. 하지만 자바8부터는 default 메서드와  static 메서드를 지원한다.interface InterfaceSample {    public static final int NUM = 10; // public static final 생략 가능. 컴파일 시에 자동 생성    public abstract void calc(); // public abstract 생략 가능. 컴파일 시에 자동 생성    default void defaultMethod() { // Java8부..

IT 2025.01.21

[Java] 추상 클래스(Abstract Class)

☕️ 추상클래스(Abstract Class)란?추상 클래스(Abstract Class)는 추상 메서드를 선언해 놓고 상속을 통해 자식 클래스에서 메서드를 완성하도록 유도하는 클래스이다.즉, 반드시 사용되어야 하는 메서드를 추상 클래스에 추상 메서드로 선언해 놓으면, 이 클래스를 상속받는 모든 클래스에서는 이 추상 메서드를 반드시 재정의해야 한다. 추상클래스는 abstract 키워드를 붙여 선언할 수 있다.abstract class Animal { abstract void cry();} 위의 코드처럼 추상메서드를 선언했다면, 자식클래스에서는 반드시 추상메서드를 구현해야 한다.class Bird extends Animal { @Override void cry() { // 반드시 cry()를 ..

IT 2025.01.21

[Java] 래퍼 클래스(Wrapper Class)와 박싱(Boxing), 언박싱(Unboxing)

☕️ 래퍼 클래스(Wrapper Class)란?래퍼 클래스란 8개의 기본 타입에 해당하는 데이터를 객체로 표현하기 위해 포장해 주는 클래스를 뜻한다.기본 타입래퍼 클래스byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBoolean   ☕️ 박싱(Boxing)과 언박싱(Unboxing)Boxing은 원시 타입의 값을 래퍼 클래스(Wrapper class)로 변환하는 것을 의미하며,Unboxing은 래퍼 클래스를 원시 타입으로 변환하는 것을 의미한다.  int n = 10;// 박싱Integer boxingNum = new Integer(n);System.out.println("boxingNum = " + boxing..

IT 2025.01.21

[Database] Key의 종류와 특징

💾 Key란? 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 Attribute(속성)이다.   💾 Candidate Key (후보키)튜플을 유일하게 식별할 수 있는 속성들의 부분 집합모든 릴레이션은 반드시 하나 이상의 후보키를 가져야 한다.유일성과 최소성을 만족해야 한다.   💾 Primary Key (기본키)후보키 중에서 선택한 메인이 되는 키Null 값을 가질 수 없다.동일한 값이 중복될 수 없다.   💾 Alternate Key (대체키)후보키 중 기본키를 제외한 나머지 키  💾 Super Key (슈퍼키)유일성은 만족하지만, 최소성은 만족하지 못하는 키릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 ..

IT 2025.01.21

[Database] DDL, DML, DCL, TCL

💾 SQL이란? SQL(Structured Query Language)이란 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다.아래의 그림과 같이 DDL, DML, DCL, TCL로 구분된다.   💾 DDL (Data Definition Language)데이터베이스의 구조를 정의할 때 사용하는 언어이다. DDL은 명령어를 입력하는 순간 작업이 즉시 반영(Auto Commit)되기 때문에 사용할 때 주의해야 한다.CREATE- 테이블, 뷰 또는 인덱스와 같은 새 데이터베이스 개체를 생성ALTER- 기존 데이터베이스 개체를 수정DROP- 테이블, 뷰 또는 인덱스와 같은 데이터베이스 개체 삭제TRUNCATE- 테이블의 모든 행을 삭제(DROP과 달리..

IT 2025.01.21
반응형