일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링 mvc1 - 서블릿
- 2024 정보처리기사 수제비 실기
- 스프링 입문(무료)
- 자바의 정석 기초편 ch6
- @Aspect
- 자바의 정석 기초편 ch3
- 자바의 정석 기초편 ch8
- 스프링 mvc2 - 검증
- 스프링 db2 - 데이터 접근 기술
- 자바의 정석 기초편 ch5
- 자바의 정석 기초편 ch12
- 자바의 정석 기초편 ch9
- 자바의 정석 기초편 ch2
- 스프링 db1 - 스프링과 문제 해결
- 자바의 정석 기초편 ch4
- 자바의 정석 기초편 ch11
- 스프링 mvc2 - 로그인 처리
- jpa - 객체지향 쿼리 언어
- 스프링 mvc2 - 타임리프
- 코드로 시작하는 자바 첫걸음
- 타임리프 - 기본기능
- 자바의 정석 기초편 ch1
- 게시글 목록 api
- 자바의 정석 기초편 ch13
- 자바의 정석 기초편 ch7
- 스프링 mvc1 - 스프링 mvc
- jpa 활용2 - api 개발 고급
- 스프링 고급 - 스프링 aop
- 자바의 정석 기초편 ch14
- 2024 정보처리기사 시나공 필기
- Today
- Total
목록유튜브 공부/JAVA의 정석 기초편(유튜브) (75)
나구리의 개발공부기록
1) 애노테이션주석처럼 프로그래밍 언어에 영향을 미치지 않으며 유용한 정보를 제공함특정 프로그램에 정보 제공을 위한 것(설정 정보 등)Annotation 은 인터페이스애노테이션 사용 예시 2) 표준 애노테이션Java에서 제공하는 애노테이션의 종류하얀색 - 표준애노테이션갈색 - 매타애노테이션 : 애노테이션을 만들 때 사용(1) @Override오버라이딩을 올바르게 했는지 컴파일러가 체크하게 함오버라이딩 할 때 메서드 이름을 잘못적는 실수를 하는 경우가 많은데 이를 방지할 수 있음오버라이딩 할 때는 메서드 선언부 앞에 @Override를 붙이는 것을 권장class Parent { void parentMethod() {}}class Child extends Parent { void parentmethod() ..
1) 제네릭타입의 형변환제네릭타입과 원시 타입간의 형변환은 바람직 하지 않음 (가능 하지만 경고 발생)JDK1.5 이후부터는 원시타입을 쓰는 것 자체가 바람직 하지 않으며 서로 다른타입이 대입된 제네릭타입은 형변환이 불가함와일드카드가 사용된 제네릭 타입으로는 형변환 가능하며 와일드카드 문장에 따라 달라지며 경고가 발생할 수 있음(1) 예시Box objBox = null;Box box = (Box)Box; // OK. 제네릭타입 -> 원시타입 / 경고 발생objbox = (Box)Box; // OK. 원시타입 -> 제네릭타입 / 경고 발생Box objBox = null;Box strBox = null;objBox = (Box)strBox; //에러. 서로 다른타입이 대입된 제네릭타입끼리의 형변환 불가str..
1) 제네릭스가 적용된 Iterator 기존의 Iterator 인터페이스가 정의 되었을 때는 Object클래스가 직접 쓰였지만 이후에는 제네릭이 적용되어 타입변수로 메서드를 정의하고 있음Iterator를 사용 시 제네릭스를 적용하면 형변환 없이 지정한 타입의 참조변수에 참조값을 저장할 수 있음 (1) 예제ArrayList와 Iterator에 제네릭스를 적용하여 형변환 없이 값을 출력하는 예제import java.util.*;class Ex12_2 { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add(new Student("자바왕", 1, 1)); list.add(new Student("자바짱", 1,..
1) 제네릭스(Generics)클래스이름 처럼 작성컴파일시 타입을 체크해주는 기능 - JDK1.5부터 적용됨실행시 에러(프로그램 비정상 종료)보다 컴파일 에러가 더 안전하기 때문에 실행시 발생하는 타입에러를 컴파일 에러로 바꾸기 위해 나옴객체의 타입 안정성을 높이고 형변환의 번거로움을 줄여줌 (ClassCastException - 형변환에러 발생을 막음)(1) 형변환 에러 발생 예제제네릭스 적용 전에는 List와 같은 컬렉션에 여러 타입을 저장할 수 있는데 해당 컬렉션의 값을 조회시 특정 타입으로 고정하여 값을 출력 하려고하면 컴파일 시에는 에러가 발생하지 않지만 실행시에 ClassCastException(형변환에러) 에러가 발생됨제네릭스를 적용하여 컬렉션에 타입을 지정하면 지정한 타입으로만 값을 저장할..
1) Collections클래스컬렉션을 위한 static메서드를 제공, 비슷한 클래스로 Objects(객체 다룰 때) Arrays(배열 다룰 때) 클래스가 있음(1) 컬렉션 채우기, 복사, 정렬, 검색 메서드fill(): 채우기copy():복사sort(): 정렬binarySearch(): 검색Arrays클래스의 메서드와 동일하기 때문에 자세한 설명은 제외(2) 컬렉션의 동기화 - synchronizedXXX()synchronized컬렉션명()인수의 콜렉션들을 동기화함필요할때 컬렉션을 동기화하는 메서드임static Collection synchronizedCollection(Collection c)static List synchronizedList(List list)static Set synchroniz..
1) HashMap과 HashtableHashtable은 동기화가 되어있고 HashMap은 동기화가 되어있지 않음Map인터페이스를 구현하였으며 데이터를 키와 값의 쌍으로 저장함key - 중복불가, value - 중복허용HashMap은 Map인터페이스를 구현한 대표적인 컬렉션 클래스이며 순서를 유지하려면 LinkedHashMap클래스를 사용하면 됨(1) HashMap의 키(key)와 값(value) Hash로 시작하는 컬렉션들은 해싱(hashing) 기법으로 데이터를 저장하며 데이터가 많아도 검색이 빠른 특징을 가지고 있음// HashMap 사용방법HashMap map = new HashMap();map.put("myID", "1234");map.put("asdf", "1111");map.put("asdf..
1) HashSetSet인터페이스를 구현한 대표적인 컬렉션 클래스로 순서가 없고 중복값을 허용하지 않음순서를 유지하려면 LinkedHashSet클래스를 사용객체를 저장하기 전에 기존에 같은 객체가 있는지 확인하고 같은객체가 없으면 저장, 있으면 저장하지 않음boolean add(Object o)는 저장할 객체의 equals()와 hashCode()를 호출해서 자동으로 확인함객체를 Set으로 저장하면 참조값이 저장되어 저장된 논리 값이 같더라도 참조값을 다르므로 Set에 저장이됨객체를 생성할 클래스에 Set의 특징을 적용하려면 equals()와 hashCode()를 직접 오버라이딩하여 값을 비교하도록 하여 실제 저장된 값이 동일하면 중복으로 판단되어 저장하지 않도록 할 수 있음(1) HashSet 주요 메..
1) Iterator(new ver.), Enumeration(old ver.), ListIterator컬렉션에 저장된 데이터를 접근(읽기)하는데 사용되는 인터페이스Enumeration은 Iterator의 구버전ListIterator는 Iterator의 접근성을 향상시킨 것(단방향 -> 양방향 / next()와 previous()가 있음)(1) Iterator 인터페이스의 메서드boolean hasNext() : 읽어 올 요소가 남아있는지 확인, 있으면 true, 없으면 falseObject next() : 다음 요소를 읽어 옴, next()를 호출하기 전에 hasNext()를 호출해서 읽어 올 요소가 있는지 확인하는 것이 안전함void remove() : next()로 읽어 온 요소를 삭제, 값을 읽어..
1) 스택(stack)LIFO구조. 마지막에 저장된 것을 제일 먼저 꺼냄 (Last In First Out)저장(push) 순서와 추출(pop) 순서가 반대저장 0 -> 1 -> 2 / 추출 2 -> 1 -> 0배열 -> Stack구조가 적합2) 큐 (Queue)FIFO구조. 제일 먼저 저장한 것을 제일 먼저 꺼냄(First In FIrst Out)저장(offer) 순서와 추출(poll) 순서가 동일LinkedList -> 큐(Queue)구조가 적합 3) Stack클래스의 메서드(1) Stack클래스의 사용Stack 객체를 직접 생성하여 사용구분메서드설 명확인boolean empty()Stack이 비어있는지 확인Object peek()Stack의 맨 위에 저장된 객체를 조회 / 맨 위에의 데이터를 pee..
1) ArrayList기존의 Vector를 개선한 것으로 구현원리와 기능적으로 동일Vector = 동기화 처리 되어있음, ArrayList = 동기화 처리가 되어있지 않음List인터페이스를 구현 -> 저장 순서유지 , 중복 허용데이터의 저장공간으로 배열을 사용public class Vector extends AbstractList implements List, RandomAccess, Cloneable, java.io.Serializable { ... protected Object[] elementData; // Object[](객체배열 - 다형성) -> 모든 종류의 객체 저장 가능 ...2) ArrayList의 메서드(1) 생성자ArrayList() : 기본생성자, 초기용량의..