목록Java/Java Programming (6)
SSinsa
JUnit 테스트는 어떻게 실행하는가? JUnit은 커맨드라인에서 직접 호출가능 -> JUnit 라이브러리의 JUnitCode 클래스 (*이 클래스는 커맨드라인에서 테스트를 시작하는 데 사용하는 main 메서드가 있음, 매개변수는 테스트하려는 클래스의 리스트 junit junit RELEASE compile 나는 위의 의존성 추가 했다 (자동으로 추가되었지만...) 테스트 매개변수는 와일드카드를 사용할 수 있음 JUnit 테스트를 실행할 때 어떤 일이 일어나는가? 테스트 세트는 대개 클래스에 한정됨 JUnit 4에 어노테이션이 도입되기 전의 클래스에는 TestSuit 클래스를 확장해야했음 따라서 전체 테스트 세트를 실행하기 전에 한 번 실행되는 메서드나 메서드 집합을 정의할 수 있음 -> 대체로 시간이 ..
어노테이션을 사용하는 예를 들어라. 어노테이션은 메타데이터! (메타데이터란 애플리케이션이 처리해야 할 데이터가 아니라, 컴파일과 실행과정에서 코드를 어떻게 컴파일하고 처리할 것인지를 알려주는 정보) # 어노테이션의 용도 컴파일러에게 코드 문법 에러를 체크하도록 정보를 제공 ex) @Override 소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보를 제공 ex) 빌드 시 자동으로 XML설정 파일을 생성하거나, 배포를 위해 JAR 압축 파일을 생성하는데에도 사용 실행 시(런타임 시) 특정 기능을 실행하도록 정보를 제공 ex) 실행 시 클래스의 역하을 정의 # 어노테이션 적용법 @AnnotationName(elementName1 = "값"); # 어노테이션 적용대상 ElementTy..
(시작하기 전에 '이것이 자바다'를 통해 'Wrapper 클래스'를 공부하였다 - 출처 이것이 자바다 1권) # 박싱과 언박싱 Boxing - 기본 타입의 값을 포장 객체로 만드는 과정 ->방법 : Integer obj = Integer.valueOf(1000); //기본타입의 값 Integer obj = Integer.valueOf("1000"); //문자열 Unboxing - 포장 객체에서 기본 타입의 값을 얻어내는 과정 ->방법 : 기본타입명 + Value() # 자동박싱과 언박싱 자동박싱 - 포장클래스 타입에 기본값이 대입될 경우에 발생 자동언박싱 - 기본타입에 포장객체가 대입될 경우에 발생 그렇다면 이제 질문으로 들어가서~ NullPointerException 이 발생했을 때 원시 타입에 접근할..
제네릭, ' 매개변수화된 타입' List 클래스는 가능한 한 모든 타입을 다룰 수 있어야한다. (List 인스턴스는 다형성이 있다) 또한, 다시 말해서는 List에 확실히 들어갈 수 있는지 확인이 필요하다. 확실히 하지 않는다면 ClassCastException이 발생한다. 이럴때 직접 타입 변환 없이 제네릭을 사용하면 된다. 기본적으로 대부분의 에러가 실행 에러가 컴파일러 에러로 바뀔 수 있다. -> 수정이 빨라져 개발 속도를 상승시킨다 # 제네릭의 특징 1) 제네릭을 사용하면 한 가지 타입의 매개변수만 받을 수 있다. 2) 제네릭 타입은 중첩해서 사용가능 -> E타입 사용 -> 상속관계에 의해 생기는 컴파일 에러는 부모클래스와 부모 클래스의 모든 하위 클래스를 실행될 수 있도록 명시적으로 변경해야함 ..
자바의 장점 : 모든 라이브러리 구현을 직접 확인하고 점검할 수 있다는 것 -> String 객체를 확인해 보니 char타입의 배열 !!! String 은 객체지만 원시타입처럼 취급되어 String 리터럴을 생성할 때 new 키워드를 이용할 필요가 없다. ex) String helloString2 = "Hello World"; "String 클래스에서는 String 객체의 값을 변경하는 것처럼 보이는모든 메서드가 실제로는 String 인스턴스를 반환." -> 즉 String 값은 절대 안 변함! (String 말고도, integer, Double, Character, BigInteger....) 따라서, substring, replace, split 같은 메서드를 사용하면 변경된 String 객체의 새 ..
배열과 리스트는 비슷하면서도 다르다. 따라서, 습관적인 사용을 하거나, 때로는 둘의 차이를 놓쳐 작은 실수에서 오랜 시간을 빼앗기기도 해왔다. 1) 배열 먼저, 배열은 대괄호를 사용한다. ex) final String[] strings = new String[] {"one", "two"}; 이때, 자료형에 따라 선언 방식이 차이가 있는데, int 배열은 명시적으로 크기를 지정, boolean 배열은 암시적으로 크기를 지정 이렇게 다르게 지정해도 컴파일러는 자동으로 길이를 계산해준다. - 랜덤접근 : 인덱스 값을 이용해 배열 원소에 직접 접근 사용중인 배열에 원소를 추가하려면, 더 큰 배열을 새로 만들어 현재 배열을 담았야한다. 또한, 새 배열에 원본 배열의 주소도 재할당해야한다. (JVM은 이 역할을 S..