프로세스와 쓰레드 프로세스 : 실행 중인 프로그램, 자원(resources)과 쓰레드로 구성 ->cpu,메모리... 쓰레드 : 프로세스 내에서 실제 작업을 수행, 모든 프로세스는 최소한 하나의 쓰레드를 가지고 있다. 쓰레드 종류 - 싱글 쓰레드, 멀티 쓰레드 멀티 쓰레드의 장단점 대부분의 프로그램은 멀티쓰레드로 작성되어 있다. 장점 : 시스템 자원을 보다 효율적으로 사용 가능, 사용자에 대한 응답성 향상, 작업이 분리되어 코드가 간결해 진다. 단점 : 동기화(synchronization)에 주의해야 한다, 교착 상태(dead-lock)가 발생하지 않도록 주의 필요, 각 쓰레드가 효율적으로 고르게 실행될 수 있게 해야 한다. 쓰레드의 구현과 실행 두 가지 방법이 있다. 1. Thread 클래스를 상속 cl..
다형성(polymorphism) =여러가지 타입(데이터 타입)의 특성 =>특정한 변수가 여러가지 데이터 타입을 저장하고 사용 부모 클래스 타입의 참조 변수로 자식 클래스의 인스턴스 참조가 가능하다. -상대적으로 더 작은 데이터 타입의 데이터가 상대적으로 더 큰 데이터 타입의 변수에 들어가는 것은 문제가X (암시적 형변환) -부모 클래스는 항상 자식 클래스보다 큰 데이터 타입이다. ex) Child myChild = new Child(); Parent myParent = my Child(); => Parents > Child Parent my Parent = new Parent(); = new Child(); Object obj = new Parent(); = new Child(); = new Grandc..
학원에서 필기 열심히 했으니까 올려줘야지ㅎㅎ 상속 (inheritance) '클래스 간의 관계를 맺어줌' -부모 클래스(parent class) -자식 클래스(child class) =>is a관계 ex) 고양이는(자식) is a 동물이다.(부모) 체크카드는 is a 카드다. 신용카드는 is a 카드다. 클래스가 부모&자식 (상속) 관계가 되면 -자식 클래스는 부모 클래스가 가진 재산(변수, 메서드 등등)을 물려받아서 사용 가능하다. -> 코드의 재사용이 가능하다!! -공통 내용을 미리 제작해두고 여러 곳에서 재사용 하겠다. -> 코드 중복을 최소화! -자식 클래스는 부모 클래스 멤버를 자기 것인양 사용 가능하지만 부모 클래스는 자식 클래스가 직접 정의한 멤버에는 접근할 수 없다. -상속 관계에서 자식 ..
생성자 - 모든 클래스는 생성자가 반드시 하나 이상 존재한다. ->프로그래머가 만들지 않으면 자바에서 자동으로 제작한다 ->기본 생성자 - 일반적으로 인스턴스 변수의 초기화에 많이 활용한다. - 무조건 void 메서드이다. - 오버로드 (overload) 방식을 자주 활용한다. Card myCard = new Card(); //클래스 이름과 동일 1. new 키워드와 함께 사용되며 신규 인스턴스를 생성한다. (초기화) 2. 생성자 Card()를 실행하고 초기화와 함께 인스턴스 생성 3. 생성된 인스턴스의 주소값을 참조 변수 myCard에 저장 생성자 - this this : 자기 자신을 의미. -인스턴스 자신을 가리키는 참조 변수이다. -동일 클래스 내 다른 생성자 호출에 사용한다. this 는 자기 자..
메서드의 종료 -메서드의 중괄호 {...} 내에 있는 모든 코드의 수행이 끝났을 때 -return : 메서드의 중괄호 내에 있는 코드 수행 중 return 문을 만났을 때 return -종료한다는 면에서 'break'문과 비슷함. -동작 후 출력할 값이 없는 경우 : void 사용. void 뒤에는 뭐 적으면 안된다. -반환 값이 있는 경우 : return 문 뒤에 반환 값 지정 return 반환값; ex)return result; 기본형 / 참조형 타입 매개변수 -실제 다루는 데이터의 읽기만 가능 (read only) -데이터 자체의 복사만 발생 -예제에서 change 메소드를 주었지만 기본형 타입이기 때문에 복사만 될 뿐 여전히 10으로 출력됨. ->복사기로 복사한 용지의 내용을 낙서하거나 지저분하게..
클래스 사용자(프로그래머)가 필요에 의해서 데이터 타입을 직접 정의하는 방식을 의미. ->데이터를 저장하기 위한 변수 영역. ->클래스를 만들어 사용하는 이유? 한 번에 여러 종류의, 여러 개의 변수와 기능을 실행하기 위한 영역의 메모리를 한꺼번에 한줄로 얻어오기 위해 프로그래머가 직접 데이터 타입을 만들어서 사용. 클래스 vs 객체 TV myTv; myTv.power(); 자바에서 .은 소유의 의미. 객체를 사용할 때 .(점)을 잘 사용해야 한다. 클래스 : 자동차 설계도 객체 : 자동차 자동차 설계도는 자동차가 아니다! 자동차를 만들기 위해 정리해 놓은 설명서! 한 가지 더 예를 들면 클래스 : 붕어빵 기계 객체 : 붕어빵 마찬가지로 붕어빵 기계도 붕어빵을 만들기 위한 설명서이다! 이처럼 클래스는 프..
for 반복문 - 순서대로 차근차근 반복 - 조건식이 false가 될 때까지 반복 - 일반적으로 반복 횟수를 예측할 수 있을 때 사용 기본적인 형식은 for(반복기준변수; 반복조건식; 반복증감식) 반복기준변수 : 반복에 대한 기준이 되는 변수 선언. 반복조건식 : 반복 조건식이 true이면 계속 반복하고 false가 되면 그때 반복을 즉시 종료. 반복증감식 : 정해진 반복의 종료를 향해 반복 기준 변수의 값을 바꿔주는 식. 위에서는 for (int i=1 ; i
형변환 -형변환(type conversion) : 어떤 데이터 타입이 다른 데이터 타입으로 바뀌는 현상 -형변환 종류 암시적 형변환(implicit type conversion) 명시적 형변환(explicit type conversion) -암시적 형변환 작은 컵의 물을 큰 컵에 넣는 것 상대적으로 크기가 작은 데이터 타입의 값(데이터)이 상대적으로 크기가 큰 데이터 타입의 변수로 이동할 때는 타입의 변환에 아무 문제가 발생할 여지가 없다. 그래서 프로그래머가 별도의 코드를 작성할 필요 또한 없다. ->형변환에서 중요한 것은 데이터 타입의 크기이다. -명시적 형변환 큰 컵의 물을 작은 컵에 넣는 것 - 물이 넘친다, 문제가 생긴다. (데이터 유실) 상대적으로 큰 타입의 데이터 값을 상대적으로 작은 타입의..