프로그래밍

    Set 인터페이스

    Set 인터페이스

    🧐 Set Interface란? Set 인터페이스는 중복을 허용하지 않고, 저장순서가 유지되지 않는 컬렉션 클래스를 구현하는데 사용된다. (LinkedHashSet은 Set을 상속받음에도 불구하고 입력 순서대로의 저장순서를 보장하고 있다. 그러나 중복은 아니다.) 기본적으로 List 계열은 index(Node)로 관리하기에 add()같은 메서드를 쓰면 순서대로 저장이 되었다. Queue 계열 또한 PriorityQueue(우선순위 큐)를 제외하고는 입력 순서대로 객체가 연결되어 있다. 하지만 Set의 경우 일반적으로 입력받은 순서와 상관없이 데이터를 집합시키기 때문에 입력받은 순서를 보장할 수 없다. 이러한 순서 보장을 개선하기 위해 만들어진 것이 LinkedHashSet이다. 만약 중복은 허용하고 싶지..

    Queue 인터페이스

    Queue 인터페이스

    🧐 Queue Interface(큐 인터페이스)란? Queue Interface는 선형 자료구조로 순서가 있는 데이터를 기반으로 선입선출(FIFO, First In First Out)을 위해 만들어진 인터페이스이다. 큐는 1,2,3,4 순으로 데이터를 넣으면 꺼낼 때 넣은 순서대로 1,2,3,4로 나오는 구조라는 것이다. 가장 앞쪽은 head(헤드)이고, 가장 뒷쪽은 tail(꼬리)라고 부른다. Queue를 상속하고 있는 Deque(덱)이라는 Interface도 있다. Queue는 한쪽 방향으로만 삽입과 삭제가 가능하지만 Deque는 Double-ended Queue라는 의미로 양쪽에서 가능하다. Stack의 성질과 Queue의 성질을 모두 가지고 있는 자료구조이다. 📝 Queue Interface에 정..

    List 인터페이스

    List 인터페이스

    🧐 List Interface(리스트 인터페이스)란? List Interface는 선형 자료구조로 순서가 있는 데이터를 목록으로 사용할 수 있도록 만들어진 인터페이스이다. 배열은 우리가 선언한 공간 외에는 더 이상 사용할 수 없다. 이런 배열의 단점을 보완하여 List를 통해 구현된 클래스들은 동적 크기를 가지면서 배열처럼 사용할 수 있다. 특징으로는 다음과 같다. 요소의 저장 순서가 유지 같은 요소의 중복 저장 허용 배열의 기능 + 동적 크기 할당 Java에서는 두 가지 범용 List 구현이 있다. 일반적으로 사용하는 ArrayList 특정 상황에서 더 나은 성능을 제공하는 LinkedList 위의 List 구현말고도 잘 사용하지 않는 두 가지가 더 있다. Vector Stack 🧐 List Inter..

    Java 줄바꿈문자 \n 이란?

    Java 줄바꿈문자 \n 이란?

    *23.03.31 수정 자바를 쓰다보면 System.out.print("\n"); 을 쓸 때가 있다. 이러면 줄바꿈이 되어 한 줄 밑으로가서 새로운 라인을 추가하게 된다. 즉, "\n"은 개행문자(줄바꿈 문자)인 것이다. 우리가 흔히 쓰는 Enter키처럼 줄을 바꿔주는 문자라고 생각하면 편하다. 실제로 Enter키와 "\n"이 어떤 값으로 쓰이는지 살펴보자. 🚀 '\n' 과 Enter키의 인코딩 값 이렇게 실행하고 콘솔에 Enter키를 입력하면 10이라는 인코딩값이 나온다. 'a'는 97이라는 인코딩 값이 나온다. 왜 '\n'와 Enter키는 10이 나오고, 'a'는 97이 나올까? 이것은 해당 문자를 표현하기 위한 인코딩 값이다. 인코딩값은 대부분 1~127까지 똑같으니 아스키코드표를 살펴보자. 빨간색..

    JVM(자바가상머신)이란? - Part 3, ClassLoader

    JVM(자바가상머신)이란? - Part 3, ClassLoader

    * 2023.05.24 내용 추가 JVM(자바가상머신)이란? - Part 1, 소개 자바를 쓰는 개발자라면 누구나 들어봤을 JVM(Java Virtual Machine)을 알아보려고 한다. 자바 바이트코드가 JRE에서 동작을 하는데, 이 JRE에서 가장 중요한 요소는 자바 바이트코드를 해석하고 실행하 ssdragon.tistory.com JVM(자바가상머신)이란? - Part 2, Execution Engine JVM(자바가상머신)이란? - Part 1 자바를 쓰는 개발자라면 누구나 들어봤을 JVM(Java Virtual Machine)을 알아보려고 한다. 자바 바이트코드가 JRE에서 동작을 하는데, 이 JRE에서 가장 중요한 요소는 자바 ssdragon.tistory.com JVM(자바가상머신)이란? ..

    자바 getBytes()

    자바 getBytes()

    🤔 getBytes()이란? getBytes() 메서드는 String(문자열)을 default charset으로 인코딩하여 byte 배열로 반환해준다. 이 문자열(String)을 플랫폼의 default charset을 사용하여 바이트의 시퀀스로 인코딩하고, 새로운 바이트 배열에 결과를 저장한다. 이 문자열이 default charset으로 인코딩 할 수 없는 경우 이 메서드의 동작은 지정되지 않는다. 이 java.nio.charset.CharsetEncoder 클래스는 인코딩 과정에 더 많은 제어가 필요할 때 사용한다. Return : 위 내용에서 언급한 결과로 생긴 byte 배열 즉, 우리가 사용하는 IDE의 default charset을 사용하여 문자열을 byte로 인코딩하여 byte 배열에 넣어서 ..

    자바 toCharArray()

    자바 toCharArray()

    🤔 toCharArray()란? String 문자열을 char형 배열로 바꿔서 반환해주는 메서드이다. "ABCD" 라는 문자열이 있으면 arr[0] = 'A' arr[1] = 'B' arr[2] = 'C' arr[3] = 'D' 위 값처럼 char 배열을 반환해준다. 이 메서드는 String 메서드로 한번 살펴보자. 다음은 String 클래스에 정의된 toCharArray() 메서드이다. 이 문자열을 새 문자 배열로 변환합니다. Returns : 새로 할당된 문자배열의 길이는 이 문자열의 길이이고, 이 문자배열의 내용은 문자열에 포함하는 문자 내용을 순서대로 초기화한다. 즉, String으로 받은 문자열을 char 문자로 쪼갠 뒤 char[]배열에 순서대로 값을 넣어 반환한다는 뜻이다. 위에 예시로 적어..

    JVM(자바가상머신)이란? - Part 2, Execution Engine

    JVM(자바가상머신)이란? - Part 2, Execution Engine

    JVM(자바가상머신)이란? - Part 1, 소개 자바를 쓰는 개발자라면 누구나 들어봤을 JVM(Java Virtual Machine)을 알아보려고 한다. 자바 바이트코드가 JRE에서 동작을 하는데, 이 JRE에서 가장 중요한 요소는 자바 바이트코드를 해석하고 실행하 ssdragon.tistory.com JVM(자바가상머신)이란? - Part 3, ClassLoader JVM(자바가상머신)이란? - Part 1 자바를 쓰는 개발자라면 누구나 들어봤을 JVM(Java Virtual Machine)을 알아보려고 한다. 자바 바이트코드가 JRE에서 동작을 하는데, 이 JRE에서 가장 중요한 요소는 자바 ssdragon.tistory.com JVM(자바가상머신)이란? - Part4, Runtime Data Ar..