멀티 스레드'이것이 자바다 - 신용권' 12장 학습소스코드 repo1절. 멀티 스레드 개념2절. 작업 스레드 생성과 실행3절. 스레드 우선순위4절. 동기화 메소드와 동기화 블록5절. 스레드 상태6절. 스레드 상태 제어7절. 데몬 스레드8절. 스레드 그룹9절. 스레드 풀1. 프로세스와 스레드프로세스실행 중인 하나의 프로그램하나의 프로그램은 다중 프로세스를 만들기도 한다.멀티 태스킹두 가지 이상의 작업을 동시에 처리하는 것멀티 프로세스 : 독립적으로 프로그램들을 실행하고 여러 가지 작업 처리멀티 스레드 : 한 개의 프로그램을 실행하고 내부적으로 여러 가지 작업 처리메인 스레드모든 자바 프로그램은 메인 스레드가 main() 메소드를 실행하면서 시작된다.main() 메소드의 첫 코드부터 아래로 순차적으로 실행한..
Regular Expression & Pattern Class 정규 표현식 작성 방법 다음은 02-123-4567 또는 010-1234-4321 과 같은 전화번호를 위한 정규 표현식입니다. 1(02|010)-\d{3,4}-\d{4}cs 다음은 zhfldi4@naver.com과 같은 이메일을 위한 정규 표현식입니다. 12\w+@\w+\.\w+(\.\w+)? cs Pattern 클래스 정규 표현식으로 문자열을 검증하는 방법을 알아보도록 합시다. 문자열을 정규 표현식으로 검증하는 기능은 java.util.regex.Pattern 클래스의 정적 메소드인 matches() 메소드가 제공합니다. 12boolean result = Pattern.matches("regular Expression", "String");..
StringTokenizer Class 문자열이 특정 구분자(delimiter)로 연결되어 있을 때, 구분자를 기준으로 하여 문자열을 분리하기 위해서 split() 메소드 또는 StringTokenizer 클래스를 이용할 수 있습니다. split()은 정규 표현식(Regular Expression)으로 구분하고, StringTokenizer는 문자로 구분한다는 차이점이 있습니다. split() 메소드 String 클래스의 split() 메소드는 다음과 같이 호출되는데, 정규 표현식을 구분자로 해서 문자열을 분리한 후, 배열에 저장하고 리턴합니다. 1String[] result = "문자열".split("정규표현식");cs 다음은 기호로 구분된 이름을 분리하여 출력하는 예제입니다. * StringSplit..
String Class String 생성자 자바의 문자열은 java.lang 패키지의 String 클래스의 인스턴스로 관리됩니다. 소스상에서 문자열 리터럴은 String 객체로 자동 생성되지만, String 클래스의 다양한 생성자를 이용해서 직접 String 객체를 생성할 수도 있습니다. 다음은 빈도수가 높은 String 생성자들입니다. 파일의 내용을 읽거나, 네트워크를 통해 받은 데이터는 보통 byte[] 배열이므로 이것을 문자열로 변환하기 위해 사용됩니다. 123456789// 배열 전체를 String 객체로 생성String str = new String(byte[] bytes);// 배열을 지정한 문자셋으로 디코딩String str = new String(byte[] bytes, String cha..
1.System 클래스1-1. 개요 System 클래스는 유용한 필드들을 포함하고 있는데, 표준입력, 표준출력, 표준에러 스트림입니다. System 클래스는 final 로 선언되어 있어서 클래스를 인스턴스화 할 수 없습니다.(System 객체는 Static final로 이미 만들어져 있고 수정 불가능) 또한 System 클래스는 많은 수의 메소드들을 포함하고 있으며 그것들을 이용하여 외부에서 정의된 프로퍼티들이나 환경변수, 파일들과 라이브러리들을 읽거나 할 수 있습니다. 또한 System 클래스는 다른 배열로 배열의 일부를 복사하는 간단한 메소드가 포함되어 있습니다. 1-2. System class FieldsSystem.in - 표준 입력 스트림 System.out - 표준 출력 스트림 System.e..
1.API(Application programming Interface)API 혹은 라이브러리란 개발에 자주 사용되는 클래스나 인터페이스의 모음이다.System,String 클래스 등도 모두 API 에 속한다.설치경로 : "jdk설치폴더/jre/lib/rt.jar" 폴더안에 class 형태로 저장되있음을 확인 가능하다.API 도큐먼트 사이트 : https://docs.oracle.com/javase/8/docs/api/ 2.lang, util 패키지2-1. java.lang 패키지자바 프로그램의 기본적 클래스를 담고 있다.(Object,Class,System,String, ...)import 필요 없다. 2-2. java.util기본적 패키지2Collection Class,Arrays,Calender,D..
예외처리 정리 1. 자바에서의 Error vs Exception 에러는 컴퓨터의 오동작 or 고장으로 응용프로그램이 오류가 발생예외는 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 발생 2. 예외클래스 계층RuntimeException - 종류 : NullPointerException,ArrayIndexOutOfBoundsException,NumberFormatException 등. - Catch 의무 없다. 따라서 throw 의무도 없다. - 그래서 throws를 적지 않아도 throw 할 수 있다. - 언체크 예외 - catch ~ try 안써도 컴파일은 된다. Exception - 자바에서는 런타임 예외 제외 예외발생가능성 있는 코드는 try-catch-finally 블록으로 처리하게 강제한다..
1. 정의클래스 내부에 선언한 클래스, 클래스 내부에 선언한 인터페이스.이렇게 내부에 선언하면, 두 클래스의 멤버 접근이 쉽고 하나의 클래스로 여러 클래스를 쓰는 효과가 있다. 2. 선언 및 사용법123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051package NestedClass; public class nestedClass { class instanceMemberClass{ public instanceMemberClass() { // TODO Auto-generated constructor stub } int instanceField; void instanceMethod() {Syste..
1. 인터페이스 쓰는 이유--> 인터페이스는 추상적인 기능에 대한 명세서로, 여러의 객체에서 사용이 가능하다. 이 때문에, 인터페이스를 사용하여 전체적 개발 구도를 빠르게 만들 수 있다.(물론 실제로 객체에 구현하면 해야 하지만, 이 때 인터페이스는 변경 필요없어서 다른 곳에서 재사용 할 수 있다.)--> 하나의 인터페이스로 다양한 객체가 실행 될 수 있다.--> 다중상속의 편리함 2. 인터페이스 선언 위의 예제에서, 추상메소드를 구현한 sleep 은 컴파일 시 자동적으로 @Override 어노테이션이 붙어서, 정확하게 구현 메소드임을 파악된다. 3. 인터페이스는 다중상속이 가능하다.ex) public class A implements 하위인터페이스1 extends 상위1,상위2 {}하지만, 이런 코드가..
1~2. 상속에 대한 기본개념과 사용법 3. 부모 생성자 호출1. 자식이 생성 될 때, 부모 객체도 같이 생성된다.2. 자식 생성자에 첫줄 에는 반드시 부모 객체를 생성하는 super(); 명령문이 있어야 한다. 없으면 자동으로 만들어진다. 4. 오버라이딩1. 오버라이딩 조건 : 동일한 시그니처(리턴타입, 매개변수목록, 메소드이름) 을 가져야 한다.2. 부모 메소드의 접근제한자 보다 더 강하게 접근제한을 걸 수 없다. 약하게는 가능(package -> public 가능) 5. final 클래스, 메소드1. 최종적인 클래스므로 상속 불가능하며, 오버라이딩도 불가능 하다. 6. protected 접근제한자(상속 받았으면 사용할 수 있게해줌)1. protected 가 걸려있는 필드,메소드이고, 이를 사용하는 ..