DAY 14 : 쓰레드, 동기화, 파일 입출력
2022. 3. 13. 22:36
WEB/JAVA
- 프로세스 실행된 프로그램 운영체제로부터 시스템 자원을 할당받는 작업의 단위를 의미한다. 자바 프로그램은 운영체제 대신 JVM에 의해 자원을 할당받는다. - 쓰레드 (Thread, 단일 쓰레드) 프로세스의 특정한 수행 경로 프로그램의 처리 경로 프로그램의 흐름 직렬적이다. - 멀티쓰레드 하나의 프로세스를 동시에 처리하는 것처럼 보이지만 사실은 매우 짧은 단위로 분할해서 차례대로 처리한다. 짧은 단위로 분할해서 차례대로 처리한다. 병렬적이다. 여러 개의 처리 경로를 가질 수 있게 한다. 한 개의 처리 경로를 여러 개로 나누어 동시 작업이 가능해진다. JSP (Java Server Page)가 대표적인 멀티 스레드 응용 프로그램이다. - 쓰레드의 장단점 장점 단점 효율성 증가 처리량 증가 처리비용 감소 복..
DAY 11 : 익명 클래스, 예외 처리, 오브젝트 클래스
2022. 1. 12. 17:51
WEB/JAVA
- 익명 클래스 (anonymous inner class) 이름이 없는 클래스 (일회용 클래스) 단 하나의 익명 구현 객체를 위한 클래스 익명 클래스 사용하기! public abstract class Animal { String name; String gender; int age; public Animal(String name, String gender, int age) { this.name = name; this.gender = gender; this.age = age; } abstract void makeSomeNoise(); } 먼저 추상 클래스로 Animal이라는 클래스를 만들어 준다. 여기서 메소드인 makeSomeNoise() 또한 추상 메소드로 만든다. public class Ground {..
DAY 10 : 접근 권한 제어자, 추상 클래스, 인터페이스, ....
2022. 1. 6. 03:21
WEB/JAVA
- 접근 권한 제어자 다른 패키지 혹은 다른 클래스에서 해당 필드를 접근 할 수 있는 범위를 설정해주는 키워드 접근 권한 제어자 의미 (default) 다른 패키지에서 접근 불가 public 모든곳에서 접근 가능 private 다른 클래스에서 접근 불가 protected 다른 패키지에서 접근 불가, 단 자식은 가능 1. 다른 패키지에서 어떤 객체로 해당 필드에 접근하고 싶을 때 : public 2. 다른 곳에서 해당 필드에 절대 접근하지 못하게 하고 싶을 때 : private 3. 상속 받은 클래스에서 자신의 필드처럼 쓰게하고 싶을 때 : protected 4. 현재 패키지에서만 이용할 때 : (default) (default)는 다른 패키지일 때 상속 시켜주어도 자신의 필드처럼 사용이 불가능하다. 그렇..
DAY 09 : 상속, 다형성, 업캐스팅, 다운 캐스팅
2022. 1. 6. 02:25
WEB/JAVA
- 상속 (inheritance) 기존에 선언된 클래스의 필드를 다른 클래스에서 사용하고자 할 때 클래스들을 만들다 보니 공통 요소가 보여서 부모로 묶은 후 상속시켜 주어서 사용하고자 할 때 class A { A의 필드 } class B extends A { // 관계성만 정의 B의 필드 } B b = new B(); // b객체는 실제로는 A의 필드 B의 필드 둘 다 가지고 있다. A : 부모 클래스, 상위 클래스, 슈퍼 클래스, 기반 클래스 B : 자식 클래스, 하위 클래스, 서브 클래스, 파생 클래스 SuperCar extends Car을 하면 SuperCar 클래스에는 부모 클래스 인 Car필드와 SuperCar 필드가 존재한다. 따라서 mycar 객체는 Car 클래스의 변수, 메소드와 Super..
DAY 08 : this, 클래스 배열, 정적 필드
2022. 1. 4. 03:57
WEB/JAVA
- this 클래스 선언 시 내부적으로 선언되어 생성된다. 클래스 필드에서 한 번의 메소드 선언으로 여러 객체를 다루어야 한다. 만약 메소드 내에서 그 객체의 필드를 사용하고자 할 때 어떤 객체의 필드인지를 알 수 없다. 따라서 객체에 마침표를 찍거나, 객체를 생성하게 되면 그 접근 중인 객체를 this라는 변수가 받는다. 결과적으로 클래스 선언시 this. 필드명으로 접근하면 여러 객체도 하나의 메소드에서 구분하여 다룰 수 있게 된다. this : 객체 구별용 / 현재 접근 중인 객체 이전에 momcar.brand로 각 각 값을 대입해주던 것과는 다르게 new Car("K7", "White", 7000)으로 해주면 Car클래스에서 찾지를 못한다. 따라서 Car(String brand ,...)으로 생성..
DAY 07 : 저장 기억 부류, 클래스, 생성자
2022. 1. 4. 03:23
WEB/JAVA
- Storage Class (저장 기억 부류) 지역 변수 : 메소드 내부에 선언된 변수 전역 변수 : 클래스 내부에 혹은 메소드 외부에 선언된 변수 정적 변수 : static이 붙은 변수 종류 지역 변수 전역 변수 정적 변수 초기화 직접 자동 자동 생명주기 {} (중괄호) 내에서 프로그램 종료 전 프로그램 종료 전 보안성 상 중 하 여기서 보안성은 접근하기 어려운 정도를 의미한다. 여기서 static변수는 static이 붙은 메소드에서 사용이 가능하다. 다른 메소드에서는 사용할 수 없다. 그리고 static이 붙은 메소드 내부에서는 일반 전역 변수를 사용할 수 없다. 메소드 내에서 선언된 지역변수는 전역 변수보다 우선시되기 때문에 이름이 같은 변수가 있다면, 지역변수를 우선으로 사용한다. - stati..
DAY 06 : 2차원 배열, 메소드
2022. 1. 4. 00:21
WEB/JAVA
- 2차원 배열 배열 안에 배열이 있는 형태 - 2차원 배열의 선언 자료형[][] 배열명 = { {값1, 값2, ...} {값3, 값4, ...} }; 자료형[][] 배열명 = new [행수][열수]; // 열 수는 생략가능 정방 배열 : 각 행마다 칸수 (열의 개수)가 모두 같은 배열 비정방 배열 : 각 행마다 칸수 (열의 개수)가 다른 배열 - 배열의 길이 배열명.length : 옆에.(점) 찍힌 공간에 연결된 공간의 수를 의미한다. 먼저 arrData에 주소가 할당되고, 그 안에 200,300 번지로 주소가 할당된 공간이 생긴다. 그리고 이 200, 300 번지의 공간에 3개의 공간이 생긴다. 그래서 20이라는 숫자를 찾아가고 싶으면 100번지에 생긴 200번지의 첫 번째로 찾아가면된다. - 2중 ..
DAY 05 : 반복문, 배열
2022. 1. 3. 01:27
WEB/JAVA
- 반복문 특정한 코드나 행위를 반복해야 할 때 사용하는 문장 조건에 의한 반복문 while, do ~ while 횟수에 의한 반복문 for - while문 조건에 의한 반복문 while (조건식) { 조건식 연산결과가 참이면 반복수행 } // -> 조건식을 연산하고 false이면 탈출한다. - do ~ while 문 조건에 의한 반복문 while문과 동일하지만 무조건 한 번은 실행한다. do { 조건식의 연산결과 참이면 반복 수행 } while (조건식); // -> 조건식을 연산하고 탈출한다. while문으로 Quiz 출력하기! Scanner sc = new Scanner(System.in); int choice = 0; while (choice != 3) { System.out.println("다음..