Programming/Java
-
[Java] Abstract Class(추상 클래스)와 Interface(인터페이스)의 차이Programming/Java 2021. 8. 15. 16:55
객체지향에 있어서 Abstraction(추상화)는 단순한 인터페이스를 통해 구현의 복잡성을 숨기고 기능을 제공할 수 있는 핵심 개념이다. Java에서 추상화는 주로 Interface(이후 인터페이스)와 Abstract Class(이후 추상클래스)를 통해 구현할 수 있다 1. Class와 Interface Class: 객체를 생성하기 위해 변수와 메소드를 정의하는 사용자 정의 타입. 상태와 행동을 결정하는 property와 method들로 이루어져 있다 Interface: 클래스와 유사하지만 필드 상수와 메소드 정의부를 가지고 있는 사용자 정의 타입. 인터페이스 내의 모든 메소드는 구현체를 포함할 수 없음(Java 8미만. 8 이후 부터는 default와 static 메소드에 한해 구현체를 가질 수 있다)..
-
[Java] String 🆚 StringBuffer 🆚 StringBuilder 무슨 차이일까?Programming/Java 2021. 7. 23. 21:53
"String, StringBuilder, StringBuffer의 차이에 대해 설명하세요" 라는 면접 빈출 질문이 있다고 한다 그래서 오늘 java 공식 api 문서를 보면서 세 가지 클래스의 차이를 정리해 볼 것이다 1. String String 클래스는 character 자료형으로 된 문자열을 표현하는 대표적인 클래스이다. "abc"와 같이 큰따옴표로 표현될 수 있는 문자열이 String 클래스의 구현체이다. "abc"와 같은 문자열 value 자체는 값이 생성된 뒤에 변하지 않는 상수이다. 변수 할당 후 값을 자유롭게 바꿀 수 있는 Numeric형 변수들과 다르게, String의 문자열 value 자체는 바뀔 수 없다. 즉, Immutable한 속성을 가지고 있다는 것인데 설명은 아래의 링크를 참..
-
[Java] Java API HashMap은 어떻게 동작할까Programming/Java 2021. 6. 20. 14:09
✅ 이 글의 전반적인 내용은 아래의 글을 정리하여 작성하였음 https://d2.naver.com/helloworld/831311 해시 시리즈 3탄 이 글을 쓰기 위해 이전의 글을 써왔고, 해시에 대해 잘 알지 못한다면 참고하는 것도 좋을 것 같다https://2jinishappy.tistory.com/230 빠른 데이터 검색을 위한 Hashing과 Hash Table select * from ~ where key="name" 우리는 종종 위와 같은 쿼리문으로 데이터베이스에 있는 튜플을 조회한다 데이터베이스에 있는 attribute의 key값이 unique하다고 할 때, 테이블의 튜플을 어떻게 조회하는 2jinishappy.tistory.com https://2jinishappy.tistory.com/2..
-
[Java] Primitive Wrapper ClassProgramming/Java 2021. 4. 13. 20:49
Wrapper Class는 primitive data type을 캡슐화하는 클래스이며, 다른 클래스의 객체 인스턴스 및 메소드를 만들기 위해 사용한다. Primitive Data Type에 Object처럼 사용하기 위해 Class로 바인딩시키는 역할이라고 할 수 있다. 1️⃣ primitive type은 class의 generic으로 사용할 수 없고, 2️⃣Object의 하위 클래스를 요구하는 메소드가 있을 때 일반 primitive data type을 Wrapper class로 감싸서 사용한다. 일단 primitive data type을 이용하면 일정 단위의 데이터 저장을 위해 Array만을 이용할 수 있지만, 원시 데이터 타입을 wrapper class로 감싸면 java의 다양한 collection을..
-
[Java] Comparable과 ComparatorProgramming/Java 2021. 4. 6. 10:04
Comparable과 Comparator는 모두 Java의 인터페이스이다 단어도 비슷하고, 인터페이스 내 메소드 내 구현해야 할 메소드 명도 비슷해서 항상 용법이 헷갈리지만 엄연히 역할들이 분류되어 있었다. Interface Comparable Comparable은 java.lang package에 존재하는 public interface이며 이 인터페이스를 구현하는 클래스의 객체는 순서를 정의할 수 있는 규칙을 부여할 수 있다. Collections.sort(Arrays.sort)를 할 때 인자로 Comparator를 넘겨 주지 않아도 되며 sorted map이나 sorted set에서도 그 order가 적용된다. public class Point implements Comparable { int x; ..