Java (20) 썸네일형 리스트형 Thread 1. Thread (1) 프로그램 : 특정 작업을 수행하는 명령어(소스코드)들의 모음 메모리를 할당받지 않은 상태 -> 꺼져 있다 (2)프로세스 : 실행중인 프로그램(작업관리자) 프로세스는 프로그램을 실행시키기 위한 메모리 등의 자원과 쓰레드로 구성된다 즉, 하나의 프로세스는 하나 이상의 쓰레드를 가지고 있다 (3) 쓰레드 하나의 프로세스 내에서 작업을 처리하는 흐름을 의미 2. 컴퓨터를 구성하는 3계층 (1) 소프트웨어 어플리케이션 소프트웨어 시스템 소프트웨어 하드웨어 (2) 시스템 자원 : 프로그램을 실행시키기 위해 필요한 것들을 운영체제를 통해 제공받아야한다 제공받는 것들을 의미 하드웨어 자원 : 주기억장치, 보조기억장치, cpu, 입출력장치 등 소프트웨어 자원 : 파일, 기타 소프트웨어 등 3. .. Set과 Map 1. Set : 집합 데이터의 순서를 보장하지 않는다 데이터의 중복을 허용하지 않는다 (1) 구현클래스 HashSet : Set 인터페이스를 구현한 가장 대표적인 클래스 중복되는 값을 저장하면 무시한다. 인덱스가 존재하지 않아 순서를 보장하지 않으며 ArrayList나 배열처럼 값을 가져오는 것이 불가능하다 hashCode()가 반환하는 해시코드를 이용하여 데이터를 처리하며 속도가 상대적으로 빠르다 값의 존재유무를 파악할 때, 중복을 제거해야할 때 사용하기 좋다 (2) HashSet 주의사항 hashCode()를 사용하는 HashSet에 객체를 저장할 때 equals() 재정의 했다면 반드시 hashCode() 재정의 해주어야한다 일관성과 검색 효율성이 저하되는 것을 방지하기 위함이다 - 일관성 : eq.. 컬렉션 프레임워크 1. 컬렉션 프레임워크 (1) 알고리즘 어떤 문제가 발생했을 때 해결할 수 있는 절차 또는 순서 (2) 자료구조 의미없는 데이터를 하나의 정보로 만들어주는 알고리즘들의 집합 수집한 자료를 저장하는 방법 (3) 자바 컬렉션 프레임워크(JCF : Java Collection Framewrok): 자료구조 많은 데이터를 쉽고 효과적으로 관리할 수 있는 표준화된 방법을 제공하는 클래스들의 집합 java.util 패키지에 포함되어 있다 (4) 인터페이스 분류 collection List 순서를 유지하고 저장 ArrayList, Vector, LinkedList 중복 저장 가능 Set 순서를 유지하지 않고 저장 HashSet, TreeSet 중복 저장 불가 Map 키와 값으로 구성된 엔트리 저장 HashMap, H.. Object , Wrapper 클래 1. Object 클래스 (1) java.lang 패키지에 포함된 클래스 1) Object : 모든 자바 클래스의 최상위 클래스로 사용 2) System : 키보드로부터 데이터를 입력받을 때 사용 프로세스를 종료시킬 때 사용 진행 시간을 읽을 때 사용 시스템 속성(프로퍼티)를 읽을 때 사용 3) String : 문자열을 저장하고 조작할 때 사용 4) StringBuilder : 효율적인 문자열 조작기능이 필요할 때 사용 5) Btye, Short, Character, Integer, Float, Double : 기본 타입의 값을 포장할 때 사용 6) Boolean : 문자열을 기본 타입으로 변환할 때 사용 7) Math : 수학 계산이 필요할 때 사용 8) Class : 클래스의 메타정보(이름, 구성멤버.. 예외처리, API 1. 예외처리 (1) 오류의 종류 - 에러(Error) : 개발자가 해결할 수 없는 문제(코드로 수습이 불가) - 예외(Exception) : 개발자가 해결할 수 있는 문제(코드로 수습 가능) (2) 예외의 발생시점 일반예외(Exception) : 컴파일러가 예외처리 코드 여부를 검사하는 예외 실행예외(Runtime Exception) : 컴파일러가 예외처리 코드 여부를 검사하지 않는 예외 (3) 예외처리 예외가 발생했을 때 프로그램이 비정상적으로 종료되는 것을 막고 정상적으로 실행될 수 있도록 처리하는 것을 의미한다 (4) 예외처리 문법 try{ 실행할 명령문; (예외가 예상되는 코드) }catch(예외이름 객체명){ 예외를 처리하는 명령문 (예외 발생시 실행할 코드) }catch(예외이름 객체명){ .. 내부 클래스, 익명 클래스, 람다식 1. 내부클래스(Inner Class) 클래스 내부에서 선언된 클래스를 내부클래스라고 한다 내부클래스를 가진 클래스를 외부 클래스라고 한다 클래스를 구성하는 멤버는 변수(필드), 메소드, 생성자, 클래스가 있다 만약 B클래스를 A클래스에서만 사용한다면 B클래스를 내부 클래스로 만들어서 사용한다 외부클래스가 메모리에 할당되어야만 내부클래스의 객체화가 가능하기 때문에 B를 별도로 사용하지 못한다 내부클래스는 외부클래스의 멤버이기 때문에 외부 클래스의 멤버를 상속없이 사용할 수 있다 (1) 내부클래스를 사용하는 이유 코드의 가독성과 유지보수성을 향상시키기 위해, 외부 클래스의 멤버에 쉽게 적용가능하기 때문에 사용한다 - 캡슐화 : 내부클래스는 외부 클래스 내부에서만 사용이 가능하므로 외부 클래스의 내부 구현을.. 추상클래스와 인터페이스 1. 추상 클래스 추상 사전적용어 : 실제간에 공통되는 특성을 추출한 것 (1) 추상클래스 클래스를 구성하는 맴버 중 추상 메소드가 존재하는 클래스를 의미한다 abstreact 키워드가 붙은 클래스는 추상 클래스이며, 추상메소드가 한 개 이상 있는 클래스는 반드시 추상 클래스로 선언해야한다(미완성된 클래스) (2) 추상메소드(abstract method) 메소드를 선언만하고 구현을 하지 않은 것을 추상메소드라고 한다(미완성된 메소드) abstract 리턴타입 메소드명(자료형 매개변수); (3) 추상 클래스 선언 abstract class 클래스명{ abstract 리턴타입 메소드명(자료형 매개변수); *일반 메소드로 선언가능 } 1)abstract 키워드를 사용한다 2)객체화를 시킬 수 없다 ※ 미완성된.. Casting (형변환) 1. casting 형변환 => 기본자료형끼리의 형변환, 기본자료형과 String타입간의 형변환 A클래스, B클래스가 있을 때 A -> B 형변환하는 것은 불가능하다 상속관계에서는 클래스끼리 캐스팅 가능하다 (1) up casting : 자식 값을 부모 타입으로 형변환 부모타입 변수 = 자식타입 객체; ex) Animal(부모클래스) Cat(자식클래스) Animal animal = new Animal(); Cat cat = new Cat(); Animal a = cat; (2) down casting : 이미 업캐스팅된 객체를 자식 타입으로 형변환 ※ 부모값을 자식 타입으로 형변환시 오류 발생★★★ (3) casting을 사용하는 이유 부모타입인 하나의 저장공간에 여러 자식 타입의 참조값을 Up Cast.. 상속 세부개념 및 접근 제한자 1. 상속(inheritance) 기존에 선언된 클래스의 맴버를 새롭게 만들 클래스에서 사용하고 싶을 때 상속을 받고 새로운 기능만 추가한다 class 슈퍼클래스명 { 슈퍼클래스의 맴버; } class 서브클래스명 extends 슈퍼클래스명{ 슈퍼클래스의 멤버; 서브클래스의 멤버; } ※ 자바에서 상속은 단일 상속만 지원한다 (1) super와 super() 1) super : 부모의 참조값 부모의 맴버에 접근할 때 사용한다 2) super(): 부모 생성자 자식 클래스 타입의 객체로 부모 필드에 접근을 할 수 있다 우리는 객체를 만들 때 자식 생성자만 호출하기 때문에 자식 필드만 메모리에 할당된다고 생각할 수 있다 그러나 자식생성자는 항상 부모 생성자를 호출한다 이는 자식의 필드를 초기화할 때 부모 필.. this, static, 상속 개념 1. 클래스 (1) this 객체 자기 자신을 의미 (2) this() 자기자신의 생성자를 의미 생성자 내부에서만 사용이 가능하며 최상단에 작성해야한다 -> 생성자 내부에서 나의 다른 생성자를 호출할 때 사용한다 2. static (1) static 맴버 프로그램이 실행되는 동안 계속해서 유지되는 저장공간 프로그램이 시작되면 생성되고 프로그램이 종료될 때까지 유지된다 정적맴버는 클래스 자체에 속하는 맴버로 클래스를 통해 접근 가능 객체를 생성하지 않아도 사용할 수 있다 정적변수(static variables)와 정적 메소드(static method) 1) 정적변수 : 클래스의 모든 인스턴스에서 동일한 값을 공유, 객체 간에 정보 공유에 사용 2) 정적메소드 : 객체를 생성하지 않아도 호출 가능, 유틸리티.. 이전 1 2 다음