검색결과 리스트
글
!markdown
# Java
### 1. Error (에러)
```log
java.lang.StackOverflowError
at java.util.regex.Pattern$Branch.match(Pattern.java:4110)
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4168)
at java.util.regex.Pattern$Loop.match(Pattern.java:4295)
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4227)
at java.util.regex.Pattern$BranchConn.match(Pattern.java:4078)
at java.util.regex.Pattern$CharProperty.match(Pattern.java:3345)
at java.util.regex.Pattern$Branch.match(Pattern.java:4114)
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4168)
at java.util.regex.Pattern$Loop.match(Pattern.java:4295)
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4227)
at java.util.regex.Pattern$BranchConn.match(Pattern.java:4078)
at java.util.regex.Pattern$CharProperty.match(Pattern.java:3345)
at java.util.regex.Pattern$Branch.match(Pattern.java:4114)
```
### 2. Problem (문제)
보통 `StackOverFlow` 에러는 무한 루프가 발생할 경우의 수를 간과했을 때 발생한다.
하지만, `복잡한 정규식`과 `큰 문자열`로도 일어날 수 있다.
정말 무수히 많은 경우의 수를 파악하려면 많은 검증 로직이 실행되어야 하기 때문일 것 같다.
### 3. Solved (해결)
기본적으로 JVM에 Stack의 메모리크기가 `512KB` 또는 `1MB`로 할당되어 있다.
부족하다면?
좋은 해결책인지는 모르겠으나, `Xss`이라는 JVM옵션으로 StackOverFlow가 발생하는 제한 수치를 늘릴 수 있다.
- 20MB 할당 예)
```
-Xss20m
```
### 4. ETC (기타)
- set initial Java heap size
```
-Xms<size>
```
- set maximum Java heap size
```
-Xmx<size>
```
- set java thread stack size
```
-Xss<size>
```
### 4. Reference (참고)
- java.lang.StackOverflowError while using a RegEx to Parse big strings: [https://stackoverflow.com/questions/7509905/java-lang-stackoverflowerror-while-using-a-regex-to-parse-big-strings](https://stackoverflow.com/questions/7509905/java-lang-stackoverflowerror-while-using-a-regex-to-parse-big-strings)
- java.lang.StackOverflowError – How to solve StackOverflowError: [https://examples.javacodegeeks.com/java-basics/exceptions/java-lang-stackoverflowerror-how-to-solve-stackoverflowerror/](https://examples.javacodegeeks.com/java-basics/exceptions/java-lang-stackoverflowerror-how-to-solve-stackoverflowerror/)
- How to increase Heap size of JVM [duplicate]: [https://stackoverflow.com/questions/6452765/how-to-increase-heap-size-of-jvm](https://stackoverflow.com/questions/6452765/how-to-increase-heap-size-of-jvm)