목록final (3)
개발 무지렁이
생성 annotation @Component: 태그와 동일한 역할을 한다. 객체 생성 이를 확장해놓은, @Repository: persistence(영속성)을 가지는 클래스 생성 @Service: business logic을 가지는 클래스 생성 @Controller: presentation layer, 웹 요청과 응답을 처리하는 클래스 생성 🚨. annotation의 기본 id는 클래스 이름의 '첫글자'만 '소문자', 나머지는 동일주입 annotation @Autowired: , 을 byType으로 주입 같은 타입이 여러개 있다면 byName으로 주입 @Resource: 의존하는 객체를 자동으로 주입, 주로 byName으로 주입 @Value: 와 동일한 역할을 한다. @Qua..
인터페이스(Interface) ⚠️ 클래스가 아니다. 객체생성x, 상속x 추상 메서드(abstract method)만을 가지고 있는 형태 ※ 단, 인터페이스 내부에는 디폴트 메서드, 정적 메서드가 올 수 있다. 🎯 목적: ✔️ 다중상속과 같은 효과를 낼 수 있다. ✔️ 소통을 위한 규격의 역할을 한다. 🧩 확장성 🧩 유지보수 > 🦔 인터페이스의 변수는 항상 앞에 public static final이 붙는다.(생략) WHY? 인터페이스는 규격과 같은 역할을 한다. ❓static이 없다면? 구현객체마다 초기화값이 다르다. ➡️ 🗿 규격의 의미가 없어진다. ❓final이 없다면? 구현객체마다 변수의 값을 바꿀 수 있다. ➡️ 🗿 규격의 의미가 없어진다. 🗿 즉, 인터페이스가 만들어질 때, 한번 진정한 상수를 ..
정적(static) 멤버 객체 생성없이 접근가능한 멤버이며, 메모리에 무조건 올라간다. (하나를 만들어서 공유하고 싶을 때 => 지역변수에는 사용불가) vs 인스턴스(instance) 멤버 객체에 소속된 멤버이며, 객체를 생성해야만 사용할 수 있는 멤버이다. ※ 클래스 안의 메서드는 각 객체마다 존재하지 않고, 메서드 영역에 저장되어 공유된다. (객체마다 메서드[코드의 덩어리]를 저장한다면 '중복저장'으로 인해 메모리 효율이 떨어진다.) final 변수에 사용: 한 번 초기화하면 값변경이 불가능하다, 상수역할 (자동 초기화x) 메서드에 사용: 오버라이딩 x, 상속 x => 부모가 될 수 없음, (단, 객체생성은 가능) 📌. '진정한 상수'란? static final int CONSTANT = 100; s..