본문 바로가기

분류 전체보기520

Arrays 클래스 ch11 - 25 ~ 29 Arrays 클래스 ch11 - 25 Arrays (1 / 4) - 배열을 다루기 편리한 메서드 (static) 제공 static 메서드가 제공되는 클래스의 예시는 아래와 같다. Math 클래스 Object 클래스 Collections 클래스 .. 1. 배열의 출력 - toString() 메서드의 인자로 배열을 넣으면 배열의 데이터를 문자열로 반환해준다. 만약에 배열의 데이터가 {1,2,3,4,5} 였으면, [1,2,3,4,5] 의 형태로 보여 준다. toString() 메서드는 이미지와 같이 오버로딩이 되어 있다. int[] arr = {0,1,2,3,4}; System.out.println("arr = " + Arrays.toString(arr)); 이런식으로 사용 하면 된.. 2023. 9. 20.
Iterator, Enumeration / Map 과 Iterator Iterator : 반복하다 ch11 - 22 Iterator, ListIterator, Enumeration Iterator : 주로 사용 ListIterator : 양방향 읽기 가능 / 잘 사용 하지 않음 Enumeration : 구버전 컬렉션에 저장된 데이터를 접근 할 때 사용하는 인터페이스 이다. [ Iterator 인터페이스의 메서드 ] Iterator 인터페이스의 메서드 에서 핵심 메서드는 딱 두가지 이다. 1) boolean hasNext() >> 확인 (true or false 반환) 2) Object next() >> 읽기 ( 데이터 반환 (Object) ) 두가지 이다. 참고로, Enumeration 인터페이스는 구버전 이다. 구버전의 코드를 확인하는 일이 있을 수도 있으니, 이정도만 .. 2023. 9. 20.
Stack 과 Queue의 활용 (스택 / 큐) ch11 - 19 ~ 21 스택과 큐 의 활용 (Stack & Queue) [ 스택 ] 스택의 활용 예 1) 수식 계산 ( (3 + 2) * 8 ) / 2 2) 수식 괄호 검사 3) 워드프로세서의 undo / redo (작업한것을 취소 / 직전 행동을 되돌리기) 4) 웹 브라우저의 뒤로 / 앞으로 첫 방문을 구글을 했다고 하고, 그 다음 방문을 네이버, 그 다음은 다음을 방문 했다고 치면, 스택의 그림은 아래와 같을것이다. 근데 이때, 웹 브라우저 에서 뒤로가기를 누르면 어떻게 될까 ? 또 하나의 스택을 사용 해서, 다음을 새로운 스택에 옮긴다. 그러면 현재 페이지가 네이버 가 될것 이고, 여기서 만약에 앞으로 가기 버튼을 누르면 새로운 스택 으로 옮긴 다음을 기존 스택에 다시 옮기는 개념 이다. 근데 .. 2023. 9. 19.
의존 주입 class Apple { private Banana banana; public void hello() { banana.hello(); } }//Apple class Banana { public void hello() { .. } }//Banana ============================= main() { Apple apple = new Apple(); apple.hello();//NPE 발생. } apple을 주체로 해서 Banana 클래스의 인스턴스 메서드를 사용 할 수 있을까 ? 정답은 X 이다. NPE 가 발생 한다. 왜냐하면, Banana 클래스가 객체화 되지 않았기 때문 이다. 스프링 프레임워크를 사용한다고 가정하고, Banana 클래스를 객체화 시켜보자. 원래 객체화는 new 키워드.. 2023. 9. 19.
[ Spring Boot ] JDBC 연결 1. 개요 Spring 에서 JdbcTemplate 를 사용 했었다. 반복되는 로직에 사용 되는 템플릿 패턴을 사용한 개념 이였는데, Spring Boot 에서 JDBC 연결을 위한 설정 방법을 정리. 참고 : https://hwanii96.tistory.com/337 Spring JDBC 0. 그동안, Model 에서 DB와의 연결을 위해, JDBC 인터페이스를 구현 했었다. 기존 JDBC 코드 작업시, 로직이 반복 되거나, 유사함을 느꼈고, 이에 따라서, "반복되는 코드를 줄일 수 없을까 ?" 라는 생 hwanii96.tistory.com 2. Spring Boot 에서 JDBC 설정 하기 1) 먼저 Spring Starter Project 를 클릭. 2) 필요한 설정들을 진행 하고, Next 를 클.. 2023. 9. 19.
Stack / Queue (스택 / 큐) ch11 - 15 스택과 큐 (Stack & Queue) 스택 (Stack) : LIFO 구조. 마지막에 저장된 것을 제일 먼저 꺼내게 되는 구조 이다. LIFO 란 ? Last In First Out == 마지막에 넣은것을 제일 먼저 꺼낸다. 밑은 막히고, 위만 뚫린 상자 라고 생각 하면 된다. 0부터 넣었고, 1을 넣었고, 2를 마지막에 넣었다. 이것을 추출 하려면 2를 꺼내고, 1을 꺼내고, 0을 꺼내야 하는 구조 이다. 1 > 2 > 3 > 4 > 5 의 순서로 넣었다면, 5 > 4 > 3 > 2 > 1 의 순서로 꺼내야 한다는 의미 이다. 저장하는것을 push 라고 하고, 추출하는것을 pop 이라고 한다. 큐 (Queue) : FIFO 구조. 제일 먼저 저장한 것을 제일 먼저 꺼내게 된다. FI.. 2023. 9. 17.
LinkedList 와 ArrayList 의 비교 ch11- 12 LinkedList - 배열의 장단점 장점 : 배열은 구조가 간단하고 데이터를 읽는 데 걸리는 시간이 짧다. (접근 시간, access time 이 짧다) 첫번째 요소를 읽는것과 마지막 요소를 읽는 시간이 동일 하다. 만약, int 타입의 배열 [ ] 이라고 가정 하면, 요소 하나당 4byte를 차지하므로, 1은 0x100 2는 0x104 3은 0x108 4는 0x112 5는 0x116 일것이다. 3번째 요소를 가지고 오려면, 0x100 번지 주소에서 배열 요소의 크기 (int 타입 이니까 4byte) 에 index 를 곱하면 n번째 요소의 주소를 쉽게 구할 수 있다. 만약에 n번째 요소가 100번째 라고 했어도, 0x100 번지 + (4byte * 100) 을 하면 바로 해당 요소의 주.. 2023. 9. 17.
ArrayList와 Java API 확인 ch11 - 7 ArrayList List 인터페이스는 순서를 유지 하고, 중복을 허용 한다. List 인터페이스를 구현 받은 클래스들이 존재 한다. Vector은 오래된 클래스라서 저것과 유사한 클래스가 ArrayList 이다. 굳이 차이점을 뽑자면, Vector 클래스는 자체적으로 동기화를 지원하고, ArrayList는 자체적으로 동기화를 지원 하지 않는다. List 인터페이스를 구현 받은 클래스들은 모두, 데이터의 저장 공간으로 배열을 사용 한다. ch11 - 8 ArrayList의 메서드 위의 메서드는 ArrayList의 생성자 이다. 첫번째는 기본생성자 이고, 두번째는 매개변수로 어떤 컬렉션을 주면, 그 컬렉션 안에 저장 되어 있는 데이터를 ArrayList에 저장 할 수 있다. 세번째는 배열의.. 2023. 9. 17.
Collection, List, Set, Map ch11 - 3 Collection 인터페이스의 메서드 List 와 Set 인터페이스 에서 공통 부분을 뽑아낸 인터페이스가 있다. >> Collection 인터페이스. 기본적으로 데이터의 추가, 검색, 삭제 등의 메서드를 가진다. ch11 - 4 List 인터페이스 - 순서 O, 중복 O List 인터페이스를 구현받은 핵심 클래스는 2가지 이다. ArrayList 와 LinkedList 이다. Vector과 Stack은 컬렉션 프레임워크가 표준화 되기 이전의 오래된 클래스들 이다. (Vector 클래스는 ArrayList 클래스와 거의 유사 하다) 마찬가지로 객체 (데이터) 를 추가, 검색, 삭제 하는 메서드가 있다. 당연히, ArrayList 클래스는 List 인터페이스를 구현한 클래스 이고, List.. 2023. 9. 17.