가변인자가변인자(Variable Arguments, 줄여서 varargs)는 자바 5에서 도입된 기능으로 메소드의 파라미터를 가변적으로 받을 수 있게 해주는 문법입니다. 메소드 오버로딩을 하기 위해서 파라미터를 바꿔가며 만드는 것이 아니라 하나의 메소드로 표현이 가능합니다.가변인자 예시Java의 API에서 가변인자를 사용하는 많은 메소드가 있습니다.가장 흔한 예로는 배열을 쉽게 만드는 Arrays.asList(), 여러개의 문자열을 받아 포맷을 만드는 String.format()등의 메소드가 있습니다.클래스에 들어가보면 메소드에서 파라미터 (...args) 형태로 인자를 받은 것을 볼 수 있습니다.하나의 메소드에 가변인자를 적용함으로써 메소드를 하나만 적을 수 있고, 사용하는 곳에서 유연하게 인자를 처리..
컬렉션 프레임워크?컬렉션이란 데이터를 저장하고 처리할 때 재사용 가능하도록 만든 자료구조의 집합입니다.그리고 프레임워크란 어떤 기능을 완성하기 위하여 전체적인 구조가 갖춰져 있고, 빈 부분을 채워서 넣을 수 있는 것을 의미합니다.즉, 컬렉션 프레임워크란 여러 개의 데이터를 담아 처리하기 위해 만든 자료구조 껍데기라고 볼 수 있습니다. 개발자에게 다양한 데이터 구조와 알고리즘을 일관된 방식으로 사용할 수 있게 해줍니다.컬렉션 프레임워크의 종류자바의 컬렉션 프레임워크는 java.util 패키지에서 사용할 수 있으며, 위의 그림에서와 같이 주요 인터페이스로는 List, Set, Map, 그리고 Queue가 있습니다.List: 순서가 있는 데이터의 집합으로 중복값을 허용함Set: 순서가 없는 데이터의 집합으로 ..
제네릭이란제네릭(generic)이란 타입을 사용하는 쪽에서 정의하여, 코드의 재사용성과 타입 안정성을 제공하는 기능입니다.자바에서 List 자료형에는 아래와 같이 괄호 안에 타입을 지정한다고 배웁니다.List intList = new ArrayList();intList.add(10000);이 코드는 List자료형인 intList변수에 Integer타입만 들어올 수 있다는 것을 의미합니다.그렇지만 동일한 List 클래스를 아래와 같이 선언하면 해당 리스트에는 다른 타입을 받을 수 있습니다.List strList = new ArrayList();strList.add("good");이것이 가능한 이유는 List가 제네릭 인터페이스라서 그렇습니다.'타입을 사용하는 쪽에서 정의'할 수 있기 때문입니다. List..
String Constant Pool(String Pool) String 객체는 불변객체라고 합니다. 한 번 객체가 생성되면 값이 바뀌지 않는 것이죠. 그렇다면 아래 코드의 결과는 어떻게 될까요? public class StringExample { public static void main(String[] args) { String str1 = "abc"; String str2 = "abc"; String str3 = new String("abc"); System.out.println(str1 == str2); System.out.println(str1 == str3); System.out.println(str1.equals(str3)); } } 결과 첫번째 String과 두번째 String이 다르다고 ..
String 클래스 String 클래스를 API문서와 클래스를 직접 확인해보면 위와같이 선언되어 있는 것을 볼 수 있습니다. final로 선언되어 있고 Object 를 상속받으며 Serializable, Comparable CharSequence 인터페이스를 구현하고 있는 구현체입니다. final로 선언되어 있으니 String 클래스는 상속이 불가능하고, 자바의 모든 클래스는 Object로 부터 상속받니 이것은 당연한(?)사실입니다. 그렇다면 인터페이스가 궁금해집니다. 먼저, Serializable은 '구현해야 하는 메소드가 하나도 없는 특이한 인터페이스' 입니다. 이 인터페이스로 선언하면, 해당 객체를 다른 서버로 전송 가능하거나 파일로 저장이 가능한 상태가 됩니다. 그리고 Comparable은 이름에..
자바의 가장 큰 특징 중 하나는 플랫폼에 독립적으로 실행이 가능하다는 것입니다. 이것은 CPU 또는 운영체제에 상관없이 코드를 실행시킬 수 있다는 의미인데요. 이를 위해서는 자바의 동작 방식에 대한 이해가 필요합니다. 자바의 기본동작 자바는 기본적으로 JVM 위에서 동작합니다. JVM이란 Java Virtual Machine의 약자로 이 JVM이 실질적으로 기계어로 번역 후 컴퓨터에게 전달시켜주면 컴퓨터가 프로그램을 실행 시킬 수 있습니다. 각 OS 종류에 맞는 자바를 설치하면, 함께 JVM은 OS에 맞게 설치 됩니다. 자바코드 실행 과정 자바코드의 실행 과정은 아래와 같습니다. 컴파일 순서 먼저 작성한 java 코드를 실행시키면 javac 컴파일러가 바이트코드로 컴파일합니다. 컴파일 된 결과로 작성한 ..