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..
Java Checked Excpetion, UnChecked Exception
·
Language/Java
자바에서 예외는 전체적으로 Error와 Exception으로 나뉘게 됩니다. Error란 시스템 레벨에서 발생하는 심각한 수준의 오류를 뜻하며, 개발자가 미리 예측할 수 없는 오류입니다. Exception이란 로직 상에서 발생하는 오류로, 개발자가 구현한 코드에서 발생하여 예외를 예측할 수 있으며 미리 예방할 수 있습니다. 이러한 예외 클래스들은 최상위 클래스인 Object를 상속받은 Throwable이라는 클래스를 기반으로 Error와 Exception클래스로 나뉘며, 이때 Exception클래스는 RuntimeException 상속 여부에 따라 CheckedException과 UncheckedException으로 나뉘게 됩니다. RuntimeException의 상속 여부에 따라 CheckedExcep..
DB / 데이터베이스 - 인덱스
·
Database
1) 인덱스란 테이블의 데이터를 빠르게 검색할 수 있는 자료 구조로, 테이블의 검색 속도를 높이기 위해 사용됩니다. 데이터베이스 안의 레코드를 풀 스캔하지 않고, B Tree로 구성된 구조에서 index파일 검색으로 속도를 향상시키는 기술입니다. 2) 인덱스 장/단점 장점 - 1. 테이블 검색과 정렬 속도가 향상됩니다. 2. 인덱스를 기본키로 자동으로 설정해 관리가 용이합니다. 단점 - 1. 인덱스 파일을 별도로 만들어야함으로 파일의 크기가 늘어납니다. 2. 인덱스를 처음 생성하는데 시간이 많이 소요됩니다. 3. 인덱스된 컬럼 값이 변경되거나 인덱스를 업데이트하게되면 성능이 저하됩니다. 3) 인덱스 SQL문 1. 인덱스 생성문 1 - 1. 고유 인덱스 생성문 ( 유일한 값을 갖는 컬럼에 대해) CREAT..
교착 상태
·
CS/Operating Systems
2개 이상의 프로세스가 다른 프로세스의 작업이 끝나기만을 기다리며 작업을 더 이상 진행하지 못하는 상태를 교착상태라고 합니다. 이러한 교착 상태는 시스템 자원, 공유 변수, 응용 프로그램과 같이 다른 프로세스와 공유할 수 없는 자원을 사용할때 발생합니다. 교착 상태의 필요 조건으로는 4가지가 있습니다. 1. 상호배제 : 한 프로세스가 사용하는 자원은 다른 프로세스와 공유할 수 없는 배타적인 자원이어야 합니다. 배타적인 자원은 임계구역으로 보호되기 때문에 다른 프로세스가 동시에 사용할 수 없습니다. 2. 비선점: 한 프로세스가 사용 중인 자원은 중간에 다른 프로세스가 빼앗을 수 없어야 합니다. 자원을 빼앗을 수 없으면 공유할 수도 없으므로 교착상태가 발생할 수 있습니다. 3. 점유와 대기 : 프로세스가 어..
자바 - 동일성과 동등성(equals, == )
·
Language/Java
동등성은 실제 인스턴스가 같음을 의미하며, 참조하는 값을 비교하는 == 비교의 값과 같습니다. 동일성은 인스턴스가 가지고 있는 값이 같은 것을 의미하며 동등성 비교는 equals메소드를 통해 구현해야합니다. * == 연산자 : 두 객체가 같은지 검사합니다. - 피 연산자가 원시타입인 경우(int, double, boolean, ...) : 값이 같은지 비교합니다. - 피 연산자가 참조타입인 경우(Integer, Double) : 객체의 주소가 같은지 비교합니다. * (override된) equals() 연산자 : 내용이 같은지 검사합니다. - 피 연산자가 원시타입인 경우 : 내용이 같은지 비교합니다. - 피 연산자가 참조타입인 경우 : 객체의 주소가 같은지 비교합니다. public boolean equa..
takoyummy
'분류 전체보기' 카테고리의 글 목록 (15 Page)