분류 전체보기 122

Java 12. 쓰레드 ( Thread )

(1) 정의 1) process 를 구성하는 '제어의 흐름' (2) process 와 Thread 1) Process: 프로그램 '실행단위' 이다. 2) Thread: Process를 구성하는 '작업단위' 이다. (3) 장점 1) 하나의 Process로 여러개의 일을 동시에 수행한다. 2) '경량프로세스'라고 불리우기도 할 정도로 가볍다. 3) 가벼운 이유는 공통 Resource를 공유하기 때문이다. (4) 비유: '피고용인'(Emploee) (5) 생성 1) java.lang.Thread 를 상속( extends ) 받는다. ( 클래스 ) 2) java.lang.Runnable 을 구현( implements ) 한다. ( 인터페이스 ) (6) 시작 1) class Gth1 extends Thread {..

Java/Java 2022.03.11

Java 11. 어노테이션 ( Annotation )

(1) 모양: @ ex) @Override (2) 기능 1) 클래스나 생성자, 메소드, 필드에 붙어서 '정체성'을 부여한다. 2) 기능을 확장하는 '표식' 이다. 3) xml을 대신해서 '설명'하는 역할이다. 4) 실행시( 런타임 ) 특정 기능을 실행하도록 정보를 제공한다. 5) 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공 6) 소프트웨어 개발툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보를 제공한다. 7) 에노테이션을 직접 만드는 것도 가능하다. (3) JDK6 이상에서 지원

Java/Java 2022.03.11

Java 10. 내부클래스 ( Inner Class )

(1) 클래스안의 클래스 (2) 모양 ex) class AOut { int i = 0; void m(){ System.out.println("m()"); } class AIn1{ int j = 1; void m1(){ System.out.println("m1()"); } } static class AIn2{ static int k = 2; static void m2(){ System.out.println("m2()"); } } } (3) 객체 생성 방법 1) 외클.내클 변수 = new 외클().new 내클(); ex) AOut.AIn ai = new AOut().new AIn(); 2) 외클.내클 변수 = new 외클.내클(); ex) AOut.AIn2 ai2 = new AOut.AIn2(); (4) 접..

Java/Java 2022.03.10

Java 09. this 와 super

(1) this 1) 정의 자신의 '객체' or '생성자'를 가리키는 '대명사' 2) Case 지역변수와 이름이 같은 멤버변수를 해당 지역에서 접근할 때 자신의 객체를 다른 클래스에게 넘길 때 자신의 생성자를 호출할 때 ex) class B { int age; B() { this(20); //(3) } B(int age) { this.age = age; //(1) new BUser(this).use(); //(2) } void m() { System.out.println("m의 age " + age); } public static void main(String[] args) { new B(); } } class BUser { B b; BUser(B b) { this.b = b; } void use() {..

Java/Java 2022.03.10

Java 08. 제한자( Modifier ) 와 식별자 ( Identifier )

(1) 제한자( Modifier ) 1) 클래스(인터페이스), 변수, 생성자, 메소드 앞에 붙어서 기능을 '제한'하는 예약어 2) 접근제한자( Access Modifier ) 종류 1> public : 접근 제한이 없다. 2> protected : 같은 패키지의 자원 or 상속관계의 부모 자원에서만 접근이 가능하다. 3> default : 같은 패키지의 자원에서만 접근이 가능하다. 4> private : 클래스 안에서만 접근이 가능하다. 붙는 특성 1> 클래스나 인터페이스 앞의 접근제한자는 public 과 default 만 가능하다. 2> public 클래스나 인터페이스의 이름은 파일이름과 같아야한다. 3> 멤버, 생성자, 메소드는 제한없이 붙을 수 있다. 4> 지역변수는 default 만 붙는다. 범위..

Java/Java 2022.03.10

Java 07. 예외 처리

(1) 예외( Exception ) 1) 프로그램이 정상적으로 진행되지 못하게 하는 '돌발 상황' ex) 숫자가 아닌 문자열을 숫자로 바꾸려할 때 채팅하다가 상대방이 나가 버릴때 온라인 게임하고 있는 중에 전원케이블이 빠짐 게임 서버 다운됨 등등... (2) 처리 목적 1) 프로그램 진행시 발생할 수 있는 '돌발 상황'을 예외로 미리 정해놓고, 해당하는 예외가 발생했을 경우 적절한 조치를 취해서, 프로그램이 '정상 작동'히도록 하는 것 (3) 계층도 Object | Throwable | | Error Exception | | compileException RuntimeException (CheckedException) ex) IOException -> CompileException NumberFormat..

Java/Java 2022.03.09

Java 06. OOP( Object Oriented Programming) 특성

(1) 상속성( Inheritance ) 1) 부모의 '모든 것'을 자식에서 '상속'받는 것(=='사용'할 수 있는 것) 2) 다른 생성자가 하나도 없을 때 만 JVM이 ( 자식객체가 생성되려면 먼저 부모객체가 생성되어야 함) 3) 모든 생성자의 첫라인에는 Super();가 생략되어 있음 ( 단, 다른 super(...)가 있다면 예외) 4) 자식메소드에서 부모메소드의 내용을 변경할 수 있음( overriding ) 5) 모든 객체는 Object의 자식 ( 묵시적 상속 ) 6) 형변환 자동형변환 by JVM ( 자식 -> 부모 ) 1> class Superman extends Human {} Superman sm = new Superman(); Human m = sm; 강제형변환 by 개발자 ( 부모 -..

Java/Java 2022.03.09

Java 05. 컬렉션 ( Collection )

(1) Data Structure , 가변배열 (2) 같은 타입의 '참조형'데이터 '저장소'로써 그 크기가 변하는 '객체' (3) 기본형은 래퍼클래스( wrapper class ) 로 형변환 해야 컬렉션안에 넣을 수 있다. 1) 래퍼클래스 종류: byte -> Byte char -> Character short -> Short int -> Integer long -> Long float -> Float double -> Double boolean -> Boolean (4) 컬렉션 종류 1) java.util.Collection | | java.util.List java.util.Set | | ArrayList, Vector,... TreeSet, SortedSet,... 2) java.util.Map |..

Java/Java 2022.03.09

Java 04. 배열 ( Array )

(1) 같은 타입의 데이터 '저장소'로써, 생성될 때 그 크기가 고정되는 '객체' (2) 선언 타입 배열변수[]; ex) int is[];, String strs[]; 등등... (3) 생성 배열변수 = new 타입[크기]; ex) is = new int[4];, Strs = new String[4]; 등등... (4) 초기화 배열변수[인덱스] = 데이터; ex) is[0] = 10;, strs[0] = "봄"; 등등... (5) 선언 및 생성 타입 배열변수[] = new 타입[크기]; ex) int is[] = new int[4];, String strs[] = new String[4]; 등등... (6) 선언 및 생성 및 초기화 타입 배열변수[] = {데이터1, 데이터2, 데이터3, 데이터4 ......

Java/Java 2022.03.09

Java 03. 제어문

(1) 조건문 1) if(boolean형){}.. else if(boolean형){} .. else{} 인자값이 true 이면 바디에 문장을 실행한다. 인자값으로는 조건식, true, false 가 들어갈 수 있다. 첫번째 조건을 if () 에 적고, 두번째부터는 else if() 에 적는다. if 와 else if 가 모두 false 일 경우 else 의 문장이 실행된다. ex) int i = 0; if(i0){ System.out.println("양수"); }else{ System.out.println("0"); } 2) switch(정수형 or String){case : .... default: } 문 인자값과 일치하는 case 문부터 실행한다. 관례상 default 를 가장 아래쓰는게 맞지만, c..

Java/Java 2022.03.08