전체 글 (72) 썸네일형 리스트형 21장 제네릭 제네릭 generic 직역하면 '일반적인'이라는 뜻이다. 자바에서의 제네릭(generic)이란 데이터의 타입을 일반화한다는 것을 의미한다. 제네릭은 클래스나 메소드에서 사용할 내부데이터 타입을 컴파일 시에 미리 지정하는 방법이다. 위의 설명만 본다면 뭔말인가 싶기도 하다. 자세한 설명은 아래 선언방법과 같이 설명해보겠다. 제네릭 선언은 클래스으로 한다. class Test { List test = new ArrayList(); public void pop( T inputItem ) { test.add( inputItem ); } } public class Example { public static void main(String[] args) { Test stringStack = new Test(); Te.. 20장 java.lang 패키지 Java.lang패키지 java.lang 패키지는 java의 수많은 패키지 중에서 가장 많이 쓰인다. java.lang 패키지의 클래스들은 import문 없이도 사용 가능하다. lang패키지의 모든 클래스 보기: https://docs.oracle.com/javase/7/docs/api/java/lang/package-frame.html java.lang (Java Platform SE 7 ) docs.oracle.com java.lang 패키지 에러 OutOfMemoryError(OOME) 메모리 부족 에러. 자바는 가상 머신에서 메모리를 관리하지만, 프로그램을 잘못 작성하거나 설정이 제대로 되어 있지 않을 경우에는 발생할 수 있다. StackOverflowError 호출된 메소드의 깊이가 너무 깊을 .. 19장 자바의 역사 / JVM 자바의 역사 자바의 역사는 1991년으로 거슬러 올라간다. 1991년에 "Green"이라는 프로젝트가 생기면서 자바의 모태가 탄생하기 시작했다. James Gosling, Mike Sheridan, Patrick Naughton 이렇게 3명의 젊은이가 TV와 시청자가 서로 상호 작용 할 수 있는(interactive한) 것을 만들기 위해서 시작되었지만 너무 앞서가는 것이었다. 1992년 고슬링의 사무실 앞에 있는 참나무를 보고 이름을 지은 "Oak"라는 언어다. 그 이후에 1995년 "Oak"라는 언어의 이름이 커피의 한 종류를 뜻하는 "자바 커피"의 이름을 본따 "Java"라고 바뀌면서 자바 기술이 시작하게 되었다. 1995년에 자바 언어를 만들면서 "Write Once, Run Anywhere"(WO.. 18장 정리 어느새 1권의 마지막장을 읽고있다. 마지막장은 앞의 내용들을 정리하고 넘어가는 단계라 따로 정리를 어떻게 해야할지 모르겠어서 뒤에 있는 요약문제를 풀어보기로 했다. 1. 참조자료형과 기본자료형의 차이는? new의 사용유무와 메모리할당량이다. 기본자료형은 할당되는 메모리가 정해져있고 참조자료형은 클래스의 따라 할당량이 달라진다. 2. 기본자료형 8가지를 나열하고 각 타입의 특징을 정리해보자. char - 문자형 / 2byte boolean -논리형 / 1bit byte - 정수형 / 1byte short - 정수형 / 2byte int - 정수형 / 4byte long - 정수형 / 8byte float - 실수형 / 4byte double - 실수형 / 8byte 3. 형변환이란? 왜해야하는가? 변수를 .. 17장 어노테이션 어노테이션 Annotation 클래스나 메소드등의 선언시에 @를 사용하는 것. JDK5부터 등장했다. 사전적 의미로는 '주석'이라는 뜻이있지만, 개발시 사용하는 '//', '/**/'와는 다르다 언제 사용되는가? 컴파일러에게 코드 문법 에러를 체크하도록 정보를 알려주거나 소프트웨어 개발툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보 제공 실행시(런타임시)특정 기능을 별도의 처리가 필요할 때 미리 정해져 있는 어노테이션은 5개이다. 내용은 아래와 같다 @Override 해당 메소드가 부모클래스에 있는 메소드를 override했다는 것을 명시적으로 선언한다. 만약 자식클래스에 여러개의 메소드가 있을 때 어떤 메소드가 override가 되었는지 쉽게 알 수 없을 수 있다. 실수로 매개변수가 빠졌거나.. 15장 Nested 클래스 Nested 클래스 : 클래스안에 또다른 클래스가 정의되는 것 Nested클래스를 사용하는 가장 큰 이유는 코드를 간단하게 표현하기위함이다. 자바 기반의 UI를 처리할 때 외부의 이벤트 처리를 하는 곳에서 많이 사용된다. Nested클래스는 선언방법에 따라 "Static nested 클래스"와 "내부(inner)클래스"로 나뉜다. 이 둘의 차이는 static으로 선언되었는지 여부이다. "내부(inner)클래스"는 다시 2가지로 나뉘는데 이름이 있는 내부클래스는 "로컬 내부 클래스(local inner class)", 이름이 없는 내부클래스를 "익명 내부 클래스(anonymous inner class)라한다. Nested클래스를 만드는 이유 한 곳에서만 사용되는 클래스를 논리적으로 묶어서 처리할 필요가 있.. 14장 예외처리 자바에는 예외(Exception)이라는 것이 있다. 자바공부를 하다보면 개발을 위해서 없으면 안되는, 예외를 생각하지 않고는 안전한 프로그램 개발이 쉽지않다는 것을 알게된다. 사용자의 잘못된 조작이나 개발자의 코딩 실수로 인해 발생하는 프로그램 오류를 무시하고 싶거나, 에러가 날 때 그에 맞는 적절한 처리를 하고 싶을 때에 자바는 try ... catch, throw등을 적절하게 사용하면 된다. 예외의 세가지 종류 checked exception error runtime exception or unchecked exception 두번째와 세번째에 있는 error와 unchecked exception를 제외한 모든 예외는 checked exciption이다. 예외 처리 종류 try-catch try { /.. 13 인터페이스 / 추상클래스 / enum 앞서서 여러번 적었다시피 클래스를 이용하여 다중 상속을 할 경우 메소드 출처의 모호성 등 여러 가지 문제가 발생할 수 있다는 문제로 자바에서는 다중상속이 불가능하다. 하지만 다중 상속의 이점을 버릴 수는 없기에 자바에서는 인터페이스라는 것을 통해 다중 상속을 지원하고 있다. 인터페이스 interface 인터페이스(interface)란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하게된다. 인터페이스(interface)는 오로지 추상 메소드와 상수만을 포함할 수 있다. 인터페이스 선언은 다음과 같다. public interface 인터페이스클래스명 { public static final 변수 변수명 = 값; public abstract 메소드이름(매개변.. 이전 1 ··· 5 6 7 8 9 다음