mjeongriver
상속 vs 조합(composition) 의 차이
Backend/JAVA 2025. 2. 5. 22:26

상속(Inheritance)과 조합(Composition)의 개념상속(Inheritance)부모 클래스(슈퍼클래스)의 속성과 메서드를 자식 클래스(서브클래스)가 물려받는 개념extends 키워드를 사용하여 구현 📌 예제: 상속(Inheritance)class Animal { void makeSound() { System.out.println("동물이 소리를 냅니다."); }}class Dog extends Animal { void bark() { System.out.println("멍멍!"); }}public class Test { public static void main(String[] args) { Dog dog = new Dog()..

static
Backend/JAVA 2025. 2. 5. 22:26

static 키워드란?✔ static 키워드는 클래스 레벨에서 변수, 메서드, 내부 클래스를 선언할 때 사용된다.✔ 객체(instance)마다 생성되는 것이 아니라, 클래스(class) 단위로 메모리에 단 한 번만 로드된다.✔ 즉, 객체를 생성하지 않고도 클래스명.변수명 또는 클래스명.메서드명() 형태로 접근할 수 있다. static 키워드가 사용되는 곳static 변수 (클래스 변수)모든 객체가 공유하는 변수static 메서드 (클래스 메서드)인스턴스 없이 호출 가능, 인스턴스 변수 사용 불가static 블록 (static initializer)클래스가 로드될 때 한 번 실행static 내부 클래스외부 클래스의 인스턴스 없이 사용 가능 static 변수 (클래스 변수)✔ 클래스가 로드될 때 메모리에 한..

동등성 과 동일성? == 와 equals?
Backend/JAVA 2025. 2. 5. 22:25

동등성(Equality) vs 동일성(Identity) 개념 정리동일성 (Identity)동일성이란 두 객체가 같은 메모리 주소(참조값)를 가리키고 있는지를 의미합니다.즉, 동일한 객체인지 확인하는 것을 말합니다.Java에서는 == 연산자를 사용하여 동일성을 비교합니다.동등성 (Equality)동등성이란 두 객체의 "내용(값)"이 같은지를 비교하는 것을 의미합니다.즉, 값이 같다면 "같은 객체"로 간주할 수 있도록 하는 개념입니다.Java에서는 equals() 메서드를 사용하여 동등성을 비교합니다.Java에서 equals() 메서드는 기본적으로 ==과 동일한 방식으로 동작한다.하지만 equals()를 오버라이딩하면 "동등성(Equality)"을 비교하도록 변경할 수 있다.즉, 오버라이딩하지 않으면 equ..

Primitive Type, Reference Type
Backend/JAVA 2025. 2. 5. 22:25

Primitive Type(기본 타입) vs Reference Type(참조 타입)✔ Primitive Type(기본 타입) → 값 자체를 저장하는 타입✔ Reference Type(참조 타입) → 메모리 주소(참조값)를 저장하는 타입 Primitive Type (기본 타입)- 기본 타입은 값 자체를 저장- 스택(Stack) 메모리에 저장됨- 연산을 하더라도 원본 변수는 변하지 않는다.- == 연산자로 비교하면 값을 직접 비교 📌 Primitive Type 예제public class Test { public static void main(String[] args) { int a = 10; int b = a; // 값 자체를 복사 (독립적인 변수) b = 20..

Optional 과 null
Backend/JAVA 2023. 6. 22. 20:39

런타임에서 발생하는 NullPointException 방어를 위해 만들어둔 로직체크는 코드의 가독성과 유지 보수성이 떨어진다. 어떻게 null 을 다루면 좋을 지에 대한 해결책을 함수형 언어에서 찾았다. 함수형 언어는 존재하지 않을 수도 있는 값에 대한 별도의 타입을 가지고 있다. 개발자들은 여러가지 API 를 통해 간접적으로 값에 접근할 수 있다. 자바는 함수형 언어로부터 영감을 받아 자바 8에 처음 Optional 이 도입 되었다. java.util의 Optional는 java 8부터 지원하는 객체를 감싸는 래퍼 클래스(Wrapper class)이다. 객체를 Optional 안에 넣어서 한 번 감싸는데 이 때 객체는 null일 수도 있고 null이 아닐 수도 있다. Optional을 사용함으로써 Op..

article thumbnail
StringBuffer, StringBuilder가 string보다 성능이 좋은 이유와 원리
Backend/JAVA 2023. 5. 15. 15:39

String먼저 String과 다른 클래스(StringBuffer, StringBuilder)의 차이점은 두 문자열 클래스의 아주 기본적인 차이는 String은 immutable(불변), StringBuffer, StringBuilder는 mutable(변함)에 있습니다. String은 문자열을 대표하는 것으로 문자열을 조작하는 경우 유용하게 사용할 수 있습니다. 문자열, 숫자, char 등은 concat할 때 StringBuffer, StringBuilder를 사용할 수 있습니다.단, 복잡한 경우 의미가 있고, 단순한 경우에는 굳이 StringBuffer, StringBuilder를 쓰지 않고 + 연산자를 활용해 직접 합지면 됩니다. String 객체는 한번 생성되면 할당된 메모리 공간이 변하지 않습니..

검색 태그