본문 바로가기
  • soobinhand의 기술 블로그
728x90

java29

[자바 프로그래밍 언어] 11장 제네릭 타입 11.1 제네릭 타입 선언 포괄적인 참조로 Object를 사용하는 것은 위험하다. 특정 타입의 요소를 저장할 수 있는 클래스를 각각 만드는 것은 비효율적이며 중복된 코드를 산출하게 만든다. 어떤 종류의 객체라도 저장할 수 있으며 저장되는 타입에 따라 메소드의 반환 타입과 매개변수 타입이 정해지는 클래스를 작성하는 것이 좋다. 이것이 제네릭 타입이 만들어진 이유다. Cell클래스를 Cell 클래스로 다시 작성하였으며 E의 Cell이라고 읽는다. E는 Cell 객체를 저장할 수 있는 요소 타입을 나타낸다. Cell의 제네릭 버전에서 E는 이전 Cell에서 Object를 사용했던 곳에는 어디든지 사용할 수 있다. E는 타입 변수라고 하며, 요소의 약자이다. 편의상, 타입 변수들은 단일 문자 이름을 가진다. 요.. 2021. 12. 31.
[자바 프로그래밍 언어] 10장 흐름제어 10.1 문장과 블록 없음 10.2 if-else 없음 10.3 switch switch ( 표현식 ) { case n : statements case m : statements default : statements } 표현식은 정수 타입이나 enum 타입 중 하나여야 한다. switch 문의 몸체는 switch 블록이라 하며 case 라벨을 포함할 수 있다. case 라벨은 정수 또는 enum 상수이다. switch 표현식이 case 라벨의 값과 일치한다면 제어는 해당 라벨의 첫 번째 문장으로 이동하고 일치하는 case 라벨을 찾지 못한 경우에는 default 라벨의 첫 번째 문장으로 이동한다. default 라벨도 존재하지 않는다면 switch 문은 종료된다. break 문이 없다면 실행은 defau.. 2021. 12. 29.
[자바 프로그래밍 언어] 9장 연산자와 표현식 9.1 산술 연산 + - * / % 정수 나눗셈은 실수 부분을 잘라버린다. 7/2 = 3이다. 0으로 나누거나 0으로 나머지를 구하는 것은 ArithmeticException을 발생시킨다. NaN - Not a Number 숫자가 아님을 의미. 부동 소수점 산술 연산은 엄격한 방식과 비엄격한 방식 중 하나로 실행. 엄격한 부동 소수점 코드를 실행하면 모든 자바 가상 머신에서 정확히 동일한 결과를 얻을 수 있다. 하지만 비엄격은 규칙이 느슨하게 적용된다. 비엄격은 float나 double이 허용할 수 있는 범위보다 큰 값을 가지는 표현식의 중간 결과를 허용한다. 9.2 일반 연산자 ++i는 i의 값을 미리 증가시켜 17로 만든 후에 값을 사용함. i++은 i의 현재 값을 사용한 후에 증가시킴. 등호 연산자.. 2021. 12. 28.
[자바 프로그래밍 언어] 8장 기본 타입과 래퍼 클래스 8.1 공통 필드와 메소드 자바는 기본 타입과 이에 대응하는 래퍼 클래스간의 변환을 자동으로 해줌. Integer value = 3; 이게 가능하다. 박싱 변환 : 기본 값을 래퍼 객체로 변환 ( wrap과 box는 거의 비슷한 의미) 언박싱 변환 : 래퍼 객체에서 기본 값을 추출하는 것 래퍼 클래스는 감싸고 있는 기본 값을 불변 객체로 정의한다. new Integer(1)로 생성된 객체는 항상 1을 가지며 이 값을 수정할 수 없다. 래퍼 클래스는 다음과 같은 메소드를 가진다. public static Type valueOf(Type t) t 값을 가지는 지정된 Type의 객체를 반환한다. public static Type valueOf(String str) str를 변환한 값을 가지는 지정된 Type의.. 2021. 12. 27.
728x90