일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 컬렉션프레임워크
- emmet
- MySQL
- Git이해하기
- 기본코드
- cmd
- html
- 이클립스
- Git알아보기
- javascript
- 필드
- arraylist
- 점프 투 파이썬
- 오버라이딩
- 버튼페이지이동
- object
- 맨땅에 해딩
- form
- java
- java기초
- jdbc
- CSS
- 데이터베이스연동
- list
- Eclipse
- 파일이동버튼
- java입문
- Collection
- 배열
- js
- Today
- Total
목록Java/개념 정리 (20)
단단히
[LinkedList] LinkedList는 List 구현 클래스이다. 때문에 ArrayList와 비슷한 사용방법을 가지고 있지만 내부 구조는 완전히 다르다. LinkedList는 체인처럼 인접 참조를 링크해서 관리한다. 연결된 앞뒤 링크만 변경되고 나머지 링크는 변경되지 않는다. 마찬가지로 특정 인덱스를 삽입할 때도 앞뒤 링크만 변경되고 나머지 링크는 변경되지 않는다. 위 그림과 같이 앞뒤의 링크만 변경되기 때문에 빈번한 객체 삽입과 삭제가 일어나는 곳에서 좋은 성능을 발휘한다. [ ArrayList VS LinkedList ] - 차이점 - 속도 차이 ArrayList와 LinkedList의 속도 차이는 생각보다 많이 난다. 위의 코드에서는 반복을 100,000으로 지정했기에 나름 결과를 바로 볼 수..
[Voctor] Voctor는 다른 컬렉션 프레임워크 중 가장 먼저 등장한 클래스이다. ArrayList와 동일한 내부 구조를 가진다.(배열을 가지고 있으며 순서대로 값들을 저장한다.) ArrayList와 다른 부분이 있는데, Voctor는 동기화된 메서드로 구성되어있다. 그래서 멀티 스레드가 동시에 메서드들을 실행할 수 없다. 하나의 스레드의 실행을 완료하고 나서야 다른 스레드를 실행할 수 있다. 그래서 멀티 스레드 환경에서 안전하게 객체를 추가, 삭제할 수 있다. 이것을 스레드가 안전하다(Thread Safe)라고 한다. [Voctor 생성] List list = new Voctor (); package pack_pratice; import java.util.List; import java.util...
빈(bean) 클래스는 getter와 setter이 있는 클래스를 말한다. 컴포넌트 형태로 구성된 클래스이다. 객체지향 프로그래밍의 원칙에는 캡슐화, 추상화, 다형성, 정보 은닉, 상속성이 있다. Getter와 Setter 메서드는 정보 은닉, 캡슐화의 원칙을 잘 보여준다. 객체지향 프로그래밍은 데이터 무결성이 깨지는 것을 방지하기 위해 객체 데이터에 직접 접근을 막는다. 이때 데이터 무결성이란 데이터의 정확성과 일관성을 유지하고 보증하는 것을 말한다. 객체 데이터를 외부에서 직접 접근을 한다면 데이터를 마음대로 읽고 변경할 수 있기에 예상치 못한 문제가 발생할 수 있다. 이런 문제를 방지하기 위해 데이터 값의 직접 접근을 제한(private)하고 메서드를 공개하여 외부에서 메서드를 통해 데이터에 접근하..
[컬렉션 프레임워크(Collection Framework / C.F.)의 개념] 여러 개의 변수(Data)를 만들고 관리해야 할 때, 배열은 좋은 방법이다. 그러나 배열은 구조적 단점이 있는데, 배열은 지정된 크기가 필요하고 연속적인 구조를 가져야 한다.(> 선형 구조 자료) 이후 배열의 단점을 개선할 수 있는 배열 자료구조를 만들었다. 우선 java.util 패키지에 Collection이라는 인터페이스를 만들었고 Collection을 상속받는 List 인터페이스를 만들었다. 이어 List 인터페이스를 구현한 클래스를 3개 만들었는데, Vector, ArrayList, LinkedList이다. Collection 인터페이스를 최상위 슈퍼 인터페이스로 만들고 배열 자료형을 참조하는 인터페이스와 이를 구현한..
개발을 하다 보면 다수의 객체를 저장하고 필요할 때마다 해당 기능을 수행하는 객체를 불러와 사용하는 경우가 많다. 지금까지 객체를 삭제하고 검색하고 추가를 할 때는 배열을 많이 사용했다. 배열의 장점은 데이터 추가가 쉽고 객체를 삭제하거나 검색하기에도 좋다. 하지만 배열은 구조적인 단점이 있다. 데이터의 길이를 결정하고 사용해서 추가에 한계가 있다. 그렇다고 배열의 길이는 처음부터 길게 잡는 것은 메모리 사용에 효율적이지 못하다. 삭제 또한 배열의 인덱스의 칸이 그대로 비워져 있어 나중에는 배열의 인덱스 칸에 데이터가 존재하는지 확인하는 절차가 필요하다. 연속적인 구조를 가져야 한다.(>> **선형구조 자료) 자주 또 많이 사용하는 배열의 문제점을 보완하기 위해 자료구조를 바탕으로 객체들을 효율적으로 추..
지금껏 배운 배열은 1차원 배열이다. 배열은 2차원, 3차원.. 다차원 배열이 존재한다. 이 배열은 세 개의 배열 객체를 생성한다. 우선 2차원 배열 ary의 길이는 2이다. 그리고 나서 배열 ary [0]과 ary [1]에 참조 배열들이 또 들어간다. 이렇게 ary [ 0 ]과 ary [ 1 ]에는 배열을 참조하는 변수의 역할을 하게된다. 즉, ary [0]. length의 값은 4가 된다. [ ! ] 배열 안에는 참조 자료형이 들어갈 수 있다. 배열 속 배열이라고 생각하자!