클래스와 객체의 차이점을 말하라고 하면 뭐라고 말할 수있을까? 먼저 '인스턴스화(Instantation) 여부'에 대해 말할 수 있다. 클래스는 객체를 만들기 위한 청사진이고, 객체는 그 클래스의 인스턴스이다. 클래스는 데이터 및 메서의 틀을 제공하며, 객체는 이러한 틀을 기반으로 실제 메모리에 할당된 것이다.객체는 클래스의 인스턴스로, 클래스에서 정의된 속성과 메서드를 실제 값과 동적으로 구현한다.객체는 클래스의 인스턴스이기 때문에 여러 객체를 만들어 사용할 수 있다객체는 클래스의 인스턴스이지만 클래스 자체로는 직접적으로 데이터를 담거나 메서드를 실행할 수 없다 그렇다면 인스턴스화되었다는 것을 다음과 같이 정의할 수 있다. 인스턴스화인스턴스화는 클래스로부터 객체(인스턴스)를 생성하는 과정을..

의존성 주입하면 생각나는 것이 @Autowired 인데, 실제로 이것들의 정확한 개념은 설명할 수 없었다. @Autowired 를 사용하면 DI 를 편리하게 할 수 있다. 정도? 그럼 얘들은 언제 어디에 어떻게 사용하는거지?? 이번 정리를 통해 완벽하게 개념을 알고 있자 !! 의존성 주입(Dependency Injection) "소프트웨어 개발에서 다른 객체나 모듈로부터 필요한 의존성(객체, 서비스, 데이터 등)을 주입하는 디자인 패턴" 코드 간의 결합도를 낮추고 유지 보수성을 향상시키며 코드를 더 테스트하기 쉽게 하기 위함 먼저 DI 개념을 익히기 위해 스프링 프레임워크를 사용하지않고, 순수한 Java 코드로 의존성 주입을 해보자 아래 예시는 생성자 주입을 통한 의존성 주입이다. Car 클래스 : 자동..

@Autowired 를 사용하는 경우 기본적으로 필수적인 의존성을 가진다. ( 기본값 : required=true ) 해당 클래스를 주입할 수 있는 빈(Bean) 이 존재 하지 않으면 애플리케이션 컨텍스트 초기화 과정 중에 예외가 발생한다. @Autowired(required = false) 해당 의존성을 주입할 수 있는 빈이 없어도 예외를 발생시키지도 않고 무시됨 해당 필드 또는 메서드 인젝션 포인트는 null 값으로 남음 특정 상황에서 의존성이 없이도 애플리케이션이 잘 동작하도록 도와줌 @Autowired (requird = false) 를 사용하는 것과 @Autowired 어노테이션 자체를 사용하지 않는 것의 차이? [ 상황 ] Member 클래스는 스프링 빈으로 등록되어있지 않다. 그런 경우 @A..
Arrays.copyOfRange() Java 에서 배열을 복사하는 메서드 중 하나 원본 배열에서 지정한 범위 내의 요소들을 새로운 배열로 복사할 수 있음 public static T[] copyOfRange(T[] original, int from, int to) original : 복사할 원본 배열 from : 복사를 시작할 인덱스 (포함) to : 복사를 종료할 인덱스 ( 포함하지 않음 ) [ 예제 ] import java.util.Arrays; public class CopyOfRangeExample { public static void main(String[] args) { int[] originalArray = {1, 2, 3, 4, 5}; // 1번 인덱스부터 3번 인덱스까지 복사 int[]..
parse 메서드 : 문자열을 다양한 타입으로 변환하는 메서드 Integer.parseInt(String s): 문자열을 정수로 변환합니다. 예를 들어, "123" 문자열은 123 정수로 변환됩니다. 변환 중에 문자열이 올바른 숫자 형식이 아니라면 NumberFormatException이 발생합니다. Double.parseDouble(String s): 문자열을 배정밀도 부동 소수점 숫자로 변환합니다. 예를 들어, "3.14" 문자열은 3.14 배정밀도 부동 소수점 숫자로 변환됩니다. 변환 중에 문자열이 올바른 숫자 형식이 아니라면 NumberFormatException이 발생합니다. Boolean.parseBoolean(String s): 문자열을 논리값으로 변환합니다. 대소문자를 구분하지 않고, "t..
|| 과 && " 단축 평가( Short-circuit evaluation) 논리 연산자 " 첫 번째 피연산자의 결과에 따라 두 번째 피연산자의 논리식은 평가되지 않는 연산자 || ( or ) 첫 번째 피연산자가 true 이면 두 번째 피연산자의 논리식은 평가되지않음 && ( and ) 첫 번째 피연산자가 false 이면 두번 째 피연산자의 논리식은 평가되지 않음 간단하게 말하자면 || -> true 가 하나라도 있으면 true && -> false 가 하나라도 있으면 false boolean a = true; boolean b = false; boolean result = a && b; // 첫 번째 피연산자가 true이므로 두 번째 피연산자를 평가해야 함 System.out.println(result..
Toggle은 어떤 값이 현재 상태에 따라 반대로 변경되는 기능을 말합니다 public class ToggleExample { private boolean flag = false; // 초기 상태 public void toggleFlag() { flag = !flag; // 현재 상태의 반대로 변경 } public boolean getFlag() { return flag; } public static void main(String[] args) { ToggleExample toggleExample = new ToggleExample(); System.out.println("현재 상태: " + toggleExample.getFlag()); toggleExample.toggleFlag(); System.ou..
Integer.valueOf() Java 의 Interger 클래스에 있는 정적 메서드로, 문자열이나 기타 표현을 Integer 객체로 변환 문자열을 Integer 객체로 변환 String str = "123"; Integer number = Integer.valueOf(str); System.out.println(number); // 123 // 타입 확인 System.out.println(number.getClass().getSimpleName()); // Integer 정수값을 Integer 객체로 변환 int value = 456; Integer number = Integer.valueOf(value); System.out.println(number); // 456 System.out.printl..