| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- generic type
- Generic method
- wrapper class
- tracking-modes
- type eraser
- optimistic lock
- #@Transacional
- COPYOFRANGE
- 프로그래머스
- HandlerMethod
- SPOF
- hoisting
- IllegalStateException
- pessimistic lock
- Transaction
- 벌크연산
- CORS
- RequestMappingHandlerMapping
- ExceptionResolver
- 단어변환
- cross-cutting concerns
- assertJ
- API
- demand paging
- NestJS 요청흐름
- CQS
- 역정규화
- TDZ
- propagation
- Java
- Today
- Total
목록Language/Java (59)
jingyulog
System.out.println("Hello") 의 동작원리 System.out은 System이 가지고 있는 out이라는 의미이다. out 필드라고 한다. 즉, System 클래스가 가지고 있는 out 필드는 PrintStream 타입이고, 이 PrintStream은 다양한 println, print 메서드를 가지고 있다. https://docs.oracle.com/javase/8/docs/api/java/lang/System.html System (Java Platform SE 8 ) Sets the system property indicated by the specified key. First, if a security manager exists, its SecurityManager.checkPer..
private boolean isImage(MultipartFile file) throws IOException { boolean result = false; BufferedImage bufferedImage = ImageIO.read(file.getInputStream()); if (bufferedImage != null) { result = true; } return result; } private boolean isSupportedExtension(String ext) { return ext != null && ( ext.equals("png") || ext.equals("jpg") || ext.equals("jpeg") || ext.equals("pdf") ); }
https://velog.io/@314_dev/Java-File-Path-%ED%81%B4%EB%9E%98%EC%8A%A4 Java 에서 파일 다루기 자바의 File, Path 클래스를 알아보자 velog.io
✏️ 개요 동시성 문제 여러 쓰레드가 동시에 같은 인스턴스의 필드 값을 변경하면서 발생하는 문제를 동시성 문제라고 한다. 스프링 빈처럼 싱글톤 객체의 필드를 변경하여 사용할 때, 이러한 동시성 문제를 조심해야 한다. 동시성 문제는 지역 변수에서는 발생하지 않는다. 지역 변수는 쓰레드마다 각기 다른 메모리 영역이 할당된다. 동시성 문제가 발생하는 곳은 같은 인스턴스의 필드, 또는 static 같은 공용필드에 접근할 때 발생한다. ThreadLocal 해당 쓰레드만 접근할 수 있는 특별한 저장소를 말한다. 즉, 각 쓰레드마다 별도의 내부 저장소를 제공한다. 자바는 언어차원에서 쓰레드 로컬을 지원하기 위한 java.lang.ThreadLocal 클래스를 지원한다. 📌 사용법 값 저장: ThreadLocal.s..
✏️ Heap 개요 heap은 최솟값 또는 최댓값을 빠르게 찾아내기 위해 완전이진트리 형태로 만들어진 자료구조이다. 이진트리(binary tree)란 모든 노드의 최대 차수를 2로 제한한 것이다. 완전이진트리(complete binary tree)란 마지막 레벨을 제외한 모든 노드가 채워져있으면서 모든 노드가 왼쪽부터 채워져있어야 한다. 마지막 레벨을 제외한 모든 노드가 채워져있어야 한다. 모든 노드들은 왼쪽부터 채워져있어야 한다. 포화이진트리(perfect binary tree)란 마지막 레벨을 제외한 모든 노드는 두 개의 자식노드를 갖는다라는 조건을 가진다. 🔎 Heap 특징 Heap의 핵심 특징은 부모 노드가 항상 자식 노드보다 우선순위가 높다는 것이다. 즉, 모든 요소들을 고려하여 우선순위를 정할..
✏️ 개요 자바 프로그램이 실행되면, JVM은 OS로부터 메모리를 할당받고, 그 메모리를 용도에 따라서 여러 영역으로 나누어 관리한다. JVM의 메모리 공간은 크게 정적 영역(Static or Method), 스택 영역, 힙 영역으로 구분되고, 데이터 타입(자료형)에 따라 각 영역에 나눠서 할당되게 된다. 컴퓨터의 메모리는 사용할 수 있는 공간이 한정되어 있다. 따라서 메모리 설계가 잘되어있는 프로그램에 비해 그렇지 않은 프로그램은 속도 저하 현상이나 튕김 등의 현상이 일어날 확률이 크다. 그래서 자바 애플리케이션에서 메모리를 효율적으로 사용하기 위한 메모리 구조와 특징에 대한 이해가 필요한 것이다. 🔎 JVM 구동 방식 자바 컴파일러에 의해 자바 파일이 클래스 파일(바이트 코드)로 컴파일된다. 클래스 ..