개발 지식/Java
-
[Java] 정규표현식 캡처 그룹과 비캡처 그룹개발 지식/Java 2024. 1. 7. 11:32
정규표현식에서 그룹이란 ()로 감싸진 부분들을 의미한다. 캡처 그룹은 매칭 결과에서 해당 부분의 정보를 추출할 수 있는 그룹을 의미하고 비캡처 그룹은 해당 부분의 정보를 추출할 수 없는 그룹을 의미한다. 예시 String input = "A123 B456 C789"; Pattern pattern = Pattern.compile("([A-Z])(\\d+)"); Matcher matcher = pattern.matcher(input); while (matcher.find()) { System.out.println("전체 매칭: " + matcher.group(0)); // 전체 매칭 System.out.println("첫 번째 그룹: " + matcher.group(1)); // 첫 번째 그룹 (대문자) S..
-
[Java] 가변인자 (varargs)개발 지식/Java 2023. 11. 15. 14:00
가변인자란? - jdk 1.5부터 지원하는 기능으로 매개변수의 개수를 동적으로 지정해 줄 수 있게 하는 기능을 의미한다. - 가변인자는 타입... 변수명 과 같은 형식으로 선언한다. 가변인자의 특징 - 가변인자는 매개변수 중에서 가장 마지막에 선언해야 한다. (마지막이 아닌 경우 구별할 수 없기 때문) - 인자가 아예 없는 경우와 배열을 인자로 받는 경우도 가능하다. - 내부적으로 배열을 이용하기 때문에 선언된 메서드를 호출할 때마다 배열이 새로 생성된다. - 오버로딩시 애매한 상황이 발생할 수 있기 때문에 가급적 오버로딩하지 않는 것이 좋다. public class Main { public static void main(String[] args) { System.out.println(concatenat..
-
[Java] 배열과 List 사이의 변환개발 지식/Java 2023. 11. 15. 12:10
배열 -> List - 아래의 1번과 2번 방식에서 Arrays.asList를 List.of로 변경하여도 동작하지만 조금의 차이가 발생한다. - 둘의 차이점은 아래의 글에 정리해두었다. https://prospective-developer-seo.tistory.com/111 [Java] Arrays.asList()와 List.of()의 차이 공통점 - 매개변수로 가변인자를 받아서(여러 요소나 배열도 가능) list를 반환한다. - 리스트의 크기를 변경할 수 없다. 차이점 변경 가능 여부 - Arrays.asList()로 반환된 list는 변경이 가능하지만 Li prospective-developer-seo.tistory.com 1. Arrays.asList(array) - 이 경우 고정길이의 List가 ..
-
[Java] Arrays.asList()와 List.of()의 차이개발 지식/Java 2023. 11. 15. 12:08
공통점 - 매개변수로 가변인자를 받아서(여러 요소나 배열도 가능) list를 반환한다. - 리스트의 크기를 변경할 수 없다. 차이점 변경 가능 여부 - Arrays.asList()로 반환된 list는 변경이 가능하지만 List.of()에서 반환된 list는 변경이 불가능하다. - 그 이유는 Arrays.asList()는 Arrays의 내부 클래스인 ArrayList를 반환하고, 여기에는 set 등이 구현되어 있지만 List.of()는 ListN이라는 타입의 객체를 반환하는데, 이는 불변 객체(Immutable object)이기 때문에 수정할 수 없다. (ListN 타입은 정확하게는 ImmutableCollections.ListN 타입이다) Null 허용 여부 - Arrays.asList()는 null을..
-
[Java] 정규표현식(Regular Expression, regex)개발 지식/Java 2023. 7. 27. 14:56
정규표현식이란? 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어 정규표현식 문법 정규표현식 설명 ^ 문자의 시작(한 줄 기준) $ 문자의 끝(한 줄 기준) . 모든 문자 \\w 문자만 허용(여기서 문자는 영문, 숫자 _를 의미) \\W 문자가 아닌 경우에만 허용 \\d 숫자만 허용 \\D 숫자가 아닌 경우에만 허용 \\s 공백 문자만 허용 \\S 공백 문자가 아닌 경우에만 허용 \\b 문자와 문자가 아닌 것의 경계 \\B \\b와 반대로 동작 * 앞의 대상이 0개 이상 + 앞의 대상이 1개 이상 ? 앞의 대상이 0개 또는 1개 {n} n개 {n,} n개 이상 {n, m} n개 이상 m개 이하 () 특정 그룹 [a-zA-Z] 괄호안의 어떤 문자든 [^a-z] 괄호안의 문자들은 제외 특수한..
-
[Java] 인텔리제이 단축키 모음개발 지식/Java 2023. 7. 2. 18:58
윈도우 기준 일단 자주 쓰는 것들만 모아둠 1. Ctrl + Shift + Enter : 세미콜론, 중괄호 등의 자동완성 기능 2. Ctrl + Alt + v : 리턴타입 변수명 자동생성 기능 3. Ctrl + Alt + 방향키(왼쪽, 오른쪽) : 이전의 마우스 커서 위치로 이동 4. Ctrl + 좌클릭 : 해당 클래스로 이동 5. Ctrl + Shift + 방향키(위, 아래) : 해당 위 아래 라인의 코드 위치 서로 변경 6. Ctrl + Shift + Alt + t : Refactor this 옵션 창 제공 7. Ctrl + Alt + n : inline variable 적용 추가사항 앞으로 지속적으로 업데이트 하기!
-
[Java] static, final 키워드를 class에 사용하는 경우개발 지식/Java 2023. 6. 18. 18:27
1. final - final 키워드를 class에 사용하는 경우에 해당 클래스는 더이상 상속을 통한 확장이 불가능하게 된다. 2. static - static 키워드의 경우 외부 클래스에는 사용이 불가능하며 내부 클래스에서 사용할 수 있다. - static 중첩 클래스의 경우 외부 클래스 생성없이 직접 객체를 생성할 수 있다. - static 중첩 클래스의 장점으로는 외부 클래스와 연관된 클래스들을 내부에 grouping 할 수 있다. 3. static final - static 중첩 클래스와 같이 외부 클래스 생성없이 직접 객체를 생성할 수 있으며 해당 클래스는 더이상 상속이 불가능하게 된다.