도서 39

[도서/자바의 신] #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가 필요한 이유? 설계 시 선언해 두면 개..

[도서/자바의 신] #12 모든 클래스의 부모 클래스는 Object에요

✔️이 글은 [자바의 신 - 이상민 지음] 도서를 바탕으로 정리한 글입니다. 모든 자바 클래스의 부모인 java.lang.Object 클래스 자바에서 아무런 상속을 받지 않으면 java.lang.Object 클래스(이하 Object 클래스)를 확장한다. 상속을 받아도 부모 클래스로 계속 올라가보면 결국엔 Object 클래스가 최상위 부모 클래스임을 알 수 있다. 그렇기 때문에 모든 클래스에서 Object 클래스에 정의된 기본적인 메소드들을 사용할 수 있다. 터미널에서 javap라는 명령어를 통해 하나 이상의 class의 package, protected, public 변수와 메소드에 대한 정보를 출력해준다. 명령어 뒤에는 여러 옵션들이 올 수 있고 출력할 정보를 바꿔준다. Object 클래스에서 제공하는..

[도서/자바의 신] #11 매번 만들기 귀찮은데 누가 만들어 놓은 거 쓸 수 없나요?

✔️이 글은 [자바의 신 - 이상민 지음] 도서를 바탕으로 정리한 글입니다. 미리 만들어 놓은 클래스들은 아주 많아요 JDK에 포함된 이미 만들어 놓은 여러 클래스들을 사용할 때 참조하는 문서를 API(Application Programming Interface)라고 한다. 자바의 API는 HTML로 구성되어 있어 인터넷 브라우저에서 문서를 읽어 볼 수 있다. JDK에 포함되어 있는 문서와 다른 여러 자바 관련 프레임웍에서 제공하는 문서도 API라고 부른다. 개발시에 소스 내에 클래스 및 메소드를 선언하기 전이나 후에 API에 명시되도록 하기 위한 주석을 상세히 달아주고 java/bin디렉터리에 있는 javadoc이라는 명령어를 통해 API 문서를 생성할 수 있다. API를 열어보자 docs에 API들이..

[도서/자바의 신] #10 자바는 상속이라는 것이 있어요

✔️이 글은 [자바의 신 - 이상민 지음] 도서를 바탕으로 정리한 글입니다. 자바에서 상속(inheritance)이란? 클래스를 선언할 때 클래스 이름 뒤에 extends라는 예약어를 쓰고 그 다음에 상속받을 클래스를 써주면 해당 클래스가 상속된다. 상속이라는 건 부모와 자식 관계로 나타낼 수 있는데, 자식이 부모에 public과 proctected로 선언된 변수와 메소드를 본인이 가지고 있는 것처럼 사용할 수 있다. 자식 클래스 객체를 생성하면 자동으로 부모의 기본 생성자(매개변수가 없는 생성자)가 호출된다. 확장한 클래스(자식 클래스)에는 추가적인 메소드를 만들어도 문제가 없다. 상속은 코드의 간결화와 재사용성을 좋게 해주는 장점이 있다. 자바는 extends 뒤에 하나의 클래스만 올 수 있다. 즉,..

728x90