제네릭 Generic 타입을 파라미터화 하여 실행시에 구체적으로 해당하는 타입으로 결정 → 특정(Specific)타입을 미리 지정해주는 것이 아닌 필요에 의해 지정할 수 있도록 하는 일반(Generic)타입 장점 잘못된 타입이 들어올 수 있는 것을 컴파일 단계에서 방지 가능 따로 타입을 체크하고 변환할 필요가 없다 (캐스팅 최소화로 인한 관리수월) 타입체크를 강력하게 하여 잘못된 데이터를 일반적인 원시, 참조 타입보다 안정성 확보에 좋음 코드의 재사용성이 높아짐 사용방법 타입 설명 Type Element Key Value Number 반드시 한 글자일 필요도 없고 위의 표와 일치할 필요도 없다. Just 암묵적 규칙 선언 파라미터로 명시할 수 있는 것은 참조타입이다 사용자가 정의한 클래스도 타입으로 올 ..
지역변수 특정 구역 내에서 생성되어 그 구역에서만 사용 public class ExamMain { static String str = "전역변수"; public static void main(String[] args) { System.out.println(str); String local = "지역변수"; System.out.println(local); method1(); } public static void method1() { System.out.println(str); //System.out.println(local); //지역변수이기에 출력 불가. 에러발생 } } // Console 전역변수 지역변수 전역변수 전역변수 멤버(인스턴스) 변수 : 클래스 영역에 선언되어, 객체가 생성될 때 마다 만들어..
값에 의한 전달 / 주소값에 의한 전달 Call by Value // count의 값을 add에 넘겨 변경시키더라도 출력값엔 변화가 없다 // ( 값을 전달받았기 때문에 ) class Add { void add(int count) { count++; } } class Counter { int count = 0; } public class ExamMain { public static void main(String[] args) { Counter counter = new Counter(); System.out.println("더하기 전 : "+counter.count); Add add1 = new Add(); add1.add(counter.count); System.out.println("더한 후 : "+c..
StringBuffer 문자열을 추가하거나 변경할 때 주로 사용하는 자료형 String 자료형이나 인스턴스의 경우 생성되면 변경이 불가능 → 문자열을 추가, 변경하는 과정 필요 버퍼(buffer)라는 독립적 공간을 통해 값을 변경, 추가 버퍼는 기본적으로 16개의 문자를 저장할 수 있지만 생성자를 통해 크기를 설정 가능 버퍼(Buffer) : 임시저장공간 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리의 영역 ※버퍼링을 큐(Queue)라고도 표현한다 append 문자열 추가 StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append("오늘의"); stringBuffer.append(" 점심은 "); s..
Object - java.lang 패키지 중 가장 많이 사용되는 클래스(모든 자바 클래스들의 최고 조상 클래스) - 필드를 가지지 않으며 11개의 메서드로 구성 메서드 설명 protected Object clone() 해당 객체의 복사본을 생성 boolean equals(Object obj) 두 객체가 같은지 protected void finalize() 가비지 컬렉터가 객체의 리소스를 정리하기 위해 호출 ClassgetClass() 클래스 타입 반환 int hashCode() 해시 코드 반환 void notify() 대기하고 있는 하나의 스레드를 다시 실행할 때 void notifyAll() 대기하고 있는 하나의 모든 스레드를 다시 실행할 때 String toString() 객체의 정보를 문자열로 반환..
배열은 자료형의 집합이다 String[] week = {"월", "화", "수", "목", "금", "토", "일"}; // 배열의 길이는 고정되어 있다 String[] week = new String[7]; week[0] = "월"; week[1] = "화"; week[2] = "수"; week[3] = "목"; week[4] = "금"; week[5] = "토"; week[6] = "일"; // 배열의 길이를 설정하지 않았기 때문에 오류가 발생한다 String[] week = new String[]; // 간단한 배열 출력 for (int i=0; i
- Date는 JDK 1.0부터, Calender는 JDK 1.1부터 제공되었다. - JDK 1.8부터 java.time 패키지로 Calender와 Date의 단점을 개선한 클래스들이 추가되었다. - Date, Calender의 사용을 지양하자 Date // 객체를 생성하여 현재 날짜 출력해보기 Date myDate = new Date(); System.out.println(myDate); // getTime : 1970년 1월 1일 00:00:00 UTC부터 주어진 날짜 사이의 경과 시간을 밀리초로 나타냄 System.out.println(myDate.getTime()); // 1670634141973 myDate.setTime(1639426833210L); System.out.println(myDat..
Wrapper - 기본 타입의 데이터를 객체로 취급해야 하는 경우 사용한다 - 래퍼클래스는 인스턴스에 저장된 값을 변경할 수 없다 ※ Integer / Character 클래스는 기본 타입과 이름이 다르다 기본타입 래퍼 클래스 byte Byte short Short int Integer long Long flot Float double Double char Character boolean Boolean Boxing & Unboxing - Boxing : 기본 타입의 데이터를 래퍼 클래스의 인스턴스로 변환하는 과정 - Unboxing :반대로 인스턴스에 저장된 값을 기본 타입의 데이터로 꺼내는 과정 Integer num = new Integer(1); // 박싱 int n = num.intValue(); ..