일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 항해99
- System.in
- 익명 클래스
- 제네릭 타입
- 람다식
- 프리미티브 타입
- 브릿지 메소드
- Switch Expressions
- docker
- yield
- junit 5
- 자바할래
- 정렬
- 합병 정렬
- auto.create.topics.enable
- raw 타입
- 바운디드 타입
- throwable
- github api
- 제네릭 와일드 카드
- Study Halle
- 로컬 클래스
- 자바스터디
- 접근지시자
- 스파르타코딩클럽
- annotation processor
- 상속
- 함수형 인터페이스
- System.err
- System.out
- Today
- Total
목록분류 전체보기 (253)
코딩하는 털보
객체 지향 프로그래밍 63. 예외와 예외 처리 컴파일 오류 : 프로그램 코드 작성 중 발생하는 문법적 오류 실행 오류 : 실행중인 프로그램이 의도치 않은 동작을 하거나(bug) 프로그램이 중단되는 오류(runtime error) 자바는 예외 처리를 통하여 프로그램의 비정상 종료를 막고 log를 남길 수 있음 시스템 오류(error) : 가상 머신에서 발생, 프로그래머가 처리할 수 없음 동적 메모리를 다 사용한 경우, stack over flow 등 예외(Exception) : 프로그램에서 제어할 수 있는 오류 읽으려는 파일이 없는 경우, 네트웍이나 소켓 연결 오류 등 자바 프로그램에서는 예외에 대한 처리를 수행 함 Exception 클레스 : 모든 예외 클래스의 최상위 클래스 IOException, Ru..
객체 지향 프로그래밍 60. 스트림 자료의 대상과 관계없이 동일한 연산을 수행할 수 있는 기능(자료의 추상화) 배열, 컬렉션에 동일한 연산이 수행되어 일관성 있는 처리 가능 한번 생성하고 사용한 스트림은 재사용할 수 없음 스트림 연산은 기존 자료를 변경하지 않음 중간 연산과 최종 연산으로 구분 됨 최종 연산이 수행되어야 모든 연산이 적용되는 지연 연산 중간 연산 filter(), map() 조건에 맞는 요소를 추출하거나 요소를 변환 함 문자열의 길이가 5이상인 요소만 출력하기 sList.stream().filter(s->s.length()>=5).forEach(s->System.out.println(s)); 고객 클래스에서 고객 이름만 가져오기 customerList.stream().map(c->c.ge..
객체 지향 프로그래밍 58. 람다식 람다식이란? (java 8 or newer) 자바에서 함수형 프로그래밍을 구현하는 방식 클래스를 생성하지 않고 함수의 호출만으로 기능 수행 (내부적으로 익명 객체 사용) 함수형 인터페이스 선언 함수형 프로그래밍이란? 순수 함수를 구현하고 호출 매개변수만 사용하기 때문에 외부에 사이드 이펙트를 주지 않고 병렬 처리 가능 안정적인 확장성있는 프로그래밍 방식 문법 InterFace itfc = str -> {System.out.println(str);}; InterFace2 itfc2 = (x,y) -> x+y //구현부가 return 문 하나라면 return, 중괄호 생략 가능 package lambda; public class TestStringConcat { publi..
객체 지향 프로그래밍 56. 내부 클래스 내부 클래스란 클래스 내부에 구현된 클래스 (중첩된 클래스) 클래스 내부에서 사용하기 위해 선언하고 구현하는 클래스 주로 외부 클래스 생성자에서 내부 클래스를 생성 인스턴스 내부 클래스, 정적 내부 클래스 package innerclass; class Outer { int outNum = 100; static int sNum =200; Runnable getRunnable(int i) { //Runnable 한 type의 객체를 반환하는 메서드 int num = 100; //지역변수 i, num class MyRunnable implements Runnable { //지역 내부 클래스, 메서드 내에 구현되어 있음 @Override public void run() ..
객체 지향 프로그래밍 55. Map 인터페이스 Map 인터페이스 쌍으로 이루어진 객체 관리를 위해 선언된 인터페이스 검색을 위한 자료구조 Map을 사용하는 객체는 key-value 쌍으로 되어있으며 Key는 중복될 수 없다. Key를 이용하여 값을 저장하거나 검색, 삭제할 때 사용하면 편리하다. 내부적으로 hash 방식으로 구현되어 있다. index = hash(key) //index는 저장 위치 key가 되는 객체는 객체의 유일성 여부를 알기 위해 equals(), hashCode() 메서드를 재정의한다. HashMap 클래스 Map 인터페이스를 구현한 클래스 중에서 가장 일반적으로 쓰인다. pair 자료를 쉽고 빠르게 관리할 수 있다. HashTable 클래스는 Vector 처럼 동기화를 제공한다. ..
객체 지향 프로그래밍 50. 컬렉션 프레임워크 컬렉션 프레임워크란? 프로그램 구현에 필요한 자료구조와 알고리즘을 구현해 놓은 라이브러리 java.util 패키지에 구현되어 있음 개발에 소요되는 시간을 절약하고 최적화된 라이브러리를 사용할 수 있음 Collection 인터페이스와 Map 인터페이스로 구성됨 Collection : 하나의 객체 관리를 위해 선언된 인터페이스 +--List : 순서가 있는 자료관리, 중복 허용 +--Set : 순서가 정해져있지 않음, 중복을 허용하지 않음 Map : 쌍으로 이루어진 객체 관리를 위해 선언된 인터페이스 Map을 사용하는 객체는 key-value 쌍으로 되어있으며 이중 Key는 중복될 수 없다. List 인터페이스 Collection의 하위 인터페이스 객체를 순서에..
객체 지향 프로그래밍 49. 제네릭 프로그래밍 제네릭 프로그래밍이란 변수의 선언이나 메서드의 매개변수를 하나의 참조 자료형이 아닌 여러 자료형으로 변환될 수 있도록 프로그래밍 하는 방식 실제 사용되는 참조 자료형으로의 변환은 컴파일러가 검증하므로 안정적인 프로그래밍 방식이다. package generic; public class GenericPrinter { // T : 자료형 매개변 // 클래스가 생성될때 T에 타입을 대입 //Meterial을 상속받은 타입만 들어갈 수 있게 제한 private T meterial; //재료는 플라스틱,파우더 등 여러가지일 수 있으므로 public T getMeterial() { //제네릭 타입을 사용하는 메서드 : 제네릭 메서드 return meterial; } pu..
객체 지향 프로그래밍 48. String, Wrapper 클래스 String String 클래스 선언하기 String str1 = new String("abc"); //인스턴스로 생성 String str2 = "abc" //상수풀에 있는 문자 package string; public class StringTest { public static void main(String[] args) { String str1 = new String("abc"); //힙메모리 영역 String str2 = "abc"; //상수 풀 String str3 = "abc"; System.out.println(str1 == str2); //false, 메모리 위치가 다르기 때문 System.out.println(str2 == st..
객체 지향 프로그래밍 46. Class 클래스 Class 클래스 자바의 모든 클래스와 인터페이스는 컴파일 후 class 파일로 생성됨 class 파일에는 객체의 정보(멤버변수, 메서드, 생성자 등)가 포함되어 있음 Class 클래스는 컴파일된 class 파일에서 객체의 정보를 가져올 수 있음 동적 로딩에 많이 사용 Class 클래스 가져오기 String s = new String(); Class c = s.getClass(); Class c = String.Class; Class c = Class.forName("java.lang.String"); //동적 로딩 : 컴파일 타임이 아닌 런타임에서 로딩 reflection 프로그래밍 Class 클래스로부터 객체의 정보를 가져와 프로그래밍하는 방식 로컬에 객..
객체 지향 프로그래밍 43. Object 클래스 Object 클래스 모든 클래스의 최상위 클래스 (java.lang.Object) (java.lang 패키지 위치 : /Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home/lib/src.zip , java.lang 패키지는 컴파일러가 자동으로 import 해준다.) 모든 클래스는 Object 클래스에서 상속 받음 모든 클래스는 Object 클래스의 메서드를 사용할 수 있음 모든 클래스는 Object 클래스의 일부 메서드를 재정의하여 사용할 수 있음 (final로 정의된 메서드들은 재정의 할 수 없음) package object; class Book{ String title; String author..