Java(15)
-
자바 자료 구조 : 큐 - Queue
Queue 기본적인 자료 구조로 먼저 넣은 데이터가 먼저 나오는 First in First out 구조로 나타낸다. 먼저 넣은 데이터가 나중에 나오는 Stack과는 반대되는 구조이다. 큐는 주로 운영체제의 프로세스 스케줄링 방식을 구현하기 위해 많이 사용된다. 자바에서는 기본적으로 Queue 클래스를 제공해준다. add와 offer 메소드를 사용하여 데이터를 추가하고, poll이나 remove 메소드를 사용하여 데이터를 꺼낸다. 하지만 자바에서는 Queue 클래스를 단일로 사용하지는 못 하고 LinkedList와 같이 사용해야 한다. import java.util.Queue; import java.util.LinkedList; // 선언 Queue intQueue = new LinkedList(); QU..
2022.06.27 -
자바 자료 구조 : 배열 - Arrays & ArrayList
배열 - Arrays 데이터를 나열하고 각 데이터를 인덱스에 대응하도록 구성하는 데이터 구조 같은 종류의 데이터를 순차적이고 효율적으로 관리하기 위해 사용한는 구조 장단점 장점 : 빠른 접근 가능 - 인덱스 번호를 가지고 접근 단점 : 최대 길이를 미리 지정하기 때문에 데이터 추가 및 삭제에 대한 어려움이 있다. //new 키워드를 가지고 배열을 미리 선언 및 삽입 가능 Integer[] list = new Integer[5]; list[0] = 1; list[1] = 2; //list = {1, 2, _, _, _}; //위와 달리 선언시 데이터 삽입한 상태로 선언도 가능 Integer list[] = {1, 2, 3, 4, 5}; Integer[] list2 = {6, 7, 8, 9, 10}; 자바에..
2022.06.27 -
[JAVA] 객체 지향이란?
등장 C 언어 처럼 실행하고자 하는 순서대로 명령어 실행 -> 절차 지향 -> 절차 지향 언어라고 불림 대체적으로 간단한 로직을 순차적으로 처리하여 결과를 얻는데 -> 컴퓨터가 발전함에 따라 복잡도가 증가하고 유지 보수나 개발 기간 등 여러 방면에서 비 효율적이라 판단되었다. 이를 대체 하기 위해 효과적인 방식으로 개발을 하기 위해 객체 지향 개발 방법이 설계되었다. 특징 추상화 상속 은닉 재사용 인터페이스 여러 곳에서 객체 지향으로 개발을 시작한다. 현실에 존재하는 사물을 그대로 모델링해 행위와 속성을 정의하고, 실제 사물이 동작하는 방식으로 설계 사물 == Object 사물이 하는 행동 == Method 사물이 지닌 속성 == Variable 객체의 3가지 요소 3 가지를 유지해야 하고, 이를 유지 ..
2022.04.03 -
[Effective Java] 아이템 9 : try-finally 보다는 try-with-resources를 사용하라
try-finally InputStream, OutputStream, java.sql.Connection -> 클라이언트가 지나칠 가능성이 있기에 성능에도 문제를 줄 수 있다. 그래서 안전망으로 아이템 8에서 사용한 Finalizer를 사용한다. 또한, 자원이 닫히는 것을 보장하는 try-finally가 존재한다. https://devaily.tistory.com/34 [Effective Java] 아이템 8 : finalizer와 cleaner 사용을 피하라 자바의 객체 소멸자 Finalizer : 예측할 수 없고, 상황에 따라 위험할 수 있어 일반적으로 불필요, 그냥 쓰지 마세요.. 그냥 쓰지 말라고 Cleaner : Finalizer 보다는 덜 위험하지만, 여저힌 위험하고, 불 devaily.tis..
2022.03.31 -
[Effective Java] 아이템 8 : finalizer와 cleaner 사용을 피하라
자바의 객체 소멸자 Finalizer : 예측할 수 없고, 상황에 따라 위험할 수 있어 일반적으로 불필요, 그냥 쓰지 마세요.. 그냥 쓰지 말라고 Cleaner : Finalizer 보다는 덜 위험하지만, 여저힌 위험하고, 불필요하다. C++의 destructor와 Java의 finalizer & cleaner 파괴자는 특정 객체와 관련된 자원을 회수하는 보편적인 방법이고 자바의 소멸자들은 접근할 수 없게 된 객체를 회수하는 역할을 가비지 컬렉터가 담당한다. 자바에서는 try-with-resources와 try-finally를 사용해 해결한다. 왜 Finalizer와 Cleaner의 사용을 자제해야하나? Finalizer와 Cleaner는 즉시 수행된다는 보장이 전혀 없다. 위 두 가지로는 데때 실행되야..
2022.03.30 -
[Effective Java] 아이템 7 : 다 쓴 객체 참조를 해제하라
다 쓴 객체 참조를 해제하라 C같은 메모리를 직접 관리 하는 언어에서 자바와 같이 Garbage Collector를 가진 언어를 사용하면 편리성은 증대해진다. Garbage Collecotor가 사용한 객체를 회수하기 때문이다. 그렇다고 메모리 관리에 주의를 기울이지 않으면 안된다. public class Stack { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack() { elements = new Object[DEFAULT_INITIAL_CAPACITY]; } public void push(Object e) { ensureCapacity()..
2022.03.16