프로세스와 스레드 프로세스 운영체제에서는 실행중인 하나의 어플리케이션을 프로세스라고 함. 운영체제로부터 실행에 필요한 메모리를 할당받아 어플리케이션의 코드를 실행. 스레드 프로세스를 이루는 코드의 실행흐름. 하나의 스레드는 하나의 코드 실행흐름임. 멀티 프로세스 서로 독립적. 하나의 프로세스에서 오류가 발생하더라도 다른 프로세스에 영향을 미치지 않음. 멀티 스레드 하나의 프로세스 내부에 존재하기 때문에 하나의 스레드가 예외를 던지면 프로세스 하나가 아예 동작하지 않을 수 있음 -> 예외 처리 중요. 메인 스레드 자바 어플리케이션은 메인스레드가 main 메소드를 실행하면서 시작함. 스레드의 생성 1. Thread 클래스로부터 직접 생성 Thread thread = new Thread(Runnable tar..
Garbage Collector- 가비지 컬렉터는 동적으로 할당된 메모리들 가운데 더이상 사용하지 않는 메모리(인스턴스)를 찾아서 자동으로 수집해서 쓸모없는 메모리를 해제하는 기법이다. - 더이상 사용하지 않는 메모리는 어떠한 변수도 이것을 참조하지 않는 것을 의미한다. 123456789101112public class Example{ public static void main(String[] args){ String a = new String("good"); String b = new String("Bad"); String c = new String("Normal"); String d,e; a = null; d = c; c = null; }}Colored by Color Scriptercs 다음과 같은..
람다식을 배운 목적 1. 익명객체를 쉽게 만들기 위해서 - 배열(컬렉션) 2. 스트림을 사용하기 위해스트림(Stream) - JDK 1.8에서 추가 - 배열(컬렉션)을 탐색하기 위한 도구. - 람다식으로 구성된 도구.(적은 코드로 작성하기 편함) - Iterator 작업을 대신하는 경우가 많음 - 내부 반복자탐색하는 방법1. for2. for each3. iterator4. stream (현재 할것) 스트림 기본 예제 List list = new ArrayList();list.add("볼펜");list.add("지우개");list.add("샤프");list.add("형광펜");list.add("커터칼"); 다음과 같은 List가 있을 때, list의 내용물을 하나씩 출력하고 싶다면...? 1. Itera..
표준 API함수적 인터페이스 - JDK 1.8 부터 제공 - java.util.function 패키지 - 함수적 인터페이스 집합 패키지 - 오로지 람다식만을 지원하기 위해 만들어진 인터페이스 모음 - 람다식 타겟 타입 = 표준 API 함수적 인터페이스 + 사용자 정의 인터페이스 표준 API함수적 인터페이스 종류 - 추상메소드 딱 1개 1. Consumer : 매개변수O, 반환값X -> 추상메소드 제공.2. Supplier : 매개변수X, 반환값O3. Function : 매개변수O, 반환값O, 주로 매개변수를 반환값 타입으로 변환 후 반환4. Operator : 매개변수O, 반환값O, 주로 매개변수를 연산 후 결과값 반환 역할5. Predicate : 매개변수O, 반환값O, 주로 매개변수를 조사한 후 논리..
람다식(Lamda) - 병렬처리, 이벤트 처리, 스트림 처리 등..사용 - JDK 1.8에서 지원. - 함수형 프로그래밍 방식( 객체지향 프로그래밍) - 형태는 매개변수를 가지는 코드블럭(=메소드) - 인터페이스 + 익명객체 + 람다식 같이사용. - 생김새는 메소드를 선언하는 것과 유사 -> 실제로는 이름없는 클래스와 이름없는 메소드를 만드는 코드 - (중요)람다식을 사용하는 이유는 1회용 익명 메소드가 필요하기 때문 > 하지만 자바는 독립적인 메소드만을 생성하지 못하기 때문에 익명객체를 이용해서 만든다. 1234567interface MyInterface { void test();} interface MyType { void hello();}cs 위와 같은 인터페이스가 있을 때! 기본적인 익명객체를 이..
문자열 분리 1. String split() 객체 메소드- 정규 표현식 사용. 2. StringTokenizer 클래스 - 문자사용 StringTokenizer 클래스 String txt ="홍길동,아무개,하하하,호호호,후후후"; 콤마(,)로 구분된 문자열StringTokenizer st = new StringTokenizer(txt, ","); System.out.println(st.countTokens()); 5 그냥 토큰의 갯수라고 생각.while(st.hasMoreTokens()) {System.out.println(st.nextToken()); 하나의 토큰씩 반환}System.out.println(st.countTokens()); 0 탐색후 소비됨txt="010-4846-4538";st=new ..
정규 표현식- 정규식- 패턴에 일치하는 문자열을 검색하는 표현식. 정규 표현식 구성 요소(문법) 1. 모든 문자들 ex) "a" ->a, "test" -> test 2. 모든 문자(와일드카드) - . - wildcard(모든 문자) ex) "." -> 모든 문자를 검색 ex) "..." -> 문자3개 ex) "a.." -> a다음 문자2개 3. 없음 - 출연 횟수 : 1 ~ 1 - 생략 불가능, 중복 불가능 ex)"abc" -> abc ex) "ab?cd+e*" -> acddddeeeeeeeeeeeeeeeeeee 4. ? - 출현 횟수 : 0 ~ 1 - 생략 가능, 중복 불가능 ex)"abc" -> abc ex)"a?bc" -> bc나 abc를 찾는 표현. ex)"홍?길동" -> 안녕하세요. 홍길동입니다..
익명 객체 , Anonymous Object - 익명 클래스, Anonymous Class - 클래스를 정의하지 않고 객체를 정의하는 방법 > 1회용 클래스 사용 > 재사용이 불가능한 클래스(객체를 1번 만드는 용도) - 이벤트 객체, 스레드 개체, 람다식, 스트림 등에서 사용.익맹객체 만드는 방법 + 사용예시 1. 부모 클래스를 상속한 익명객체를 만드는 방법. 12345678910111213141516171819202122232425262728293031323334353637383940414243class AAA{ //부모클래스 public int a =10; public void check() { System.out.println("a : "+this.a); }}class BBB extends AAA..