본문 바로가기

Web/JAVA

(22)
[Generics] 제네릭 알아보기 https://inpa.tistory.com/entry/JAVA-%E2%98%95-%EC%A0%9C%EB%84%A4%EB%A6%ADGenerics-%EA%B0%9C%EB%85%90-%EB%AC%B8%EB%B2%95-%EC%A0%95%EB%B3%B5%ED%95%98%EA%B8%B0 ☕ 자바 제네릭(Generics) 개념 & 문법 정복하기 제네릭 (Generics) 이란 자바에서 제네릭(Generics)은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법을 의미한다. 객체별로 다른 타입의 자료가 저장될 수 있도록 한다. 자바에서 배 inpa.tistory.com 제네릭 : 클래스 내부에서 사용할 데이터타입을 외부에서 지정하는 기법이다. 각 객체별로 다른 타입의 자료가 저장될 수 있도록 해준다. A..
[비교] Object.equals() 와 equals() equals() 를 사용할 때 비교하는 예시가 null 일 경우 에러가 난다. NullPoitException public class Equals { public static void main(String[] args) { String a = null; String b = "b"; if(a != null & aa.equals(b)) { System.out.println("a equal to b"); } } } 굳이 널 여부까지 체크해줘야된다는 말임 public class Equals { public static void main(String[] args) { String a = null; String b = null; String c = "apple"; String d = "apple"; System.o..
[단일요소배열] Collections.singletonList 와 Arrays.asList https://prohannah.tistory.com/85 Java 단일 요소의 배열 Collections.singletonList vs Arrays.asList 나의 개발 친구 intelliJ가 친절하게 알려주었다. 단일 요소의 배열에는 asList() 대신 singletonList()를 사용해달라고. intelliJ가 괘 이러한 가이드를 주었는지 IntelliJ의 설명을 읽어 보자. [요약] 메모리 prohannah.tistory.com 메모리 절약을 위해서 empty인지 아닌지를 체크하기 위해서는 Collections.singletonList 를 사용하는게 좋다. Collections.singletonList() 변경여부 : immutable (불변) 사이즈 : size가 1로 고정됨(지정된 단일 ..
SpringTokenizer StringTokenizer 클래스는 문자열 파싱(parsing)을 위한 정보를 제공하는 클래스로 파싱(parsing)하고자 하는 문자열을 인자로 받아 생성하는데, 여기에서 파싱(parsing)이란 하나의 문자열을 여러 문자열로 나누는 작업을 의미하게 되며, 이 때 나누는 단위가 되는 문자열을 토큰(token)이라고 한다. StringTokenizer 클래스를 사용하기 위해서는 java.util 패키지의 String.Tokenizer를 import 해야 한다. StringTokenizer 클래스는 호환성을 유지하는 목적으로 보관 유지되고 있으며 문자열을 파싱(parsing)하기 위해서는 String 클래스의 split() 메소드난 java.util.regex 패키지를 사용할 것을 권장하고 있다. ▪ 생성..
데이터 구조 Array 메모리에 연속적으로 데이터를 저장하는 자료구조 탐색 O(1): 인덱스를 사용해 Random Access 가능 삽입/삭제 O(N): 삽입/삭제한 원소보다 큰 인덱스를 갖는 원소들을 Shift해야 함 크기 고정적 (선언 시 지정한 크기 변경 불가): Immutable Cache Locality가 좋아 Cache Hit 가능성이 큼 Linked List 메모리가 불연속적으로 배치된 자료구조 다음 노드를 가리키는 주소인 포인터를 통해 접근하는 자료구조 (자료의 주소 값으로 서로 연결) 탐색 O(N): 데이터 검색 시 처음 노드부터 순회하는 순차 접근 삽입/삭제 O(1): 주소의 연결만 바꾸면 됨 -> 하지만, 삽입/삭제할 원소를 찾는 것에 O(N)이 걸림 Array vs Linked List 삽입/삭..
[Java Stream] skip() vs limit() 더보기 https://www.baeldung.com/java-stream-skip-vs-limit skip() 과 limit() 의 차이 skip() method skip(n) stream 의 n번째 요소를 버리는 중간 작업 n은 음수일 수 없으며, stream 보다 크기가 클 경우 빈 스트림을 리턴시킴 Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) .filter(i -> i % 2 == 0) .skip(2) .forEach(i -> System.out.print(i + " ")); 6 8 10 이 나옴 filter 에서 2, 4, 6, 8, 10 이 나옴 여기서 skip 2 i % 2 == 0) .limit(2) .forEach(i -> System.out.print(i + ..
[Java 17] 특징 및 예제 코드 더보기 https://youngwonhan-family.tistory.com/entry/Java-17-%EC%A3%BC%EC%9A%94-%ED%8A%B9%EC%A7%95-with-%EC%98%88%EC%A0%9C-%EC%83%98%ED%94%8C-%EC%BD%94%EB%93%9C 블로그 참조 + 예제코드를 내 것처럼 만들어서 따라해보기 1. record (from java 14) record 는 간결하고 변경 불가한 객체 타입이다 public class Test { private String name; private int numbering; public Test(String name, int numbering){ this.name = name; this.numbering = numbering; } ge..
[Java 17] 알아보기 더보기 https://intrepidgeeks.com/tutorial/differences-and-features-of-different-java-versions#17 Java 8이 대규모 release 였다고 한다 Lambda, stream interface default method Optional new Date and Time API(LocalDateTime, …) 등의 기능이 추가되었다. 특히 요즘 공부하고 있던 stream이랑 default meethod 사용하는 것, repositiory에서 자주 쓰는 Optional 과 new Date and Time API Java11 에서는 Oracle JDK와 OpenJDK 통합 Oracle JDK가 구독형 유료 모델로 전환 서드파티 JDK 로의 이전..

728x90