
정적 멤버 클래스(정적 중첩 클래스)와 내부 클래스 즉, 내부 클래스가 static인지 여부에 따른 차이점을 알아보겠습니다. Inner Class VS Nested Static Class 특징 비교 Inner Class non-static nested class (스태틱이 아닌 중첩 클래스), non-static member class(비정적 멤버 클래스)라고도 한다. 외부 클래스의 static 멤버/메서드와 non-static 멤버/메서드에 모두 직접 접근 가능하다. 외부 클래스의 인스턴스를 생성해야만 인스턴스 생성이 가능하다. (외부참조: 메모리 누수 가능성) Nested Static Class static member class (정적 멤버 클래스)라고도 한다. 외부 클래스의 static 멤버/메서..

Object클래스의 메서드 equals(Object obj) 두 객체의 같고 다름을 참조변수의 값으로 비교하는 메서드 서로 다른 두 객체를 비교하면 return false String클래스에서는 equals메서드를 오버라이딩 → 문자열 값 비교 결과 반환 hashCode() 객체의 주소값을 이용해서 해시코드를 만들어 반환 다른 객체는 같은 해시코드를 가질 수 없음 String클래스에서는 hashCode메서드를 오버라이딩 → 문자열이 같으면 동일 해쉬코드 반환 clone() 객체에 저장된 값을 복제 → 기본형이 아닌 경우 주소값을 복제하므로 원본가 복제본이 동일 → 얕은복사(shallow copy) c.f. 원본이 참조하는 객체까지 복제 → 깊은복사(deep copy) String클래스 immutable ..

상속관계 vs 포함관계 상속관계 : is-a (A truck is a car.) class Truck extends Car { // ... } 포함관계 : has-a (A truck has a wheel.) → 멤버로 갖는다. class Car { int wheel = 4; // ... } 오버라이딩 vs 오버로딩 오버라이딩 (overriding) 조상으로부터 상속받은 메서드의 내용을 변경하는 것이다. 조상보다 좁은 범위의 접근제어나 예외선언 불가능하다. 오버로딩 (overloading) 매개변수의 수나 타입을 다르게하여, 기존에 없는 새로운 메서드를 정의하는 것이다. 상속 (inheritance) 자바는 단일상속만 가능하다. 복잡한 기능의 클래스 작성은 쉽지 않다. 클래스 간 관계가 명확하고, 코드의 ..

메모리 구조 변수 매개변수 기본형이면, 값이 복사된다. (read only) 참조형이면, 인스턴스 주소가 복사된다. (read & write) 스태틱(클래식) 변수와 인스턴스 변수 public class Card { // 스태틱(클래스) 변수 : 모든 인스턴스에 공통으로 들어가는 성질 static int height = 88; static int width = 62; // 인스턴스 변수 : 인스턴스별로 다른 성질 // 클래스 메서드가 사용할 수 없다. int number; String shape; Card(){ this.number = 1; this.shape = "Spade"; } Card(int number, String shape){ this.number = number; this.shape = s..

안녕하세요. 개발개입니다. 이번 글에서는 Lombok(롬복)을 설치하고 STS(eclipse)에 연동하는 방법을 알아보겠습니다. Lombok은 공식사이트, Maven, gradle 등 다양한 경로를 통해 다운받을 수 있고, 본 글에서는 ① 공식사이트 ② pom.xml직접 작성(Maven) ③ springboot 초기설정(Maven)을 통해 다운받고 설치하는 방법에 대해 다룹니다. 오타, 오류 혹은 기타 의견은 언제든지 환영합니다. Lombok(롬복) 이란? Lombok이란 자동으로 기본적인 상용구를 생성 해 줌으로써 코드량을 줄이는데 도움을 주는 Java 어노테이션 라이브러리입니다. 객체 클래스에 @Data 어노테이션만 달면, Getter/Setter/Equals/ToString과 같은 메서드를 자동으로..

안녕하세요. 개발개입니다. 이번 글에서는 Java Enterprise Application을 빌드하는데 보편적으로 사용되는 Spring Framework의 특징과 사용하는 이유에 대해 알아보도록 하겠습니다. 오타, 오류 혹은 기타 의견은 언제든지 환영합니다. 0. 들어가기 전에 프레임워크(framework)를 사용하는 이유부터 생각해 봅시다. 프레임워크를 사용하면 다음과 같은 장점이 있습니다. 설정보다 개발 업무에 좀 더 집중할 수 있습니다. 오랜 기간동안 확립된 디자인 패턴을 기반으로 합니다. 표준을 준수할 수 있도록 합니다. 비용 절감 효과가 있습니다. (생산량 증가) 하지만 반대로 이런 단점도 있습니다. 특정 방식대로 코드를 짜야 합니다. 언어나 라이브러리의 특정 버전을 탑니다. 1. 스프링 프레임..

안녕하세요. 개발개입니다. 이번 글에서는 Springboot 공식 지원 내장 서버인 Undertow의 적용 및 배포에 대해 알아보도록 하겠습니다. 오타, 오류 혹은 기타 의견은 언제든지 환영합니다. You can also read this post in English via the link below : [EN/JAVA] - [SpringBoot] Apply & Deploy Undertow undertow란? 초경량 & 고성능 웹 서버 NIO 기반의 블로킹/논블로킹 API 제공 Java로 구현되어 임베디드 모드의 모든 JVM 기반 응용 프로그램에서 사용 가능 개발환경 Windows 10 STS 3.9.6 jdk 1.8 spring-boot 2.1.6 ORACLE (ojdbc9 11.2.0.3) MyBat..