Java
-
Java: 어플리케이션 실행 옵션 비교 - VM Options / Program ArgumentsJava 2022. 7. 19. 11:59
Java: 어플리케이션 실행 옵션 방식 비교 - VM Options / Program Arguments 자바 어플리케이션은 여러 옵션을 가지고 실행될 수 있습니다. 이 글에서는 옵션들을 설정해주는 두 가지 방법에 대해 알아보고 비교해봅니다. 옵션의 활용과 비교 보통은 배포환경에 따라 별도의 property를 작성해두고, 경우에 따라 다른 property를 읽어가며 배포할 jar를 빌드하는 용도로 많이들 사용하곤 하죠. 아래에서도 해당 상황을 예시로 들어서 설명하려고 합니다. 1. VM Options 옵션을 주는 첫번째 방법은 VM Options입니다. 이름에서 알 수 있듯이, 이 방법을 통해 전달한 키/값은 JVM에 전달됩니다. 누구나 한 번 쯤 메모리 설정과 관련해서 -Xms 어쩌구.. 또는 -Xmx ..
-
Java: Arrays.fill()과 Arrays.setAll()의 차이Java 2022. 7. 12. 13:54
Java: Arrays.fill()과 Arrays.setAll()의 차이 이 글은 Arrays.fill()'과 'Arrays.setAll()의 공통점, 그리고 기억해둘 만한 차이점에 대해 이야기합니다. 공통점 둘 다 배열을 위한 유틸 메서드입니다. 특정한 값으로 초기화 하고 싶을 때 사용할 수 있습니다. 그러니까 예를 들어 이런 코드를 작성하고 싶을 때 사용할 수 있어요. for (int i = 0; i < arr.length; i++) { arr[i] = initialValue; // can be a String, an int, an some Object... } 그런데 이런 코드를 볼 때면 항상 '좀 더 간결하게 할 수 없을까?'란 생각을 하게 되죠. 그 때 사용할 수 있..
-
Java: 오류Error와 예외Exception, Unchecked와 CheckedJava 2022. 6. 17. 17:44
Java: 오류Error와 예외Exception, Unchecked와 Checked 이 글에서는... 오류와 예외를 구분해 설명하고, Unchecked Exception과 Checked Exception을 구분지어 설명해봅니다. 예외의 적절한 처리를 알아봅니다. 일단, 오류Error와 예외Exception 오류와 예외 메시지를 받아주는 Throwable 밑에는 두 클래스가 존재합니다. Error와 Exception이죠. Java API Docs에서는 이렇게 설명하고 있습니다. Error : (파파고 번역) 오류는 적절한 응용 프로그램이 탐지하려고 해서는 안 되는 심각한 문제를 나타내는 폐기 가능한 하위 클래스입니다. 이러한 오류는 대부분 비정상적인 상태입니다. 스레드 데스 오류는 "정상" 상태이긴 하지만..
-
Web Server와 WAS란? 그리고 ServletJava/Java Web 기술 2022. 6. 14. 16:07
Web Server와 WAS란? 그리고 Servlet 웹서버와 웹애플리케이션서버의 역할과 차이를 알아봅니다. 웹 환경이 어떤 식으로 응용애플리케이션을 제공하는지, Apache/Java 진영을 예로 들어 설명합니다. Web Server와 WAS 특징을 최대한 간략하게 요약해볼게요. Web Server 오래된 역사. 정적 리소스(html, image, css, js...) 전달이 주 목적. WAS 상대적으로 최근. 이름으로 보아 알 수 있듯 어플리케이션을 실행할 수 있음. 따라서 동적인 리소스를 제공하는 것이 가능. 그런데 최근 추세는... Web Server도 동적 리소스 제공을 지원하기도 하고, WAS도 리소스를 서빙하기도 하는 등, Web Server와 WAS의 경계가 모호해지고 있습니다. 하지만 WA..
-
Java: Integer.parseInt()와 Integer.valueOf()의 차이점 구분Java 2022. 6. 6. 17:38
Java: Integer.parseInt()와 Integer.valueOf()의 구분 이 글에서는 Integer.parseInt()와 Integer.valueOf()의 차이를 다루지만 비슷한 메서드들(예를 들어 Float.parseFloat() & Float.valueOf())도 동일한 차이가 있다는 것을 알아두면 좋겠습니다. 공통점 둘 다 String이나 char 같은 값 들을 정수형 데이터로 변환하는 메서드입니다. 차이점 parseInt() 메서드는 반환값을 원시형 데이터타입 int로 돌려줍니다. valueOf() 메서드는 반환값을 참조타입 Integer로 돌려줍니다. 형변환이 빈번하게 일어날 수 있으니 상황에 적절한 메서드를 호출하여 사용하면 좋겠습니다.
-
Java: Comparable(compareTo())와 Comparator(compare())의 차이점Java 2022. 5. 17. 14:32
Java: Comparable(compareTo())와 Comparator(compare())의 차이점 오버라이딩과 오버로딩을 헷갈려하던 시절처럼 나란 녀석은 Comparable과 Comparator / compareTo()와 compare()를 계속 헷갈려하는 것이다... 더이상의 뇌절 방지를 위해서 한번 정리해보았다. 이제 그만 헷갈려줘 제발... Comparable과 Comparator는 인터페이스다. 각각 compareTo(T o), compare(T o1, T o2) 메서드를 갖고 있다. compareTo와 compare는 둘 다 비교한다. 그 중 먼저 compareTo()는 자신과 비교값을 비교한다 cls1.compareTo(cls2); 이런식으로 말이다. 객체를 단순히 등호연산자로 비교할 수..
-
Java: String[] split(regex, limit) 사용 예시Java 2022. 5. 17. 08:58
모각코 스터디를 하다가 한 분이 'split() 메서드의 두번째 인자에 -1을 넣어주는 경우에는 무엇이 달라지는 거냐' 하고 질문을 주셨는데 나도 잘 몰라서 알아보았다. 알아본 내용은 정리해야 제맛! String[] String.split(String regex, int limit) 첫번째 인자는 문자열을 구분할 문자열(또는 정규식 표현)입니다. 두번째 인자는 구분된 문자열의 개수를 말합니다. Optional. 사용예시) 원 문자열의 정의가 다음과 같은 경우 String str = "강아지:고양이:멧돼지:공룡"; ":"를 구분자로 사용하면 다음과 같습니다. String[] sArr = str.split(":"); // sArr => {"강아지", "고양이", "멧돼지", "공룡"} 3을 l..
-
생각: Java에는 왜 const(상수)가 없을까?Java 2022. 3. 5. 19:12
🙋 Java에는 왜 const(상수)가 없나요? 사람들과 어떤 주제에 대해서 이야기를 하다보면 신기한 포인트가 있다. 어렵지 않고, 심지어 익숙한 주제라서 다들 잘 알고 사용하겠거니 싶었는데, 알고 보면 제각기 다르게 생각하면서 사용하고 있는 것들 말이다. 오늘 이야기 할 주제가 바로 그런 내용이다. 📝 내용이 너무 길어서, 세 줄 요약 Java에서 상수가 필요하다면 static final 키워드를 쓴다. (대신에 final없이 static만 쓰는 건 지양하자) 상황에 따라 static final을 final로 대체하여 해당 클래스 내부 혹은 해당 객체를 이용하는 곳에서만 상수처럼 쓸 수 있는 상황도 있다. 하지만 그래도 final은 상수가 아니고, 상수처럼 쓰고 있는 것이다. static final로 ..