본문 바로가기

Java dev/Java Basic

자바 기본



1. Object 

 모든 사물이나 개념을 말합니다. 


2. Class 

객체를 정의해 놓은 것이라고 보면 됩니다. 


3. Instance 

클래스로부터 생성된 객체를 그 클래스의 인스턴스라고 부릅니다.


4. 프로그램

사용자가 원하는 일을 처리할 수 있도록 프로그래밍 언어를 사용하여 올바른 수행절차를 표현해 놓은 명령어들의 집합을 말합니다.


5. 프로세스

간단하게 말하면 '실행 중인 프로그램' 입니다.

프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 되는 거에요.

프로세스는 수행에 필요한 데이터와 메모리등의 자원과 쓰레드로 구성되어 있어요.

쓰레드란 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것을 말해요.

그래서 프로세스에는 하나 최소한 하나 이상의 쓰레드를 가지고 있고 2개 이상을 멀티 쓰레드 프로세스라고 불러요.


6.Public

모든 곳에서 사용 가능. 어디서든 public 으로 선언된 멧소드나 변수를 호출하여 사용할수 있습니다.


7. Private

자신의 클래스안에서 선언된 변수나 멧소드는 외부에서 전혀 접근하지 못하게 하는겁니다

이경우는 부모클래스를 상속받은 자식클래스라고 할지라도 private 선언된 변수나 맷소드를 호출할수 없으며 오직 선언된 클래스 안에서만 사용가능합니다.


8. Protected 

외부에서 접근 할 수 없게 만들때 사용합니다. 선언한 클래스에서만 사용 가능합니다.

단 Protected가 선언되어있는 클래스를 상속하였을 경우에는 그 해당 변수나 멧소드를 선언되어진 클래스와 그 클래스를 상속한 클래스가 사용 할 수 있습니다.


9. 오버라이딩이란?

1. 사전적의미는 '~위에 덮어쓰다' 또는 '~에 우선하다' 입니다.

2. 즉, 조상 클래스(super class)로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩이라고 합니다.

3. 상속받은 메서드를 그대로 사용하기도 하지만, 자손 클래스(subclass) 자신에 맞게 변경해야 하는 경우가 많습니다. 이를 오버라이딩이라고 합니다.


10. 오버로딩이란?

2. 오버로딩은 기존에 없는 새로운 메서드를 추가하는 것이고, 오버라이딩은 위에서 처럼 조상으로부터 상속받은 메서드의 내용을 변경하는 것이기때문입니다.

3. 오버로딩은 메서드 이름이 같아도 매개변수가 다르다면 여러개를 선언할 수 있습니다.


11. Interface란?

추상 메서드처럼 추상메서드를 갖지만 추상클래스보다 추상화 정도가 높아서 추상클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없습니다. 오직 추상메서드와 상수만을 멤버로 가질 수 있으며, 그외의 다른 어떠한 요소도 허용하지 않습니다.

추상클래스가 완성되지 않은 '미완성 설계도' 라고 한다면, 인터페이스는 밑그림만 그려져 있는 '기본 설계도'라 할 수 있겠네요.


Interface 특징 :

인터페이스의 멤버들은 모두 몸체가 없습니다.

인터페이스의 멤버들은 Default로 모두 public입니다.

내부에 필드를 가질 수 없습니다

멤버에 어떠한 접근자, 한정자도 붙이지 않습니다.

인터페이스끼리 상속하면 더 큰 인터페이스가 됩니다.

인터페이스는 구현을 목적으로 합니다.

인터페이스도 상위 클래스의 역할을 할 수 있습니다. 상위 클래스의 이름으로 하위 객체의 함수를 호출합니다


12. List

순서가 있는 데이터의 집합. 데이터의 중복을 허용합니다.

예) 대기자 명단

구현 클래스 : ArrayList, LinkedList, Stack,Vector 등


13. Set

순서를 유지하지 않는 데이터의 집합. 데이터의 중복을 허용하지 않습니다.

예) 양의 정수집합, 소수의 집합

구현 클래스 : HashSet, TreeSet 등


14. Map

키(key)와 값(value)의 쌍(pair)으로 이루어진 데이터의 집합.

순서는 유지 되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용 합니다.

구현 클래스 : HashMap, TreeMap, Hashtable, Properties 등


1. Vector와 ArrayList는 컬렉션 프레임워크에서 가장 많이 사용 되는 컬렉션 클래스 입니다.

2. 이 둘은 List인터페이스를 구현하기 때문에 데이터의 저장순서가 유지되고 중복을 허용한다는 특징이 있습니다.

3. ArrayList는 기존의 Vector를 개선한 것으로 Vector와 구현원리와 기능적인 측면에서 동일하다고 할 수 있습니다.

4. Vector는 기존에 작성된 소스와의 호환성을 위해서 계속 남겨두고 있을 뿐이기 때문에 가능하면 ArrayList를 사용하는 것이 좋습니다.