본문 바로가기

전체 글

(96)
자바에서의 제네릭과 와일드카드 [자바에서 제네릭이란] 제네릭은 매개변수화된 유형을 의미한다. 이것은 Integer, String, ...등 및 사용자 정의 유형의 메서드, 클래스 및 인터페이스에 대한 매개변수가 될 수 있도록 하는 것이다. 제네릭을 이용하면 다양한 데이터 유형을 작동하는 클래스를 생성할 수 있다. [왜 제네릭을 사용하는가] 제네릭은 Java 5부터 새로 추가되어 등장했는데, 제네릭 타입을 이용함으로써 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거할 수 있게 되었다. List list = new LinkedList(); list.add(new Integer(1)); Integer i = list.iterator().next(); 위와 같이 코드를 구현하게 되면 컴파일러는 어떤 데이터 유형이 반환되었는지 모르..
Java Garbage Collection(GC)란 무엇이고 동작방식과 G1GC에 대해 C와 같은 프로그래밍 언어에서 메모리 할당 및 할당 해제는 수동 프로세스입니다. 반면에, Java에서 메모리 할당 해제 프로세스는 Garbage Collection에 의해 자동으로 처리가 됩니다. [기본 프로세스] Step1 : Marking Garbage Collector가 사용중인 메모리 조각과 사용하지 않는 메모리 조각을 식별합니다. 마킹 단계에서 모든 개체들을 스캔하다보니 많은 시간이 소요될 수 있습니다. Step2 : Normal Deletion 참조되지 않은 개체를 제거하여 참조된 개체와 포인터를 여유 공간으로 남깁니다. 메모리 할당자는 새 개체를 할당할 수 있는 여유 공간 블록에 대한 참조를 보유합니다. Step2a : Deletion with Compacting 성능 향상을 위해 참조된 나..
JVM 구조와 Java의 실행방식 JVM(Java Virtual Machine) : 자바 바이트 코드를 해석하고 실행하는 것을 말한다. JVM 특징 스택 기반의 가상 머신 심볼릭 레퍼런스 기본 자료형(primitive data type)을 제외한 모든 타입(클래스와 인터페이스)을 명시적인 메모리 주소 기반의 레퍼런스가 아니라 심볼릭 레퍼런스를 통해 참조한다. 참고하는 클래스의 특정 메모리 주소를 참조 관계로 구성한 것이 아닌 참조하는 대상의 이름만을 지칭한 것이다. 가비지 컬렉션(garbage collection) 클래스 인스턴스는 사용자 코드에 의해 명시적으로 생성되고 가비지 컬렉션에 의해 자동으로 파괴된다. 기본 자료형을 명확하게 정의하여 플랫폼 독립성을 보장 C/C++ 등의 전통적인 언어는 플랫폼에 따라 int형의 크기가 변한다. ..
멀티 스레드의 스레드들이 객체를 공유하는데 임계영역의 문제를 해결하지 않은 경우 '이것이 자바다'의 12장의 예제를 참고하여 실습한 내용입니다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public class SynchronizedCalculator { private int memory; public int setMemory(int memory) { this.memory = memory; try { Thread.sleep(2000); } catch (InterruptedException e) { } System.out.println(Thread.currentThread().getName() + " = " + this.memory); return this.memory; } } Colored by Color Scripter cs 1 2 3 4 5 6 7 8 9..
[LeetCode] 70.Climbing Stairs https://leetcode.com/problems/climbing-stairs/ Climbing Stairs - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 설명 당신은 계단을 오르고 있습니다. 정상에 도달하려면 n 단계가 필요합니다. 매번 1 또는 2개의 계단을 오를 수 있습니다. 얼마나 많은 유일한 방법으로 계단을 오를 수 있습니까? 풀이 예를들어 4칸의 계단으로 올라오는 경우 정상에 올라 오기전에 밟을 수 있는 계단의 수는 1개 또는 2개이다 1..
Java char타입의 초기화를 할 때 '' 불가한 이유 char 타입은 원시적으로 값이 있어야만 한다 char 값은 항상 0 ~ 65535 범위에서 정확히 하나의 값을 나타낸다 리터럴 ‘’는 ‘문자가 없음’이며 이를 의미하는 char 타입에 할당 될 수 있는 값은 없다 String 문자열은 배열이므로 “”와 같이 아무것도 전달하지 않아도 기본적인 빈 배열이 만들어지므로 String str = “”;와 같은 초기화가 가능합니다 빈 값과 유사하게 '\0'으로 초기화를 통해 근접한 상황을 만들 수는 있다
Java GC 처리방법 GC랑 garbage collection으로 메모리 관리 기법 중 하나이다 프로그램이 동적으로 할당한 메모리 영역 중 필요없게 된 영역을 해제하는 기능이다 포인터 추적 방식은 한개 이상의 변수가 접근 가능한 메모리는 앞으로 사용할 수 있는 메모리로 간주하고 그 밖의 메모리를 해제하는 방식을 가리킨다 GC를 하는 방식으로는 포인터 추적 방식을 대부분 사용한다 접근 가능한 객체는 어떤 변수가 집접 가리키는 메모리 또는 간접적으로 가리키는 메모리를 의미 포인터 추적 방식 가장 단순한 기법 영역 표시를 위해 각 메모리 할당 시 1비트의 메모리를 남겨둔다 표시단계에서 모든 변수가 가리키는 영역을 사용 중으로 표시하고 그 영역에 서 가리키는 또다른 영역 또한 사용중으로 표시 접근이 불가능한 메모리 영역들은 쓸기 단..
[JPA]mappedBy reference an unknown target entity property mappedBy reference an unknown target entity property: jpabook.jpashop.domain.Order.member in jpabook.jpashop.domain.Member.orders 발생원인 jpabook.jpashop.domain.Order.member in jpabook.jpashop.domain.Member.orders Order에서 member와 Member의 orders 조인 맵핑을 해주는 부분에 오류가 있다는 에러이다 자세히 보면 정말 바보같은 실수를 했다 Order클래스에서 @ManyToOne 어노테이션을 붙여서 private Member memberId;라고 선언이 되어있다 반면에 Member클래스에서는 @OneToMany(mappedBy ..
com.zaxxer.hikari.pool.HikariPool : HikariPool-2 - Exception during pool initialization. com.zaxxer.hikari.pool.HikariPool : HikariPool-2 - Exception during pool initialization. 발생원인 ERROR 17616 --- [ Test worker] com.zaxxer.hikari.pool.HikariPool : HikariPool-2 - Exception during pool initialization. java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. 데이터베이스 서버에 대한 연결을 생성할 수 없습니다.라는 오류 이다 AWS를 통해 배포를 하..
Required request parameter 'linkId' for method parameter type String is not present Required request parameter 'linkId' for method parameter type String is not present 발생 원인 요청 쿼리 스트링에 'linkId' 필드가 없게 되면서 메소드 매개변수 유형 문자열에 대한 필수 요청 매개변수 'linkId'가 없다 (Required request parameter 'linkId' for method parameter type String is not present)라는 오류가 발생했습니다 제목 내용 저장 form태그에서 submit을 통해 linkId와 idUser 값을 보냈지만 사진에 나온 것처럼 @RequestParam 어노테이션을 통해서 받는 값이 없어 발생한 오류이다 정리할 내용 HTML에서 form태그를 통해 met..