Language/Java 12

파일을 복사하는 4가지 방법

파일 이동을 위해 파일을 복사하려고 보니 가장 기본적인 I/O방법인 inputStream, outputStream에서 아파치 라이브러리를 사용하는 것까지 여러 가지 방법이 존재했다. 지금 프로젝트에선 FileInputStream을 사용하고 있지만, 다른 방법도 정리해보았다. 1. FileInputStream, FileOutputStream 가장 흔하고 많이 쓰이는 방법으로, FileInputStream으로 읽고 FileOutputStream으로 쓰는 방법이다 import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io...

Language/Java 2022.05.16

쓰레드(Thread)의 기본개념

프로그램과 프로세스 우리가 프로그램을 실행하려고 하면, 실행을 위해 운영체제에서 메모리 공간을 할당받아오게 되며, 그 공간에 프로그램이 올려져 실행되게 된다. 즉 프로세스는 실행중인 프로그램, 혹은 그 작업이라고 할 수 있다. 간단히 말해 프로그램은 저장장치에 저장되어있는 정적인 상태이고, 프로세스는 실행을 위해 메모리에 올라와있는 동적인 상태이다. 프로세스의 상태에는 5가지가 존재한다. 생성 상태(create status) : 프로세스가 메모리에 올라와 실행 준비를 완료한 상태 준비 상태(ready status) : 생성된 프로세스가 CPU를 얻을 때까지 기다리는 상태 실행 상태(running status, execute status) : 준비 상태에 있던 프로세스 중 하나가 CPU를 얻어 실제 작업을..

Language/Java 2022.05.10

can not resolve placeholder 에러

properties파일에 debug.ruin=true 를 설정하고 java파일에서 @Value("$debug.ruin") private boolean debugRuin; 해서 가져오려고 하니 can not resolve placeholder에러가 발생했다 알아보니 1. properties, java파일에 정확히 적었는지 확인해라 2. properties파일을 읽어오게끔 설정했는지 확인해라 이렇게 있던데 내 경우는 2. java에서 properties파일을 읽어오도록 설정을 빼먹었다. 설정하는 방법은 @PropertySource(value = "local.properties") 를 추가하면 된다 위치는 @Configuration @PropertySource(value = "local.properties")..

Language/Java 2022.01.05

javax.annotation.meta.When 에러

javax.annotation.meta.When 으로 빨간색으로 경고가 나왔다 검색하니 JSR305 를 추가하면 된다고 한다 지금까지의 에러 중에 가장 쉽게 해결! build.gradle에서 dependencies { ... // https://mvnrepository.com/artifact/com.google.code.findbugs/jsr305 implementation 'com.google.code.findbugs:jsr305:3.0.2' ... } pom.xml에서 com.google.code.findbugs annotations 3.0.1 참고 : https://stackoverflow.com/questions/53326271/spring-nullable-annotation-generates-u..

Language/Java 2021.06.11

org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'file' is not present 에러

aws ec2 서버에 업로드하고 포스트맨을 통해 저장하는 테스트를 하는데 file을 업로드할 부분에 업로드하지않고 보내봤더니 에러가 발생했다 postman test : 에러로그 : com.timeline.jwt.TokenProvider: - UserDetails- 아이디 : 1 2021-06-10 00:49:13.530 WARN 18107 --- [nio-8080-exec-6] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.multipart.support.Missi ngServletRequestPartException: Required request part 'file' is not present] 컨트롤러 : @..

Language/Java 2021.06.10

Is Java “pass-by-reference” or “pass-by-value”? | Stack Overflow 정리

본 내용은 Stack Overflow의 한국어 번역이 아니며, 개인적인 공부를 위해 Stack Overflow 질의를 정리한 내용입니다 질문 자바는 'pass-by-refence'인가요, 'pass-by-value'인가요? I always thought Java uses pass-by-reference. However, I've seen a couple of blog posts (for example, this blog) that claim that it isn't (the blog post says that Java uses pass-by-value). I don't think I understand the distinction they're making. What is the explanation? ..

Language/Java 2020.12.13

How do I compare strings in Java? | Stack Overflow 정리

본 내용은 Stack Overflow의 한국어 번역이 아니며, 개인적인 공부를 위해 Stack Overflow 질의를 정리한 내용입니다 질문 Java에서 문자열을 어떻게 비교해야 합니까? I've been using the == operator in my program to compare all my strings so far. However, I ran into a bug, changed one of them into .equals() instead, and it fixed the bug. Is == bad? When should it and should it not be used? What's the difference? 저는 문자열 비교를 위해 지금까지 ==를 사용해왔습니다. 그런데 버그가 났습니다..

Language/Java 2020.12.11

String.intern() 이란? 언제 사용하는가?

우리는 String 문자열 비교 시 흔히 equals()를 사용하지만, 메모리나 속도를 고려해 == 연산자를 사용하는 경우를 보게 됩니다. 이 때에 사용되는 메서드가 intern()인데요. intern() 은 무엇이고 어떻게 쓰일까요? 그전에 String pool에 대한 이해가 필요합니다. String pool 이란? Pool 하면 보통 수영장 풀, 풀장 등을 떠올리실 텐데요. 이처럼 String pool 하면 string이 존재하는 영역을 생각하시면 될 것 같습니다. 같은 String이지만 생성 방식에 따라 차이가 있어 문자열 비교 시 혼란을 주기도 하는데요. 다음 예제를 통해 설명해보겠습니다. String a = "apple"; String b = new String("apple"); String c..

Language/Java 2020.12.10