[JAVA] 객체 상속 시, 인스턴스는 어떤 순서로 생성될까? [super(), Object Creation in Java]
·
◎ Java/Java☕
- 객체 상속 시, 인스턴스는 어떤 순서로 생성될까? 객체를 상속하고 있을 경우, 인스턴스의 생성 순서는 어떻게 될까? 아래와 같이 Student 객체는 Person 객체를 상속하고 있다고 가정해보자. public class Person { // 내용 생략 } public class Student extends Person { // 내용 생략 } 여기서 Student 인스턴스를 생성할 경우, 아래와 같은 구조가 된다. (모든 객체는 Object 객체를 상속하고 있다.) 객체는 본인보다 상속 받은 상위 클래스를 먼저 인스턴스화 한 뒤, 마지막에 본인의 인스턴스를 생성한다. 상위 클래스의 생성자를 super()로 호출하며, 코드로 보면 아래와 같다. public class Person { public Per..
[JSP] JSP에서 JavaScript 템플릿 문자열(${...}, Template literals) 사용 방법 [JavaScript 백틱 사용이 안될 때]
·
◎ Java/JSP📋
- JavaScript 백틱 사용이 안될 때 jsp를 사용할 경우, jsp의 EL 표현식과 JavaScript의 템플릿 문자열이 겹치게 된다. 아래의 코드는 jsp 엔진을 거치지 않으면 정상적으로 동작한다. var today = '2023-07-25'; var msg = `오늘은 ${today} 입니다.`; // 오늘은 2023-07-25 입니다. 그러나, jsp 엔진을 거치게 되면 아래와 같게 변한다. 1) page, request, session, context 에서 "today"라는 이름표가 붙은 값을 찾는다. 2) null이면 아무것도 출력하지 않고 EL 표현식(${...})을 없앤다. 3) null 이 아니면 EL 표현식(${...})에 toString() 값을 넣는다. // Controller..
[JAVA] Map에서 new Map과 clear()의 차이 [List 안에 Map을 담을 때 clear를 사용하면 안될까?]
·
◎ Java/Java☕
- Map에서 new Map과 clear()의 차이 for 문을 활용하여 List 안에 Map을 담는 경우, Map 객체를 하나만 생성하고 clear() 하여 재사용하는 방식을 생각해볼 수 있다. 이 방법은 좋은 방법일까? import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Test { public static void main(String[] args) { List list = new ArrayList(); List list2 = new ArrayList(); Map map = new HashMap(); for(int i = 0 ; i < 3 ; i++) ..
[JAVA] 자바(Java)에도 호이스팅(Hoisting)이 적용될까? [자바 내 변수와 메서드 선언 순서, 메서드 시그니처]
·
◎ Java/Java☕
- 자바(Java)에도 호이스팅(Hoisting)이 적용될까? - 호이스팅(Hoisting)이란? 호이스팅(Hoisting)은 주로 JavaScript와 같은 일부 언어에서 변수 선언이나 함수 선언을 해당 스코프의 최상단으로 끌어올리는 동작을 말한다. 호이스팅은 변수와 함수 선언이 실제 코드의 위치보다 앞서서 실행되는 것처럼 동작하도록 하는 것이며, 주로 컴파일러나 인터프리터의 동작 방식에 의해 이루어진다. console.log(name); // undefined. 호이스팅으로 인해 에러 발생 X var name = "yermi"; - Java에서 변수 선언 순서 Java에서 변수의 선언 순서는 변수가 사용되기 전에 해당 변수가 이미 선언되어 있어야 함을 의미한다. 변수는 선언된 위치부터 해당 블록 내에..
[JAVA] short 타입과 byte 타입을 연산하면 어떤 결과가 나올까? [Java 연산 처리 최소 단위와 산술 변환]
·
◎ Java/Java☕
- short 타입과 byte 타입을 연산하면 어떤 결과가 나올까? Java에서 short나 byte와 같은 작은 정수형 타입은 산술 연산을 수행할 때 int 타입으로 자동으로 형변환된다. (정수형 연산 시 발생하는 오버플로우(overflow)나 언더플로우(underflow)를 방지하기 위한 것) 예를 들어, short 타입 변수 s1과 s2를 더하면 결과는 int 타입으로 자동 형변환되며, 그 결과를 다시 short 타입 변수에 대입하려면 명시적인 형변환을 수행해야 한다. [JAVA] 산술 변환(usual arithmetic conversion) [피연산자 타입 일치를 위한 자동 형변환] 1. 산술 변환(usual arithmetic conversion) 이항 연산자는 두 피연산자의 타입이 일치해야 연..