일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 백준
- Kotlin
- JPA
- K8s
- 자바 ORM 표준 JPA 프로그래밍
- Stream
- 스트림
- 스프링
- 토비의 스프링 정리
- Collection
- Real MySQL
- 쿠버네티스
- spring
- SpringBoot
- gradle
- mysql
- MSA
- 자바
- Java
- GC
- 보조스트림
- jvm
- 이스티오
- redis
- list
- IntellJ
- thread
- Stack
- OS
- 토비의 스프링
- Today
- Total
목록Java (58)
인생을 코딩하다.

Set은 순서에 상관 없이, 어떤 데이터가 존재하는지를 확인하기 위한 용도로 많이 사용된다. 중복되는 것을 방지하고, 원하는 값이 포함되어 있는지를 확인하는 것이 주 용도다. Map 인터페이스의 Key만 사용하고 value는 항상 같은 Dummy 값을 넣어두고 사용하지 않는다. HashSet : 순서가 전혀 필요 없는 데이터를 해시 테이블에 저장한다. Set 중에 가장 성능이 좋다. 내부적으로 HashMap를 사용한다. TreeSet : 저장된 데이터의 값에 따라서 정렬되는 셋이다. red-black이라는 트리타입으로 값이 저장되며, HashSet 보다 약간 성능이 느리다. 내부적으로 TreeMap을 사용한다 LinkedHashSet : 연결된 목록 타입으로 구현된 해시 테이블에 데이터를 저장한다. 저장..

List는 Collection 인터페이스를 확장하였다. 따라서, 몇몇 추가된 메소드를 제외하고는 Collection에 선언된 메소드와 큰 차이는 없다. Collection을 확장한 인터페이스와 다른 인터페이스와 List 인터페이스의 가장 큰 차이점은 배열처럼 '순서' 가 있다는 것이다. List 인터페이스를 구현한 클래스들중에서 java.util 패키지에서는 ArrayList, Vector, Stack, LinkedList를 많이 사용한다. ArrayList와 Vector 클래스의 사용법은 거의 동일하고 기능도 거의 비슷하다. 이 두 클래스는 "확장 가능한 배열" 이라고 생각하면 된다. 차이점은 Vector은 Thread safe하고, ArrayList는 Thread safe하지 않다. /* Vector..

Collection 인터페이스는 java.util 패키지에 선언되어 있으며, 여러 개의 객체를 하나의 객체에 담아 처리할 때 공통적으로 사용되는 여러 메소드들을 선언해 놓았다. 이중에 유일하게 Map 만이 Collection과 관련 없는 별도의 인터페이스로 선언되어 있다. Collection의 인터페이스는 다음과 같이 선언되어 있다. public interface Collection extends Iterable { Iterable 이라는 인터페이스를 확장하고 있다. Iterable 인터페이스에 선언되어 있는 메서드는 iterator() 메소드 하나가 있다. 더보기 Iterator라는 인터페이스에는 추가 데이터가 있는지 확인하는 hasNext() 메소드, 현재 위치를 다음 요소로 넘기고 그 값을 리턴해주..

public class ReferencePass { public static void main(String[] args) { ReferencePass reference = new ReferencePass(); reference.callPassByValue(); } public void callPassByValue() { int a = 10; String b = "hyungil"; System.out.println("before passByValue"); System.out.println("a=" + a); System.out.println("b=" + b); passByValue(a, b); System.out.println("after passByValue"); System.out.println("a=..
열거형(enum) - 관련된 상수들을 같이 묶어 놓은 것, Java는 타입에 안전한 열거형을 제공 class Card { // 카드 무늬 static final int CLOVER = 0; static final int HEART = 1; static final int DIAMOND = 2; static final int SPADE = 3; // 카드 숫자 static final int TWO = 0; static final int THREE = 1; static final int FOUR = 2; final int Kind; final int num; } 이렇게 일일이 하나씩 상수를 정의하다 보면 너무 많다. 그래서 간단히, class Card{ // 0, 1, 2, 3 enum kind { CLOVE..

직렬화(Serialization) 인스턴스의 상태를 그대로 저장하거나 네트워크로 전송하고 이를 다시 복원하는 (Deserialization)하는 방식 ObjectInputStream과 ObjectOutputStream 시용 보조스트림 객체의 상태를 영속화 하는 메커니즘 객체를 다른 환경(File, db)에 저장했다가 나중에 재구성 할 수 있게 만드는 과정 언제쓸까? 객체의 상태를 영속해야 할 필요가 있을때 , 즉 어딘가에 저장해야 할 필요가 있을때 (여기서 저장이라는 것은 파일이나 데이터베이스가 될 수도 있고, 캐시와 같은 메모리가 될 수도 있다.) 정보를 전달할 필요가 있을 때 (다른 VM (버츄얼머신) 에게 객체의 정보를 전송해야 할 시에 바이트 스트림으로 변환해서 전송해야 할 때) Serializa..

보조스트림 - 실제 읽고 쓰는 스트림이 아닌 보조적인 기능을 추가하는 스트림 - FilterInputStream과 FilterOutputStream이 보조스트림의 상위 클래스 생성자의 매개 변수로 또 다른 스트림을 가짐 생성자 설명 protected FilterInputStream(InputStream in) 생성자의 매개변수로 InputStream을 받는다. public FilterOutputStream(OutputStream out) 생성자의 매개변수로 OutputStream을 받는다. 데코레이터 패턴 형식이다. 여러가지 보조 스트림 사용하기 Buffered 스트림 : 내부에 8192 바이트 배열을 가지고 있음, 읽거나 쓸 때 속도가 빠름 DataInputStream/DataOutPutStream :..

문자 단위 스트림 Reader : 문자 단위로 읽는 최상위 스트림 Writer : 문자 단위로 쓰는 최상위 스트림 추상 메서드를 포함한 추상 클래스로 하위 클래스가 상속받아 구현 하위클래스 스트림 클래스 설명 FileReader 파일에사 문자 단위로 읽는 스트림 클래스 InputStreamReader 바이트 단위로 읽은 자료를 문자로 변환해 주는 보조 스트림 클래스 BufferedReader 문자로 읽을 때 배열을 제공하여 한꺼번에 읽을 수 있는 기능을 제공해 주는 보조 스트림 스트림 클래스 설명 FileWriter 파일에 문자 단위로 출력하는 스트림 클래스 OutputStreamWriter 파일에 바이트 단위로 출력한 자료를 변환해 주는 보조 스트림 BufferedWriter 문자로 쓸 때 배열을 제공..