본문 바로가기

자바5

2주차 과제: 자바 데이터 타입, 변수 그리고 배열 목표 자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다. 위의 사진은 구글 데이터센터의 내부 모습이다. 알파고가 돌아갔던 서버였다고도 한다. 정말 어마무시한 크기를 자랑하는 데이터센터이지만 이들도 데이터센터 효율성을 높이기 위해 어떤 노력을 기울였고, 결국 업계 평균 수치보다 50% 이상의 높은 에너지 효율성을 달성했다고 한다. 만약 같은 크기의 데이터센터에서 고작 Hello World만 찍는다면 얼마나 안타까운 일인가!? 자바에서도 데이터 타입마다 메모리 할당이 다르게 된다. 그렇기때문에 데이터 타입의 크기를 알고 내가 하고자 하는 일에 알맞는 데이터 타입을 사용하는 것은 자바를 떠나 모든 영역에서 중요한 일이다. 프리미티브 타입 종류와 값의 범위 그리고 기본 값 변수 타입 변수 종.. 2020. 11. 15.
1주차 과제: JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가? github.com/whiteship/live-study/issues/1 1주차 과제: JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. · Issue #1 · whiteship/live-study 목표 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기. 학습할 것 JVM이란 무엇인가 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JV github.com 목표 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기. 과제 JVM이란 무엇인가 Java Virtual Machine 이하 JVM은 자바 바이트코드(java bytecode)를 플랫폼(OS)에 독립적일 수 있도록 해석하는 역할을 맡는다. 프로그램 메모리를 관리하며, .. 2020. 11. 14.
[이펙티브 자바 : 3장] 클래스와 인터페이스 추상화의 기본 단위인 클래스와 인터페이스는 자바 언어의 심장과도 같다. 그래서 자바 언어에는 클래스와 인터페이스 설계에 사용하는 강력한 요소가 많이 있다. 이번 장에서는 이런 요소를 적절히 활용하여 클래스와 인터페이스를 쓰기 편하고, 견고하며, 유연하게 만드는 방법을 안내한다. [아이템 15] 클래스와 멤버의 접근 권한을 최소화하라 좋은 설계와 어설픈 설계의 차이는 내부 데이터와 내부 구현 정보를 외부 컴포넌트로부터 얼마나 잘 숨겼느냐에 따라서 드러난다. 좋은 설계는 은닉성을 지키며, 구현과 API를 깔끔히 분리한다. 오직 API를 통해서만 다른 컴포넌트와 소통하며 서로의 내부 동작 방식에는 전형 개의치 않는다. 이것을 정보 은닉, 혹은 캡슐화라고 부른다. 이는 소프트웨어 설계의 근간이 되는 원리다. 정.. 2020. 7. 11.
[이펙티브 자바 : 2장] 모든 객체의 공통 메소드 Object는 객체를 만들 수 있는 구체 클래스지만 기본적으로는 상속해서 사용하도록 설계되었다. Object에서 final이 아닌 메소드 (equals, hashCode, toString, clone, finalize)는 모두 재정의(오버라이딩)를 염두에 두고 설계된 것이라 재정의 시 지켜야 하는 일반 규약이 명확히 정의되어 있다. 그래서 Object를 상속하는 클래스, 즉 모든 클래스는 이 메소드들을 일반 규약에 맞게 재정의 해야 한다. 메소드를 잘못 구현하면 대상 클래스가 이 규약을 준수한다고 가정하는 클래스(HashMap과 HashSet 등)를 오동작 하게 만들 수 있다. [아이템 10] equals는 일반 규약을 지켜 재정의하라 equals 재정의가 필요치 않는 경우 하나. 각 인스턴스가 본질적으.. 2020. 6. 27.