도서/자바의 신 32

[도서/자바의 신] #22 자바랭 다음으로 많이 쓰는 애들은 컬렉션 - Part1(List)

✔️이 글은 [자바의 신 - 이상민 지음] 도서를 바탕으로 정리한 글입니다. 자바 컬렉션 자바에서 컬렉션이란 목록성 데이터를 처리하는 자료구조를 통칭한다. 자료구조는 여러 데이터를 담을 때 사용하는 것으로 배열이 가장 기본적인 자료구조이다. 배열은 크기가 정해져있을 때 성능상이나 메모리 효율면에서 가장 좋지만 크기를 모르는 경우엔 효율적이지 않다. 자료 구조 순서가 있는 목록(List) 형 순서가 중요하지 않은 셋(Set) 형 먼저 들어온 것이 먼저 나가는 큐(Queue)형 키-값(key-value)으로 저장되는 맵(Map)형 목록, 셋, 큐는 Collection이라는 인터페이스를 구현하고, 맵만 별도의 인터페이스로 구현되어 있다. Collection 인터페이스 public interface Collec..

[도서/자바의 신] #21 실수를 방지하기 위한 제네릭이라는 것도 있어요

✔️이 글은 [자바의 신 - 이상민 지음] 도서를 바탕으로 정리한 글입니다. 실수를 방지할 수 있도록 도와주는 제네릭 실행시 발생하는 예외에 대비하기 위해서 테스트를 잘 해야 한다. 메소드 개발과 함께 JUnit과 같은 테스트 코드를 작성하는 것이 좋다. JUnit은 메소드나 클래스 같은 작은 단위를 쉽게 테스트할 수 있도록 도와주는 프레임웍이다. 형변환시 발생하는 예외를 방지하기 위해 instanceof로 하나씩 점검해야하는 단점을 보완하기 위해 Java 5부터 제네릭이라는 것이 추가되었다. 제네릭이 뭐지? 제네릭(Generic)은 타입 형 변환에서 발생할 수 있는 문제점을 컴파일시에 점검하기 위해서 만들어진 것으로 데이터타입을 일반화해준다. 클래스를 제네릭으로 선언하려면 클래스 이름 뒤에 꺾쇠 기호(..

[도서/자바의 신] #20 가장 많이 쓰는 패키지는 자바랭

✔️이 글은 [자바의 신 - 이상민 지음] 도서를 바탕으로 정리한 글입니다. java.lang 패키지는 특별하죠 java.lang은 import를 안해도 그 안의 클래스들을 사용할 수 있는 유일한 패키지로 자바에 꼭 필요한 여러 기능을 제공한다. java.lang에서 제공하는 인터페이스, 클래스, 예외 클래스등은 다음과 같이 나눠볼 수 있다. 언어 관련 기본 : Comparable, Class, Enum, ArrayOutOfBoundsException... 문자열 관련 : CharSequence, String, StringBuffer, StringBuilder, .... 기본 자료형 및 숫자 관련 : Boolean, Byte, Character, Double, Float, .... 쓰레드 관련 : Run..

[도서/자바의 신] #19 이쯤에서 자바의 역사와 JVM에 대해서 알아보자

✔️이 글은 [자바의 신 - 이상민 지음] 도서를 바탕으로 정리한 글입니다. 자바의 역사 자바는 1991년에 "Green" 프로젝트가 생기면서 모태가 탄생해 "Oak"라는 이름에서 1995년 "Java"라고 바뀌면서 Write Once, Run Anywhere(WORA)를 목표로 1996년에 JDK 1.0을 출시했다. 1998년 J2SE라는 이름으로 자바의 기본 버전 명칭이 바뀌고 2006년 Java SE 6가 출시되었다. JDK의 플랫폼에 따른 차이 각 운영체제에 최적화된 JDK가 있어 어떤 OS에서 개발하든지 JDK의 버전만 맞으면 적용할 다른 OS에서 컴파일해서 프로그램을 구동시킬 수 있다. 즉, Orcale JDK로 개발하고 IBM의 JDK에서 컴파일해도 된다는 의미이다. OpenJDK는 라이선스..

[도서/자바의 신] 부록 #3 float와 double

✔️이 글은 [자바의 신 - 이상민 지음] 도서를 바탕으로 정리한 글입니다. 부록 1,2는 JDK 설치와 이클립스 설치에 관한 내용으로 따로 포스팅하지 않는다. float는 32비트 단일 정확도, double은 64비트 이중 정확도를 갖는 숫자이다. IEEE 754에서 정의한 소수점 숫자의 표준에는 비트 크기 외에도 다음과 같은 표준이 있다. 양수와 음수 +0과 -0 양수와 음수의 무한대(infinity) 숫자가 아닌 값 (Not a Number, NaN) NaN에는 0을 0으로 나누었을 때의 값이 포함되고 Float와 Double에 각각 Float.NaN, Double.NaN으로 선언되어 있다. s * m * 2^(e-N+1) s는 부호를 나타내고, m은 1보다 크거나 같고, 2^N보다 작은 정수, e..

[도서/자바의 신] #17 어노테이션이라는 것도 알아야 한다

✔️이 글은 [자바의 신 - 이상민 지음] 도서를 바탕으로 정리한 글입니다. 어노테이션이란? 어노테이션(Annotation)은 클래스나 메소드, 변수 등의 선언시에 @를 사용하는 것으로 컴파일러에게 정보를 알려주거나 컴파일할 때와 설치(deployment)시의 작업을 지정하거나 실행할 때 별도의 처리가 필요할 때 사용한다. 프로그램에 영향이 있는 어노테이션도 있고 없는 것도 있다. 미리 정해져 있는 어노테이션들은 딱 3개뿐 사용하기 위해 정해진 어노테이션은 3개가 있다. @Override : 해당 메소드가 부모 클래스에 있는 메소드를 Override했다는 것을 명시적으로 선언해줌 @Deprecated : 클래스나 메소드가 더이상 사용되지 않는 경우에 써줌. deprecated된 메소드를 써도 경고만 주고..

[도서/자바의 신] #16 클래스 안에 클래스가 들어갈 수도 있구나

✔️이 글은 [자바의 신 - 이상민 지음] 도서를 바탕으로 정리한 글입니다. 클래스 안의 클래스 코드를 간단하게 하기 위해 클래스 안에 클래스가 들어가 있는 클래스를 Nested 클래스라고 한다. Nested 클래스는 자바 기반의 UI 처리를 할때 사용자의 입력이나 , 외부의 이벤트에 대한 처리를 하는 곳에서 가장 많이 사용된다. Nested 클래스는 선언 방법에 따라 두가지로 나뉜다. Static nested 클래스 : static이 붙은 nested 클래스 내부(inner) 클래스 : static이 안붙은 nested 클래스 로컬 내부 클래스(local inner class) : 이름이 있는 내부 클래스 익명 내부 클래스(anonymous inner class) : 이름이 없는 내부 클래스 간단하게 ..

[도서/자바의 신] #15 String

✔️이 글은 [자바의 신 - 이상민 지음] 도서를 바탕으로 정리한 글입니다. 자바에서 가장 많이 사용하는 String 클래스 객체에 더하기를 하면 toString() 메소드가 호출되고 그 결과가 더해지는 것이라 결론적으로는 String을 더하는 것이다. 자바에서 많이 쓰이는 String 클래스에 대해 알아보자. public final class String extends Object implements Serializable, Comparable, CharSequence public final로 선언되어 있어 누구나 사용할 수 있지만 확장할 수 없는 클래스이다. implements 뒤에 오는 인터페이스들을 구현해 놓은 것이 String 클래스이다. Serializable 인터페이스는 구현해야 하는 메소드..

[도서/자바의 신] #14 다 배운 것 같지만, 예외라는 중요한 것이 있어요

✔️이 글은 [자바의 신 - 이상민 지음] 도서를 바탕으로 정리한 글입니다. 자바에서 매우 중요한 예외 자바에서의 예외는 "우리가 예상한, 혹은 예상치도 못한 일이 발생하는 것을 미리 예견하고 안전장치를 하는 것"을 말한다. 예외적인 일이 발생하면 "예외"라는 것을 던진다. 대표적인 예로 null인 객체에 메소드를 호출하는 경우가 있다. try-catch는 짝이다 컴파일은 정상적으로 되지만 예상치못한 예외가 발생할 수 있다. 그러한 예외 상황이 발생할만한 코드들을 try로 묶어주고, catch로 예외처리를 해준다. try-catch 블록 try { 예외가 발생할만한 코드 } catch (Exception e) { 예외가 발생했을 때 수행할 코드 } catch 뒤에 오는 소괄호에는 Exception이라는 ..

[도서/자바의 신] #13 인터페이스와 추상클래스, enum

✔️이 글은 [자바의 신 - 이상민 지음] 도서를 바탕으로 정리한 글입니다. 메소드 내용이 없는 interface 시스템 "방법론" 순서 분석 : 시스템 제작을 요청한 사람들(SI에서는 고객, SM에서는 현업, 별도의 고객이 없는 회사는 기획이 업무를 수행)의 요구사항을 분석 설계 : 분석 단계에서 만든 대략적인 기획을 프로그램으로 만들 수 있도록 설계 개발 및 테스트 : 설계에서 만든 것을 개발하는 단계, 기능들이 제대로 동작하는지 테스트하는 작업도 수행 시스템 릴리즈 : 시스템을 사용자에게 제공, 오픈 이후에는 운영/유지보수 단계를 거치면서 문제있는 부분을 수정해 나감 이 절차는 아주 일반적인 절차로 모든 개발 절차가 이렇진 않다. 인터페이스와 abstract가 필요한 이유? 설계 시 선언해 두면 개..

728x90