ALL Post 202

TreeSet

TreeSet TreeSet은 이진 검색 트리binary search tree라는 자료구조의 형태로 데이터를 저장하는 컬렉션 클래스다. 이진 검색 트리는 정렬, 검색, 범위 검색Range Search에 높은 성능을 보인다. TreeSet은 이진 검색 트리의 성능을 향상시킨 레드-블랙 트리Red-Black tree로 구현 되었다. Tree는 여러 개의 node가 서로 연결된 구조다. 가장 상위에 있는 노드를 root라고 한다. 위 아래로 연결된 두 노드를 부모-자식 관계라고 한다. 각 노드에 최대 2개의 노드를 연결할 수 있다. 출처 : 자바의 정석 기초편 요약집 위 표는 TreeSet에 7,4,9,1,5를 순서대로 저장한다고 했을 때 진행과정이다. 맨 처음 저장되는 데이터 7이 루트root가 된다. 그 ..

Java 2020.09.09

HashSet

HashSet HashSet은 Set인터페이스를 구현한 가장 대표적인 컬렉션이다. 다시 상기하자면, Set은 중복 허용 X 순차 저장 X 중복된 데이터를 저장하려고 하면 false를 반환한다. HashSet의 특징을 이용하면 중복을 쉽게 제거할 수 있다. HashSet의 메서드 method 설명 HashSet() (생성자)객체 생성 HashSet(Collection c) 지정한 컬렉션을 포함하는 객체 생성 HashSet(int initialCapacity) 지정한 값을 초기용량으로 하는 객체 생성 HashSet(int initialCapacity, float loadFactor) 초기 용량과 load factor를 지정하는 생성자 boolean add(Object o) 객체 저장 boolean addAl..

Java 2020.09.09

Comparable & Comparator

public interface Comparator { int compare(Object o1, Object o2); } public interface Comparable { public int CompareTo(Object o); } Comparable 기본 정렬 기준을 구현할 때 사용한다. Comparator 기본 정렬 기준 외, 다른 기준으로 정렬할 때 사용한다. package com.javaex.ch11; import java.util.Arrays; import java.util.Comparator; public class ComparatorEx { public static void main(String[] args) { String[] strArr = {"cat", "Dog", "lion", "t..

Java 2020.09.09

Arrays

Arrays 배열을 다루기 편한 static메서드를 제공한다. 배열의 출력 toString() static String toString(boolean[] a) static String toString(byte[] a) static String toString(char[] a) ... ... static String toString(Object[] a) println메서드처럼 모든 타입을 출력할 수 있게 오버로딩 되어 있다. 배열 복사 copyOf() 배열 전체를 복사한다. copyOfRange() 배열 일부를 복사한다. int[] arr = {0,1,2,3,4}; int[] arr2 = Arrays.copyOf(arr, arr.length); //0,1,2,34 int[] arr3 = Arrays.cop..

Java 2020.09.09

List

ArrayList ArrayList는 컬렉션 프레임워크에서 가장 많이 사용하는 클래스다. Object를 이용해 순차적으로 데이터를 저장한다. 저장 공간이 없으면 동적으로 크기가 늘어난다. 새로운 배열을 만들어서 기존의 배열을 복사해 다시 저장한다. public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, java.io.Serializable { ... transient Object[] elementData; //Object배열 ... } ArrayList의 소스 일부다. elementData라는 이름의 Object[]를 멤버 변수로 선언해놨다. 따라서 ArrayList는 모든 타입의 객체를 담을 수 있다. A..

Java 2020.09.09

Stack & Queue

📚 자바의 정석을 정리한 내용입니다. 출처 : https://gohighbrow.com/stacks-and-queues/ 스택은 마지막에 저장한 데이터를 가장 먼저 꺼내는 Last in first out(LIFO)구조. 큐는 처음 저장한 데이터를 가장 먼저 꺼내는 First in first out(FIFO)구조다. 참고로 Stack은 클래스, Queue는 인터페이스다. Stack의 메서드 method 설명 boolean empty() Stack이 비었는지 확인 Object peek() Stack 맨 위에 저장된 객체를 반환 pop과 달리 꺼내는 것은 아님 비어 있다면 EmptyStackException Oject pop() 맨 위에 저장된 객체를 꺼낸다. 비었다면 역시 EmptyStackExcption ..

Java 2020.09.09

Collections Framework - 핵심 인터페이스

📚 자바의 정석을 정리한 내용입니다. Collections Framework는 다수의 데이터를 다루는 데 필요한 다양한 클래스를 제공한다. 핵심 인터페이스 상속계층도 이미지 출처 : http://dinfree.com/lecture/language/112_java_6.html interface 특징 구현 클래스 List 순서가 있는 데이터 집합. 중복 허용 ArrayList, LinkedList, Stack, Vector 등 Set 순서를 유지하지 않는 데이터 집합. 중복 없음. HashSet, TreeSet Map key, value 쌍(pair)으로 이루어진 데이터 집합. 순서 유지 안 됨. key는 중복 안 됨. HashMap, TreeMap, Hashtable, Properties 컬렉션 프레임워크..

Java 2020.09.09

내부 클래스inner class

📚 자바의 정석을 정리한 내용입니다. 내부클래스의 종류 내부 클래스는 단순히 클래스 내에 선언된 클래스다. 내부 클래스의 장점 1.내부 클래스에서 외브 클래스 멤버에 쉽게 접근 가능 2.코드 복잡성을 줄인다(캡슐화) 위 다이어그램에서 보다시피 내부 클래스는 클래스의 멤버처럼 다룬다. 다른 점은 익명 클래스Anonymous class가 있다. 내부클래스의 제어자, 접근성 자바의 정석 예제에 간단히 주석을 달았습니다. class Outer { class InstanceInner { int iv = 100; } static class StaticInner { int iv = 200; static int cv = 300; } void myMethod() { class LocalInner { int iv = 40..

Java 2020.09.09

추상클래스 & 인터페이스

이미지 출처 : https://learn-tech-tips.blogspot.com/2016/07/object-oriented-programming-abstract-class-vs-interface.html 추상 클래스abstract class 추상 클래스란? 미완성 클래스 즉, 완성되지 않은 abstract 메서드를 포함하고 있는 클래스라는 뜻이다. 추상 메서드abstract method 메서드는 선언부와 구현부로 나눈다. 선언부만 있고 구현부는 작성하지 않은 메서드를 추상 메서드라고 부른다. 추상 클래스를 상속받는 자손 클래스는 부모 클래스가 가진 모든 추상 메서드를 구현해야만 한다. 추상 클래스는 해당 클래스를 상속 받을 자손들이 사용하는 공통 부분을 뽑아내서 정의한다. 추상 클래스를 사용하는 이유는..

Java 2020.09.09

NoSuchBeanDefinitionException: No bean named 'dataSource' available

스프링 시큐리티 로그인 방법 중에 JDBC를 이용한 로그인 인증 테스트를 진행했다. 그런데 하루종일 dataSource를 찾을 수 없다는 에러NoSuchBeanDefinitionException: No bean named 'dataSource' available가 났다. 처음엔 dataSource가 잘 연결 되지 않은 줄 알고 root-context.xml을 만지작거렸다. 딱히 잘못된 부분은 없었다. url, id, pw 모두 잘 설정되어 있었다. 테스트 클래스를 만들어서 DataSource가 잘 동작하는지 테스트 해봤을 때도 문제가 없었다. security-context.xml에서도 크게 문제될 건 없었다. 문제는 web.xml에 있었다. 이렇게 파라미터 값이 따로 설정되어 있었다. 이것을 이렇게 하나..

ERROR!!!!!!! 2020.09.09