course 2021/JAVA

course 2021/JAVA

day23 - thread

> 스레드 thread 멀티스레드 - 두 가지 작업을 동시에 처리하는 것 한 프로그램 안에서 멀티태스킹을 동시에 하는 애플리케이션도 있음 (ex. 메신저) 스레드 - 프로그램의 실행흐름 (프로그램 내 스레드가 2개 → 두 개의 코드 흐름이 생긴다는 뜻) 방법1 Runnable 인터페이스를 상속받아 추상메소드 run() 을 오버라이딩 → Thread 객체의 생성자의 매개값으로 전달 → start() 메소드를 통해 실행시킴 방법2 Thread 클래스를 상속받아 추상메소드 run() 을 오버라이딩 → Thread 객체의 생성자의 매개값으로 전달 → start() 메소드를 통해 실행시킴 차이점 방법1 - Runnable 은 인터페이스, 스레드 실행의 기능만 정의되어있음 → 클래스 내..

course 2021/JAVA

day22 - lambda expression

> 익명객체 Anonymous Object 인터페이스 타입으로 변수를 선언하고 구현 객체를 초기값으로 대입하는 경우, 보통 인터페이스의 구현 클래스를 선언하고 new 연산자를 이용해서 구현 객체를 생성한 후 필드나 로컬변수에 대입함 하지만 구현 클래스가 매번 달라지거나 한번만 사용되는 경우, 굳이 구현 클래스를 생성하지 않고 익명 클래스(이름없는 클래스)로 선언할 수 있음 interface Car { //인터페이스 public void run(); //추상메소드 } public class Garage { //클래스 //인터페이스 변수 = new 인터페이스() { }; //중괄호와 같이 클래스 선언, 멤버변수에 구현클래스 저장됨 public Car cc = new Car() { //익명객체cc public..

course 2021/JAVA

day21 - regular expression

> 정규표현식 regular expression 문자열이 정해진 패턴으로 구성되어 있는지 검증할 때 사용 (ex. 이메일, 전화번호 등) Pattern 클래스 java.util 패키지 - Pattern 클래스 - matcher(), matchers() 메소드를 정규 표현식 검증에 이용 static 메소드 compile(패턴) - 정규표현엔진(정규식)을 만들어냄 matcher(검증데이터): 데이터를 비교해서 Matcher 클래스로 반환 matchers(패턴, 검증데이터): 패턴으로 비교하여 boolean 형으로 반환 String info = "30세/서울시 강남구/02-123-4567/010-1234-5678"; String pattern = "\\d{2,3}-\\d{3,4}-\\d{3,4}"; Patte..

course 2021/JAVA

day20 - API(3) stream

> java.io 패키지 > 스트림 stream 데이터의 흐름(통로) 입력 스트림: 데이터가 들어옴 / 출력 스트림: 데이터가 나감 - 스트림 클래스 종류 두가지 - 1. byte 기반 스트림: 그림, 문자 등 모든 종류의 데이터 보낼 수 있음 - 이미지, 동영상 등의 데이터에 주로 사용 2. 문자 기반 스트림: 오직 문자만 보낼 수 있음 - 문자열에 주로 사용 1. byte 기반 스트림 모든 바이트 기반 스트림은 바이트 기반 최상위 클래스(입력 스트림 InputStream, 출력 스트림 OutputStream)를 상속받아 만들어짐 이 때, 하위 클래스는 접미사로 각각 InputStream/OutputStream 을 붙임 ex. FileInputStream, FileOutputStream - Output..

course 2021/JAVA

day19 - API(2) generic, collection

> java.util 패키지 > 제네릭 generic 클래스나 인터페이스 선언에 유형 매개변수가 들어있는 클래스 제네릭 타입은 클래스/인터페이스 이름 뒤 "" 위치 클래스에 원치않는 datatype이 들어가는 것을 막을 수 있고, 값을 가져올 때도 형 변환 하지 않아도 됨 형 안정성(type safety)을 위해 사용 //제네릭 없는 코드 //클래스 Ex01 public class Ex01 { private Object obj; //Object는 부모클래스 public void setObj(Object obj) { //setter 메소드 this.obj = obj; } public Object getObj() { //getter 메소드 return obj; } } //클래스 ExMain01 public ..

course 2021/JAVA

day18 - API(1) java.lang, java.util

> API JAVA API(Application Programming Interface) API는 라이브러리라고 부르며 프로그램 개발에 자주 사용되는 클래스/인터페이스의 모음을 말함 자바 표준 API 문서 주소 : https://docs.oracle.com/javase/8/docs/api Java Platform SE 8 docs.oracle.com > java.lang 패키지 자바 프로그램의 기본적인 클래스들을 담고있는 패키지 java.lang 패키지에 있는 클래스/인터페이스는 import 없이 사용 가능 주요 클래스 1. Object 자바의 최상위 클래스 따로 특정 클래스를 상속하지 않으면 모든 클래스는 자동으로 Object 클래스를 상속하게 됨 따라서 Object의 메소드는 모든 클래스에서 사용 가..

course 2021/JAVA

day17 - exception

> 예외처리 exception handling 예외 excption 1. 컴파일러 체크 예외 (checked exception) - 컴파일 과정에서 예외처리 코드 검사, 예외 처리 코드가 없다면 컴파일 오류 2. 실행 예외 (runtime exception, unchecked exception) - 컴파일 과정에서 예외처리 코드를 검사하지 않는 예외 예외처리 exception handling 에러에 대한 처리 프로그램에서 문제가 될 만한 부분을 예상하여 사전에 '문제가 발생하면 이렇게 처리하라' 라고 프로그래밍 하는 것 예외 발생 시 문제가 발생한 부분의 정보 출력, 프로그램 종료 대표적인 실행 예외 종류 1. NullPointerException - 객체 참조가 없는 상태, null 값을 갖는 참조 변..

course 2021/JAVA

day16 - interface

> 인터페이스 interface 클래스가 아니므로 일반 변수, 일반 메소드 (X) 상수, 추상 메소드 (O) - 변수는 public static final 생략하여도 컴파일 시 자동으로 붙음 → 상수 - 메소드는 추상메소드 형식으로 선언하면 abstract 생략하여도 컴파일 시 자동으로 붙음 → 추상 메소드 - 추가로 static 메소드 선언 가능 (자바 1.8 이후) 인터페이스 선언 시: class 대신 interface 인터페이스명 클래스에서 인터페이스 구현 시: 클래스명 implements 인터페이스명 - 인터페이스의 추상메소드는 반드시 클래스에서 오버라이딩 되어야 함 - 다중 상속 시: 클래스명 implements 인터페이스명, 인터페이스명, ... 인터페이스 → 인터페이스 상속 시: 인터페이스명..

course 2021/JAVA

day15 - final, abstract

> final final 변경 금지의 규제 클래스, 메소드, 변수에 적용 abstract와 동시 사용 불가 1. fianl 클래스 - 상속 불가 오직 객체 생성을 통해 사용됨 ex. String 클래스 2. final 메소드 - 오버라이딩 불가 자식클래스에서 참조는 가능 (해당 클래스에 final이 없으면 상속 가능하므로) //final 클래스 상속 불가능, final 메소드 오버라이딩 불가능 //Parent 클래스 public final class Parent { //final 클래스 public final void method1() { //final 메소드 System.out.println("부모클래스의 메소드"); } } //Child 클래스 public class Child extends Pare..

course 2021/JAVA

day14 - static

> 정적제한자 static 사용제한자 usage level modifier - 정적제한자 static 변수, 메소드에 적용 static 변수/메소드는 해당 클래스 객체생성 없이도 "클래스명.이름"으로 참조 가능 static 블록 안에서 static 변수/메소드만 사용 가능, non-static 멤버는 객체생성없이 참조 불가 static은 지정된 변수/메소드를 객체와 무관하게 만들어주므로 this 불가 1. static field (정적 변수) - 모든 객체들이 값 공유 (공유변수) - 해당 클래스 객체생성 없이 "클래스명.변수명"으로 참조 가능 (클래스 변수) //Count 클래스 public class Count { public int a; //일반 변수 public static int b; //정적 ..

코딩하는토끼
'course 2021/JAVA' 카테고리의 글 목록