Set 컬렉션 클래스 Set 컬렉션 클래스는 Set 인터페이스를 구현한 클래스이다. Set 컬렉션 클래스는 요소의 저장 순서를 유지하지 않고, 같은 요소의 중복 저장을 허용하지 않는다. 따라서 중복을 제거해야 하거나 저장 순서가 중요하지 않을 때 자주 사용되는 컬렉션 클래스이다. 이러한 Set 컬렉션 클래스에 속하는 대표적인 클래스는 다음과 같다. 1. HashSet 2. TreeSet 간단하게 이 두 가지 클래스에 대해 알아보자. HashSet 클래스 HashSet 클래스는 Set 컬렉션 클래스에서 가장 많이 사용되는 클래스이다. HashSet 클래스는 hash 알고리즘을 사용하여 검색 속도가 매우 빠르다. 이러한 HashSet 클래스는 내부적으로 HashMap 인스턴스를 이용하여 요소를 저장한다. H..
String 클래스는 불변이다 자바에는 String, StringBuffer, StringBuilder 클래스가 존재한다. 자바에서 String 클래스는 보통 불변(immutable)하다. 즉, 한 번 초기화되면 변하지 않는다. 혹자는 String 클래스도 변한다고 말하지만, 사실 그것은 변하는 게 아니라 새로 생성한 것뿐이다. 예를 들어, String 클래스의 concat() 메서드나 "+" 연산자를 이용해 문자열의 변화를 주더라도, 그것은 문자열이 변경됐다기보다는, 새로 생성한 것이라고 봐야 한다. 자세한 내용은 아래 게시글을 참조하면 좋다. [JAVA] 자바 String Constant Pool 이란?, String "=="와 equals의 차이 String Constant Pool이란? 아래와 같..
List 컬렉션 클래스 List 컬렉션 클래스는 List 인터페이스를 구현한 클래스이다. List 컬렉션 클래스는 객체를 순차적으로 저장한다. 객체를 인덱스로 관리하기 때문에 List 컬렉션에 객체를 추가하면 인덱스가 자동으로 부여된다. 이 인덱스를 이용해 객체를 검색하고 삽입, 삭제할 때 사용한다. 이러한 List 컬렉션은 요소의 저장 순서가 유지되고, 같은 요소의 중복 저장을 허용한다는 특징을 가진다. List 인터페이스에서 공통적으로 제공하는 주요 메서드는 다음과 같다. 메서드 설명 boolean add(E e) 해당 리스트(list)에 전달된 요소를 추가 void add(int index, E e) 해당 리스트의 특정 위치에 전달된 요소를 추가 void clear() 해당 리스트의 모든 요소를 제..
Java Collections Framework란 Java Collections Framework는 재사용이 가능한 Collection 자료 구조를 구현하는 클래스 및 인터페이스들의 집합이다. 간단히 말해 여러 가지 자료 구조들을 미리 만들어놓고 지원하는 라이브러리라고 생각할 수 있다. Java Collections Framework는 데이터를 저장하는 자료 구조에 따라 다음과 같은 주요 인터페이스를 정의한다. 1. List 인터페이스 2. Set 인터페이스 3. Map 인터페이스 여기서 List와 Set 인터페이스는 모두 Collection 인터페이스를 상속 받지만 Map 인터페이스는 구조상의 차이로 별도로 정의한다. 따라서 List 와 Set 인터페이스의 공통적인 부분은 Collection 인터페이스..
String Constant Pool이란? 아래와 같은 코드를 살펴보자. String a = "Java"; String b = "Java"; String c = new String("Java"); // 결과 : same if(a == b) { System.out.println("same"); }else { System.out.println("different"); } // 결과 : different if(a == c) { System.out.println("same"); }else { System.out.println("different"); } a와 b는 같다고 나오지만, a와 c는 다르다고 결과가 나온다. 이유가 뭘까? 자바의 String은 두 가지 방법으로 생성할 수 있다. 첫 번째 방법으로 문자열..
JVM(Java Virtual Machine)이란? JVM은 Java Virtual Machine, 즉 자바 가상 머신의 약자를 따서 줄여 부르는 용어이다. JVM은 OS와 Java 애플리케이션 사이의 중개자 역할을 한다. JVM은 자바 바이트코드를 실행할 수 있는 환경을 제공해준다. 이를 통해 자바 바이트 코드가 플랫폼에 독립적으로 어디서든 실행될 수 있게 한다. 즉, JVM 덕분에 OS에 상관없이 어디서든 JAVA 애플리케이션을 실행할 수 있게 된다. JVM 구성 1. Class Loader(클래스 로더) JVM내로 클래스파일(.class)를 로드하고, 링크를 통해 배치하는 작업을 수행하는 모듈이다. Runtime 시점에 클래스를 로딩하게 해 주며 클래스의 인스턴스를 생성하면 클래스 로더를 통해 메모..
Garbage Collection(가비지 컬렉션)이란? JVM에는 Garbage Collecter(가비지 컬렉터)가 존재한다. 가비지 컬렉터는 더 이상 참조되지 않는 Garbage(가비지)라고 불리는 불필요한 메모리를 알아서 정리해주는 역할을 한다. 가비지 컬렉터가 주기적으로 메모리 누수를 방지하기 위해 메모리를 청소하는 과정을 Garbage Collection(이하 GC)라고 한다. JVM에 대해 잘 모른다면 다음을 참고하자. [JAVA] JVM(Java Virtual Machine)이란? JVM(Java Virtual Machine)이란? JVM은 Java Virtual Machine, 즉 자바 가상 머신의 약자를 따서 줄여 부르는 용어이다. JVM은 OS와 Java 애플리케이션 사이의 중개자 역할을..
자바(JAVA)란? 자바는 C언어에 객체 지향적 기능을 추가하여 만든 C++과 달리, 처음부터 객체 지향 언어로 개발된 프로그래밍 언어이다. 자바는 자바 가상 머신(JVM, Java Virtual Machine)을 사용하여 운영체제와 독립적으로 동작할 수 있다. 따라서 자바는 어느 운영체제에서나 같은 형태로 실행 될 수 있다. 자바의 특징 자바는 객체지향 언어이다. 객체를 만들기 위해서 설계도인 클래스를 작성하고, 객체와 객체를 연결하여 목적에 맞는 프로그램을 만든다. 객체지향 언어의 특징인 캡슐화, 상속성, 다형성을 완벽하게 지원한다. 이식성이 높다 자바 실행환경이 설치되어 있는 모든 운영체제에서 실행 가능하다. 하이브리드 언어이다. 컴파일 언어인 동시에 인터프리터 언어이다. 텍스트 소스를 컴파일하여 ..