Java

Java

Java 기초 : Java의 메모리 구조

메모리 구조 자바의 메모리 영역은 크게 3가지 영역으로 나뉜다 정적 영역 (Method Area / Static Area) JVM이 동작해서 클래스가 로딩될 때 생성 static 변수를 저장하는 영역이기 때문에 정적 영역이라고 불림 어느 곳에서나 접근 가능한 영역 정적 영역은 타입(클래스나 메서드)의 이름과 정보, 필드 내의 멤버 변수, static으로 선언되는 모든 클래스 변수, 런타임 상수 풀, final 상수 등을 저장 💡 런타임 상수 풀(Runtime Constant Pool) 은 타입의 클래스, 인터페이스, 메소드, 필드에 관련된 모든 상수 정보를 가지고 있다. JVM은 런타임 상수 풀을 통해 해당 메소드나 필드의 실제 메모리 상 주소를 찾아 참조한다. 프로그램의 시작부터 종료까지 메모리에 남아..

Java

원격에서 Pull 한 Spring Boot 3.x 프로젝트가 실행 안될 경우 해결법

Could not resolve all files for configuration ':classpath'. > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.0.9. GitHub의 원격 Repository를 Pull 하였더니 위와 같은 에러가 발생하였다. 이를 해결하기 위해 체크해야 할 사항을 적는다. 1. Project Structure 확인 Project Structure의 SDK가 올바르게 지정되었는지 확인한다. 2. Gradle JVM 확인하기 Setting -> Build, Execution, Deployment -> Gradle -> Gradle JVM 이 동일한 JDK로 지정되었는지 확인한다.

Java

.orElseThrow에 사용자 정의 예외처리를 넣었을때 에러 해결하기

public PaymentResponseDto findById(Long paymentId) { Optional payment = paymentRepository.findById(paymentId).orElseThrow(NotExistPayment::new); PaymentResponseDto dto = PaymentResponseDto.from(payment); return dto; } 위와 같은 사용자 정의 예외처리를 넣고, JpaRepository의 기능인 findById를 이용하려 했지만 아래와 같은 에러가 발생. Unhandled exception: java.lang.Throwable 해결 방법은 2가지이다. - Repository에 findById를 정의 public interface Payme..

Java

[Java] ArrayList와 난수를 이용한 로또 생성기 만들기

[Day + 18] 도메인 지식 로또 번호는 추첨 후 오름차순으로 정렬된다. 한국 로또는 1세트에 1000원이다. 일반적으로 6개 번호를 뽑는 복권의 확률은 1/870만 이지만, 독립시행이므로 이론상 무한 시행도 가능하다 구현 방법 List (그 중 ArrayList) 를 이용하여 당첨 번호를 하나 받아오고, 해당 당첨번호를 자동으로 뽑는데 얼마나 걸리는지 구현해보자. 구매자가 자동으로 당첨 번호를 살 때까지 계속해서 구매하도록, 논리 연산자 ! 를 이용한 while문과, 로또 번호 6개를 찍는 myLottery.size() < 6 의 중첩 반복문을 이용했다. import java.util.ArrayList; import java.util.Collections; import java.util.List; ..

멜라몬드
'Java' 카테고리의 글 목록