본문 바로가기
반응형

분류 전체보기256

chap_11. Finally 구문 / Try With Resources try 구문이 정상적으로 실행되건, 예외 오류가 발생되건 결과와 상관 없이 finally 로 설정한 구문은 반드시 실행된다. 보통 Finally 구문은 try 내에서 작업하던 내용을 정리할 때 사용한다. (Ex. 파일을 열었다면 Finally를 통해 파일을 닫는다. / 임시파일을 생성하였다면 Finally를 통해 임시파일을 삭제한다.) Try 구문은 아래와 같이 여러 유형으로 생성할 수 있다. * try + catch / try + catch + finally / try+ finally 아래와 같이 catch 구문 없이 try + finally 유형으로도 생성할 수 있는 점을 참고하자. 임시 파일을 쓰는 클래스를 만들어 예시를 학습해보자. 위와 같이 MyFileWirter 객체를 생성하여 파일에 내용을 .. 2023. 7. 10.
chap_11. 예외처리 (Try Catch) / 예외발생시키기(Throw) Java 프로그램 내에서 예상치 못한 상황이 발생됐을 때를 대비하여 예외처리가 필요하다. * 컴파일 오류 : 코드에 문제가 있어 프로그램이 실행되지 않는 경우 * 런타임 오류 : 컴파일은 작동되나 실행과정에서 오류가 발생되는 경우 런타임 오류는 크게 에러 error 와 예외 exception 이 있다. 에러 : 작성한 소스코드를 통해 수습할 수 없는 사례(메모리, 스택오버플로우 등) 예외 : 소스코드를 통해 수습할 수 있는 사례(지정 경로가 잘못된 경우, 호출한 객체가 없는 경우 등) 예를 들어 3/0을 실행하면 숫자를 0으로 나눌 수 없으므로 오류가 발생된다. 위의 try catch 구문을 통해 작성하게 되면 실제 3/0은 실행되지 않았지만 catch 구문으로 오류를 출력하였으므로 "프로그램 정상 종료.. 2023. 7. 10.
chap_10. Stream Stream의 문자 그대로의 뜻은 개울, 시내, 흐르다 라는 의미를 가진다. Java에서 스트림은 '데이터가 흐른다' 라는 의미로 볼 수 있으며 Java에서 스트림을 이용하면 많은 데이터 중 필터링 된 데이터, 요소를 추출할 수 있다. 스트림은 위와같이 Arrays.stream() , Collection.stream() , Stream.of() 등의 형태로 생성할 수 있다. 스트림 사용은 중간연산(Intermediate Operation)과 최종연산(Terminal Operation)이 있다. 중간연산은 중간에 필터링 등의 여러 작업을 진행한다. (filter, map, sorted, distinct, skip) 최종연산은 일련의 작업을 통해 최종적인 결과물로 한번만 사용한다.(count, min, ma.. 2023. 7. 6.
chap_10. 람다식과 함수형 인터페이스 람다식 : 메소드와 비슷하게 동작을 구현하지만 익명클래스처럼 별도의 이름이 없는 간결한 형태의 코드 뭉치 람다식이란 "식별자없이 실행가능한 함수" 함수인데 함수를 따로 만들지 않고 코드한줄에 함수를 써서 그것을 호출하는 방식이라고 생각하시면 되겠습니다. (전달값1, 전달값2, ... ) -> { 코드 } (매개변수, ...)는 오른쪽 중괄호 { } 블록을 실행하기 위해 필요한 값을 제공하는 역할을 합니다. 매개 변수의 이름은 개발자가 자유롭게 지정할 수 있으며 인자타입도 명시하지 않아도 됩니다. -> 기호는 매개 변수를 이용해서 중괄호 { } 바디를 실행한다는 뜻으로 해석하면 됩니다. 위와 같이 문자열을 출력하는 메소드를 람다식으로 변환할 수 있다. 매개변수를 두개 이상 받는 경우에는 위와 같이 만들 수.. 2023. 7. 4.
chap_10. 익명클래스(AnonymousClass) 주문한 커피를 출력하는 메소드를 가지는 클래스를 생성하였다. 이 때 VIP 고객의 경우 서비스를 제공하는 익명클래스를 아래와 같이 생성하였다. 이처럼 익명클래스를 통하여 기존 클래스의 기능을 확장할 수 있다. 위 예제를 통해 볼 때 익명클래스는 specialCoffee 객체만을 위한 기능을 하는 클래스라고 할 수 있다. HomeMadeBurger라는 추상클래스는 본래 상속해서 재정의해야만 객체로 만들 수 있다는 특징을 가진다. 필요할 때마다 익명클래스를 만들어 추상클래스를 구현한 객체를 전달할 수 있다. 2023. 7. 4.
chap_09. Iterator Iterator ) 이터레이터 : 컬렉션 프레임워크에서 배운 List, Set 같은 데이터를 순회함. 커서에 해당하는 글자를 가져오고 한칸씩 이동하면서 글씨를 가져오며, 불필요한 데이터를 쉽게 지울 수 있다. 예제를 통해 이해해보자. 위와 같이 수강생 신청을 받는 List를 생성하였다. 그런데 어떠한 오류로 인해 수강생을 신청할때마다 수강생 이름 뿐아니라 "(알수없음)"이라는 데이터가 추가로 입력되는 오류가 일어났다고 가정해보자. 위와 같이 데이터를 출력하게 되면 이름 사이에 (알수없음)이 추가되어 출력되는 이슈가 발생될 것이다. 위 내용을 Iterator를 이용하여 아래와 같이 출력할 수 도 있다. Iterator Iterator = list.iterator(); 과 같이 이터레이터를 선언할 수 있다... 2023. 7. 4.
chap_09. HashMap 컬렉션 프레임워크 : 많은 데이터를 쉽고 편리하게, 효과적으로 관리하기 위해서 자바에서 제공해주는 클래스들의 모음. 컬렉션 프레임워크는 주로 List, Set, Map 유형이 있는데 그 중 Map 유형에 대해 학습해보자. Map은 Key와 Value 쌍으로 이루어진 형태이다. HashMap은 아래와 같이 HashMap의 형태로 선언한다. map.put(Key, value); 을 실행하면 HashMap에 데이터를 추가할 수 있다. map.size(); 은 해당 HashMap에 들어있는 데이터의 총 개수를 확인할 수 있다. map.get(Key); 을 실행하면 HashMap에서 해당 Key 값에 해당하는 Value를 가져온다. map.containsKey(Key)를 실행하면 HashMap에 해당 키 값이 포.. 2023. 6. 29.
chap_09. HashSet 컬렉션 프레임워크 : 많은 데이터를 쉽고 편리하게, 효과적으로 관리하기 위해서 자바에서 제공해주는 클래스들의 모음. 컬렉션 프레임워크는 주로 List, Set, Map 유형이 있는데 Set 유형에 대해 학습해보자. List와 Set의 큰 차이점은 중복 허용 여부이다. List의 경우 중복 데이터를 허용하지만, Set의 경우 중복 데이터를 허용하지않는다. (자동으로 중복 제거) set.add("값"); 을 실행하면 HashSet에 데이터를 추가할 수 있다. 이 때 실행 결과를 보면 HashSet의 두가지 특징을 알 수 있다. 데이터의 중복을 허용하지 않는다. 위 예제에서 중복된 "삼겹살"이 제거되고 하나만 출력되는 것을 볼 수 있다. 데이터의 순서를 보장하지 않는다. 위 예제에서 입력한 데이터와 출력된 결.. 2023. 6. 29.
chap_09.LinkedList 컬렉션 프레임워크 : 많은 데이터를 쉽고 편리하게, 효과적으로 관리하기 위해서 자바에서 제공해주는 클래스들의 모음. List에는 크게 ArrayList와 LinkedList가 있다. ArrayList : 여러명이 앉을 수 있는 의자에서 중간에 한명이 앉으려고 하면 그사람 위치로부터 뒤에있는 모든 사람들이 한칸 씩 이동하는방식. LinkedList : 의자 없이 사람들이 손을잡고 줄지어 있는 방식. 중간에 한명이 추가되면 새로운 사람이 들어가 손을 잡으면 연결되는 방식. LinkedList와 ArrayList의 사용방법은 거의 동일하다. list.add("값"); 을 실행하면 LinkedList에 데이터를 추가한다. list.get(인덱스); 을 실행하면 LinkedList에 데이터를 조회해온다. list.. 2023. 6. 29.
chap_09. ArrayList 컬렉션 프레임워크 : 많은 데이터를 쉽고 편리하게, 효과적으로 관리하기 위해서 자바에서 제공해주는 클래스들의 모음. 일반적으로 배열은 위와 같이 선언할 수 있다. 그런데 위와 같이 배열을 생성하고 추가로 데이터를 더 생성하고 싶은 경우에는 어떻게 해야할까? 배열은 데이터의 크기가 고정되어있기 때문에, 새로운 배열을 만들고 기존 데이터를 복사하는 작업이 필요하다. 그런데 컬렉션 프레임워크를 이용하게되면 배열과는 다르게 원하는만큼 데이터를 추가, 삭제, 탐색, 정렬 등의 기능을 활용 할 수 있다. 컬렉션 프레임워크는 주로 List, Set, Map 유형이 있는데 그중에서도 List 유형에 대해 학습해보자. 데이터를 받는 list를 ArrayList로 생성하였다. list.add("값"); 을 실행하면 Arr.. 2023. 6. 28.
반응형