Thread
·
Language/Java
프로세스와 스레드 - 프로세스 : 실행 중인 프로그램 -> 프로그램을 실행하면 OS로부터 실행에 필요한 자원을 할당받아 프로세스가 된다 - 프로세스는 프로그램을 수행하는 데 필요한 데이터와 메모리 등의 자원 그리고 스레드로 구성되어 있으며, 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이 스레드 - 둘 이상의 쓰레드를 가진 프로세스를 '멀티쓰레드 프로세스'라 칭한다 - 멀티쓰레딩 : 하나의 프로세스 내에서 여러 쓰레드가 동시에 작업을 수행하는 것 - 멀티쓰레딩의 장점: 1. CPU의 사용률을 향상시킨다. 2. 자원을 보다 효율적으로 사용할 수 있다. 3. 사용자에 대한 응답성이 향상된다. 4. 작업이 분리되어 코드가 간결해진다. 스레드의 구현과 실행 - 쓰레드를 구현하기 위해선 Thread클래스를..
Generics
·
Language/Java
Generics 다양한 타입의 객체들을 다루는 메서드나 컬랙션 클래스에 컴파일 시 타입체크를 해주는 기능으로, 객체의 타입을 컴파일 시 체크하기 때문에 객체의 타입 안정성을 높이고, 형 변환의 번거로움이 줄어듭니다. class Box {} Box : 제네릭 클래스, T의 Box또는 T Box라고 읽습니다. T : 타입 변수 또는 타입 매개변수 Box : 원시 타입 지네릭스의 제한 - static멤버에 타입 변수 T를 사용할 수 없습니다 -> T는 인스턴스 변수로 간주되기 때문입니다. static멤버는 인스턴스 변수를 참조할 수 없습니다. static멤버는 타입 변수에 지정된 타입, 즉 대입된 타입의 종류에 관계없이 동일한 것이어야하기 때문입니다. - 지네릭 타입의 배열을 생성하는 것도 허용되지 않습니다 ..
Collection Framework
·
Language/Java
- 컬렉션 프레임웍이란, '데이터 군을 저장하는 클래스들을 표준화한 설계'를 뜻합니다. - collection : 다수의 데이터 - framework : 표준화된 프로그래밍 방식 - 컬렉션 프레임 워크에서는 그룹을 크게 3가지 타입이 존재한다고 인식하고 각 컬랙션을 다루는데 필요한 기능을 가진 3개의 인터페이스를 정의하였습니다. - List, Set, Map - List : 순서가 있는 데이터의 집합으로, 데이터의 중복을 허용합니다. (ArrayList, LinkedList, Stack, Vector등) - Set : 순서를 유지하지 않는 데이터의 집합으로, 데이터의 중복을 허용하지 않습니다. (HashSet, TreeSet) - Map: 키와 값의 쌍으로 이루어진 데이터의 집합으로, 순서는 유지되지 않..
날짜와 시간 & 형식화 date, time and formatting
·
Language/Java
Date는 날짜와 시간을 다룰 목적으로 JDK1.0부터 제공되어온 클래스입니다. 그러나 Date클래스는 기능이 부족했기 때문에 Calendar라는 새로운 클래스를 JDK1.1부터 제공하기 시작했습니다. 다만 Calendar 클래스도 단점이 존재하기 때문에, JDK 1.8부터 'java.time'패키지라는 기존의 단점들을 개선한 새로운 패키지가 추가되었습니다. Calendar Calendar는 추상클래스로 직접 객체를 생성할 수 없고, 메서드를 통해서 완전히 구현된 클래스의 인스턴스를 얻어야 합니다. Calendar cal = Calendar.getInstance(); 다음은 Calendar의 get메서드로 받아올 수 있는 값들에 대한 예제입니다. package ch10; import java.util.C..
java.lang패키지와 유용한 클래스
·
Language/Java
java.lang 패키지 java.lang패키지는 자바 프로그래밍에 가장 기본이 되는 클래스를 포함하고 있기 때문에, java.lang패키지의 클래스들은 import문 없이도 사용할 수 있습니다. 다음에 정리할 내용들은 java.lang패키지에 포함되어 있는 대표적인 클래스들입니다. Object 클래스 모든 클래스들의 최고 조상으로, 11개의 메서드를 지니고 있습니다. equals(Object obj) public boolean equals(Object obj){ return (this==obj); } 위의 코드는 Object클래스에 정의되어 있는 equals메서드로, 두 객체의 같고 다름을 참조 변수 값으로 비교합니다. package ch9; class EqualsEx1 { public static v..
예외처리
·
Language/Java
예외처리 - 에러/오류 : 프로그램 실행 중 어떤 원인에 의해서 오작동을 하건 비정상적으로 종료가 되는 경우 - 컴파일 에러 : 컴파일할때 발생하는 에러 - 런타임 에러 : 프로그램 실행 도중 발생하는 에러 - 논리적 에러 : 컴파일도 잘 되고 실행도 잘 되지만 의도한 것과 다르게 동작하는 것 - 자바에서는 실행시 발생할 수 있는 프로그램 오류(런타임 에러)를 에러, 예외 두가지로 구분하였음 - 에러(Error) : 프로그램 코드에 으해서 수습될 수 없는 심각한 오류 ex) OutOfMemory / StackOverflow - 예외(Exception): 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 - 자바에서는 실행 시 발생할 수 있는 오류(Exception과 Error)를 클래스로 정의하였..
객체지향 프로그래밍2
·
Language/Java
01. 상속 - 상속이란, 기존의 클래스를 재 사용하여 새로운 클래스를 작성하는 것이다. - 상속을 통해서 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고, 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. - 생성자와 초기화 블럭은 상속되지 않는다. 멤버만 상속된다. - 자손 클래스의 멤버 개수는 조상 클래스보다 항상 같거나 많다. - 다중 상속을 허용하지 않는다. - 조상 클래스만 변경해도 모든 자손 클래스에, 자손의 자손 클래스에까지 영향을 미치기 때문에, 클래스간의 상속 관계를 맺어주면 자손 클래스들의 공통적인 부분은 조상 클래스에서 관리하고 자손 클래스는 자신에 정의된 멤버들만 관리하면 되므로 각 클래스의 코드가 적어져서 관리가 쉬워진다. ..
완독 스터디 - 객체지향 프로그래밍1
·
Language/Java
새로 알게된 사실이나, 중요하다고 생각하는 개념 위주로 정리해보았습니다. JVM 구조 1. 메소드 영역(=클래스 영역, static영역) - 메소드 영역, 클래스 파일의 바이트 코드가 로드되는 곳으로 JVM이 어떤 것들을 실행하려면 그 바이트 코드들이 메모리 공간에 저장이 되어있어야 합니다. JVM은 자바 프로그램에서 특정 클래스가 사용되면 해당 클래스의 클래스 파일을 읽어들여, 해당 클래스에 대한 정보를 메소드 영역에 저장합니다. 그 클래스의 변수도 이 영역에 저장됩니다. 2. 힙영역 - 인스턴스가 생성되는 공간으로, 프로그램 실행 중 생성되는 인스턴스는 모두 이곳에 생성됩니다. 즉 인스턴스 변수들이 생성되는 공간입니다. 3. 스택영역 - 이 메모리는 메서드가 작업을 수행하는 동안 지역변수들과 연산의 ..
직렬화와 역직렬화
·
Language/Java
자바의 직렬화란, java 내부 시스템에서 사용되는 객체나 데이터를 외부에서 사용할 수 있도록 byte형태로 변환하는 것입니다. 역직렬화란 byte로 변환된 Data를 원래대로 Object나 Data로 변환하는 기술로,직렬화된 바이트 형태의 데이터를 객체로 변환해서 JVM으로 적재시킵니다. 생성된 바이트는 플랫폼에 독립적이기 때문에 어디에서나 쓰일 수 있으며 한 플랫폼에서 직렬화된 객체는 다른 플랫폼에서 역직렬화를 통해 데이터를 받아올 수 있습니다. 직렬화는 생성한 클래스를 java.io.Serializable 인터페이스를 구현하는 클래스로 만들어야 그 조건이 성립됩니다. Serializable 인터페이스는 메소드도 필드도 없는 마킹 역할을 하는 인터페이스입니다. public class Tako impl..
takoyummy
'Language/Java' 카테고리의 글 목록 (2 Page)